为什么我在.two 上设置scale()缩放,会连他的::before和::after一起缩放了

为什么我在.two 上设置scale()缩放,会连他的::before和::after一起缩放了

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>2-8编程练习五角星</title>

<style>

*{

margin: 0;

padding: 0;

}

.red{

width:600px;

height:400px;

background:red;

margin: 0 auto;

position:relative;


}


/* 给一个盒子宽高设置为0,然后设置边框。其他三个角度的边框为透明,只给一个角度的边框设置颜色,就实现了三角形 */

.one{

        width: 0;

        height: 0;

border-top: 30px solid yellow;

        border-right: 49px solid transparent;

         border-bottom:49px solid transparent;

        border-left: 49px solid transparent;

        position:absolute;

        left:50px;

        top:50px;

       

/* 当宽高为0时,border变成了三角 */

}

        /* 在one前添加一个伪类元素 */

.one::before{

display:block;

            content:"";

            width:0;

            height:0;

    border-top: 30px solid yellow;

        border-right: 49px solid transparent;

        border-left: 49px solid transparent;

            position:absolute;

            transform: rotate(-146deg);

            left:-50px;

        top:-30px;

       

/* 当宽高为0时,border变成了三角 */

}

/* 在one后添加一个伪类元素 */

.one::after{

display:block;

            content:"";

            width:0;

            height:0;

    border-top: 30px solid yellow;

        border-right: 49px solid transparent;

        border-left: 49px solid transparent;

            position:absolute;

            transform: rotate(-70deg);

            left:-50px;

        top:-30px;

       

/* 当宽高为0时,border变成了三角 */

}

.two{

        width: 0;

        height: 0;

border-top: 30px solid yellow;

        border-right: 49px solid transparent;

         border-bottom:49px solid transparent;

        border-left: 49px solid transparent;

        position:absolute;

        transform:scale(0.3);

        left:200px;

        top:10px;

       

/* 当宽高为0时,border变成了三角 */

}

        /* 在one前添加一个伪类元素 */

.two::before{

display:block;

            content:"";

            width:0;

            height:0;

    border-top: 30px solid yellow;

        border-right: 49px solid transparent;

        border-left: 49px solid transparent;

            position:absolute;

            transform: rotate(-146deg);

            left:-50px;

        top:-30px;

       

/* 当宽高为0时,border变成了三角 */

}

/* 在one后添加一个伪类元素 */

.two::after{

display:block;

            content:"";

            width:0;

            height:0;

    border-top: 30px solid yellow;

        border-right: 49px solid transparent;

        border-left: 49px solid transparent;

            position:absolute;

            transform: rotate(-70deg);

            left:-50px;

        top:-30px;

       

/* 当宽高为0时,border变成了三角 */

}

</style>

</head>

<body>

<div class="red">

<div class="one"></div>

<br>

<div class="two"></div>

<br>

<div class="three"></div>

<br>

<div class="four"></div>

<br>

<div class="five"></div>

</div>

</body>

</html>


正在回答

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

2回答

同学你好,理解的是对的,可以通过检查元素查看(以谷歌为例,按F12),如下:

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

祝学习愉快~

好帮手慕言 2020-07-06 11:17:33

同学你好,是的,给元素设置缩放,也会影响::before和::after

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

  • 提问者 慕设计6170877 #1
    老师,.two是::before和::after的父元素吗?
    2020-07-07 12:19:42
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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