认识CSS中的三角形

196 阅读2分钟

1.认识盒子边框的均分原理

​ 当元素的宽度和高度均设为0,并设置边框大小时,四个边框采用的是均分原理。如下面代码:

#box1{
            height: 0;
            width: 0;
            border-left: 10px solid red;
            border-right: 10px solid yellow;
            border-top: 10px solid blue;
            border-bottom: 10px solid pink;
        }
<div id="box1"></div>

此时浏览器显示的是:

2.等腰三角形与直角三角形

由此可见,四个边框各自占了一个三角形,所以我们要实现三角形只要将其他三个边框设置为transparent即可。

#box2{
			height: 0;
			width: 0;
			border-style: solid;
			border-width: 10px;
			border-color: transparent transparent 							  transparent deeppink;
}
<div id = "box2"></div>

此时浏览器显示为:

这是个等腰三角形,当然,我们也可以通过调节边框宽度来得到直角三角形。代码如下:

#box3{
            width: 0;
            height: 0;
            border-style: solid;
            border-color: transparent deeppink 									deeppink transparent;
            border-width: 30px 20px 0 0;/*通过增加上边框来增加直角边*/
        }
<div id = "box3"></div>

浏览器显示为:

3.等腰三角形与直角三角形在网页开发的应用

有时候我们需要搞一个带三角的盒子,这里就用到了等腰三角形如:

#box4{
            position: relative;
            width: 60px;
            height: 100px;
            background-color: pink;
        }
#box4 span{
            position: absolute;
            height: 0;
            width: 0;
            border-color: transparent transparent 							  transparent pink;
            border-style: solid;
            border-width: 10px;
            left: 60px;
            top: 10px;
        }
<div id = "box4"></div>

直角三角形的应用:

在这个案例中主要用了直角三角形来是长方形分为两个梯形:

#box5{
            width: 200px;
            height: 25px;
            border-color: tomato;
            border-style: solid;
            color: white;
            font-weight: 700;
            text-align: center;
            line-height: 25px;
        }
        #box5 .miaosha{
            float: left;
            position :relative;
            background-color: tomato;
            width:60%;
            height: 100%;
        }
        #box5 .miaosha i{
            height: 0;
            width: 0;
            position: absolute;
            border-style: solid;
            border-color: transparent white transparent transparent;
            border-width: 25px 10px 0 0;
            right: 0;
            top: 0;
        }
        .orign{
            color: gray;
            text-decoration: line-through;
        }
 <div id="box5">
        <span class="miaosha">¥1655
            <i></i>
        </span>
        <span class="orign">¥2900</span>
 </div>