老师 我想请问下::after的那种写法可以改写成这样吗

老师 我想请问下::after的那种写法可以改写成这样吗

<style>

        * {

            margin: 0;

            padding: 0;

        }

        p {

            width: 100px;

            height: 100px;

            background-color: blue;

            float: left;

            margin: 20px;

        }

        .clearfix {

       

            clear: both;

         

        }

    </style>

</head>

<body>

    <div >

        <p></p>

        <p></p>

    </div>

    <div class="clearfix"></div>

    <div>

        <p></p>

        <p></p>

    </div>

    <div class="clearfix"></div>

</body>

效果是一样的 请问除了写法上 原理上有什么区别吗 谢谢老师

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,可以的,两者的区别就是::after方式只需要书写css代码,html结构中不用再多写一个空标签;粘贴的代码这种写法,html结构中需要单独书写一个空标签。

两种方式都可以实现清除浮动,实际开发中更多的是使用::after伪元素的方式,不过这不是硬性规定的,同学可以根据自己的编码习惯选择其中一种方式。

祝学习愉快~

  • 慕仙0240544 提问者 #1

     <style>

            p{

                width: 100px;

                height: 100px;

                background-color: blue;

                float: left;

             

            }

            div{

                background-color: violet;

            }

            div::after{

                content: "";

                display: block;

                clear: both;

                margin-top: 20px;


           

            }

        </style>

    </head>

    <body>

        <div>

            <p></p>

            <p></p>

        </div>

         <div>

            <p></p>

            <p></p>

        </div>


    </body>

    https://img1.sycdn.imooc.com//climg/62a68b4109e8be9e05460411.jpg

    老师 那我margin写在::after里面为啥踹不动盒子 这样看和div感觉还是有很大的不同的

    2022-06-13 08:57:37
  • 好帮手慕慕子 回复 提问者 慕仙0240544 #2

    同学你好,因为::after伪元素的默认特性,可以设置marign属性,但是不会生效,所以无法踹其他盒子。祝学习愉快~

    2022-06-13 11:20:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师