为什么在before和after里面去掉position:absolute后会是没有小圆心?

为什么在before和after里面去掉position:absolute后会是没有小圆心?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>2-5</title>

    <style type="text/css">

        div {

            position: absolute;

            top: 0;

            right: 0;

            bottom: 0;

            left: 0;

            box-sizing: border-box;

            width: 400px;

            height: 400px;

            margin: auto;

            border: 1px solid red;

            border-bottom: 200px solid red;

            border-radius: 50%;

            transform-origin: 50% 50%;

            animation-name: rotate;

            animation-duration: 5s;

            animation-timing-function: linear;

            /*此处写代码*/

            animation-delay: 2s;

            animation-timing-function: 2s;

            animation-iteration-count: infinite;


   }


   @keyframes rotate{

    from{transform: rotate(0deg);}to{transform: rotate(0deg);}

   }


    div:before{

    content: "";

    width: 20px;height: 20px;position: absolute;

    background: black;

    border-radius: 50%;

    border: 90px solid red;

    top: 100px;

    }


    div:after{

    content: "";position: absolute;

    width: 20px;height: 20px;

    background: yellow;

    border-radius: 50%;

    border: 90px solid blue;

   

    right: 0;top: 100px;

    }


    </style>

</head> 

<body>

    <div></div>

</body>

</html>

为什么在before和after里面去掉position:absolute后会是没有小圆心?

http://img1.sycdn.imooc.com//climg/5e4e484709a50b0407530648.jpg

http://img1.sycdn.imooc.com//climg/5e4e48470907d67907150671.jpg

正在回答

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

1回答

同学你好,before和after是内联元素,不支持宽高属性,也就说代码中给before和after设置的宽高是不生效的。设置了绝对定位之后,会把before和after转换为块元素,块元素是支持宽高属性的,也就可以看到小圆心了。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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