html边框如何制作三角形,1分钟解读使用css-border制作小三角

利用css中的border制作小三角形

总所周知,元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。

CSS border 属性允许规定元素边框的样式、宽度和颜色。

在 HTML 中,我们使用表格来创建文本周围的边框,但是通过使用 CSS 边框属性,我们可以创建出效果出色的边框,并且可以应用于任何元素。

元素外边距内就是元素的的边框 (border)。元素的边框就是围绕元素内容和内边据的一条或多条线。

我们来看一些设置了border的元素的效果

div{

width: 100px; height: 20px;

border: 20px solid red;

border-right-color: green;

border-bottom-color: blue;

border-left-color: black;

}

复制代码

效果如下:

149c4352ae5a6061637d9abc5e9e9f2a.png

当我们试着去减小盒子的宽高,甚至去掉宽高时:

div{

width: 20px; height: 20px;

border: 20px solid red;

border-right-color: green;

border-bottom-color: blue;

border-left-color: black;

}

复制代码

效果如下:

f78d6e4d3da61acb1c307f5480cf2610.png

div{

width: 0;

border: 20px solid red;

border-right-color: green;

border-bottom-color: blue;

border-left-color: black;

}

复制代码

效果如下:

e30bf7a691384036b9f720b17e13e22c.png

此时我们发现当元素的宽高为0时就会变成挤在一起的四个三角形。因此,我们可以想到,如果把其中的三条边框的颜色定义为透明色transparent,那么我们就会得到一个三角形!

将三条边框的颜色设置为透明色:

p{

width: 0;

border: 20px solid transparent;

border-top-color: blue;

}

复制代码

效果如下:

54f8c002aa3205c3b275d96edb568033.png

通过代码我们发现小三角的朝向是与设置了不透明颜色的那条边名字相反的方向。

例如,我们设置了border-top-color: blue; 小三角的朝向是朝下的。

小提示

在我们使用小三角时,因为四条边框组成了一个矩形,我们只是将其他三条边设置了透明色,它们仍然在文档里占据着位置,为了方便布局,我们可以设置小三角相对的那条边为none;具体原理如下:

div{

width: 0; height: 0;

border-top: 20px solid blue;

border-left: 20px solid red;

border-right: 20px solid green;

border-bottom: none;

}

复制代码

效果如下:

e4b665380e3dcb4d60813090acfead80.png

div{

width: 0;

bordet:20px solid transparent;

border-top: 20px solid blue;

border-bottom: none;

}

复制代码

效果如下:

13ba9d96f2f08d5064a467dacf90728d.png

小应用

当我们要制作这种布局时,可以用此种方法制作小三角,不必再用img或backgroud去实现。

b99ed8406dff79ba234880e4dad55529.png

998b42f2d8f3dc4fabc6a66fb8d6c454.png

ul {

overflow: hidden;

}

li {

list-style: none;

line-height: 60px;

text-align: center;

float: left;

width: 120px;

background: #f1f1f1;

margin-right: 1px

}

li p {

width: 0;

border: 8px solid transparent;

border-bottom-color: #666;

border-top: none;

float: right;

margin: 26px 10px 0 0

}

复制代码

  • 我的课程
  • 最近浏览
  • 联系客服

复制代码

效果如下:

12319ab36d56e55bcaf9fa6812d70e4d.png

小扩展

div{

margin: 50px

}

div:nth-child(1){

width: 0;

border: 30px solid transparent;

border-bottom: 80px solid red;

/* border-top: none; */

}

div:nth-child(2){

width: 0;

border-top: 30px solid blue;

border-right:none;

border-left: 90px solid transparent;

border-bottom: none;

}

div:nth-child(3){

width: 0;

border-top: 30px solid blue;

border-right:90px solid transparent;

border-left: 10px solid transparent;

border-bottom: none;

}

复制代码

复制代码

效果如下:

cd8beec3e986d3401d0f13eaf65d6354.png

我们还可以设置把border的边设置成不同的像素,以达到想要的效果。

此文为一个初入前端的小“码农”所写,若有不对的地方,请大家指正。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值