前往小程序,Get更优阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 >纯CSS绘制三角形、梯形及border属性的延伸

纯CSS绘制三角形、梯形及border属性的延伸

作者头像
德顺
发布2019-11-12 17:02:37
2.1K0
发布2019-11-12 17:02:37
举报
文章被收录于专栏: 前端资源

利用CSS实现三角形效果,比较常用的思路是使用 border 边框来实现,border 边框是由四个三角形组成的,通过调整四个边来实现不同形状的三角形。

通过上图应该能看懂 border 的实现原理

CSS代码如下:通过调整边框的宽度,来实现不同的形状。

代码语言:javascript
复制
/*A1*/
.triangle1 {
    width: 0;
    height: 0;
    border-width: 50px;
    border-style: solid;
    border-color: #118C8B #BCA18D #F2746B #F14D49;
}
/*A2*/
.triangle2 {
    width: 0;
    height: 0;
    border-width: 50px;
    border-left: 100px;/*左边框设置为100px*/
    border-style: solid;
    border-color: #118C8B #BCA18D #F2746B #F14D49;
}
/*A3*/
.triangle3 {
    width: 0;
    height: 0;
    border-width: 0 50px 100px 50px;/*上边框为0,下边框为100px*/
    border-style: solid;
    border-color: #118C8B #BCA18D #F2746B #F14D49;
}

三角形的实现:

只需要把其中三条边的颜色定义为 transparent 透明,另一条边设置一个颜色和宽度就可以了。(图P1)

代码语言:javascript
复制
.triangle4 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 50px;
    border-color: transparent transparent #F14D49;
}

如果不定义宽度,则该条边默认宽度位0,颜色为透明。

通过定义宽度,改变三角形的形状(该边框的宽度是三角形底边的高)。宽度越大,三角形的高度越大。(图P2)

代码语言:javascript
复制
.triangle5 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 50px 100px;
    border-color: transparent transparent #F14D49;
}

直角三角形:

如果把左边框宽度也设置为 0 ,就会形成一个向右的直角三角形。(图P3)

代码语言:javascript
复制
.triangle6 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 80px 100px 0;
    border-color: transparent transparent #BCA18D;
}

不规则三角形:

如果左右宽度不对称,就会形成一个不规则三角形。(图P4)

代码语言:javascript
复制
.triangle7 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 80px 100px 20px;
    border-color: transparent transparent #BCA18D;
}

梯形的实现:

上、右两边透明,右、下、左设置宽度,就会形成一个梯形(只能是直角梯形)。(图P5)

代码语言:javascript
复制
}
.triangle8 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 60px 80px 40px;
    border-color: transparent transparent #118C8B #118C8B;
}

分别设置每个边的样式:

还有另一种写法,就是四个边分开写样式。P1 就可以这样写:(图P6)

代码语言:javascript
复制
.triangle9 {
    width: 0;
    height: 0;
    border-top: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 50px solid #BCA18D;
    border-left: 50px solid transparent;
}

P2可以这样写,因为上边距是 0,可以直接省略。

代码语言:javascript
复制
.triangle9 {
    width: 0;
    height: 0;
    border-right: 50px solid transparent;
    border-bottom: 100px solid #BCA18D;
    border-left: 50px solid transparent;
}

border 属性延伸:

因为三角形的绘制与 border 属性分不开的,下面就整理一下,希望看完对上面的代码有更深入的理解。

border 属性,有四个属性值:

可以一气呵成,这样写:顺序分别是 边框宽度 边框样式 边框颜色

代码语言:javascript
复制
border: 1px solid blue;

当然也可以分开来写,如下:

border-width 边框的宽度

只有当边框样式不是 none 时才起作用。如果边框样式是 none,边框宽度实际上会重置为 0,不支持负值。

代码语言:javascript
复制
border-width: 10px;/*统一设置边框的宽度*/
border-width: thin medium thick 10px;/*分别设置每个边框的宽度,顺序是 上 右 下 左*/
border-width: thin medium;/*当有2个值时代表,上下 左右*/
border-width: thin medium 10px;/*当有3个值时代表,上 左右 下*/

边框宽度有5个属性值:

thin 细的边框。

medium 默认,中等的边框。

thick 粗的边框。

length 自定义边框的宽度。

inherit 从父元素继承边框宽度。

border-style 边框的样式。

用法与 border-width 类似,边框样式有以下几种

none 无边框。

hidden 与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。

dotted 点状边框。在大多数浏览器中呈现为实线。

dashed 虚线。在大多数浏览器中呈现为实线。

solid 实线。

double 双线。双线的宽度等于 border-width 的值。

groove  3D 凹槽边框。其效果取决于 border-color 的值。

ridge  3D 垄状边框。其效果取决于 border-color 的值。

inset  3D inset 边框。其效果取决于 border-color 的值。

outset  3D outset 边框。其效果取决于 border-color 的值。

inherit 从父元素继承边框样式。

border-color 边框的颜色。

用法也与 border-width 类似,边框颜色有以下几种

color_name 颜色值为颜色名称的边框颜色(比如 red)。

hex_number 颜色值为十六进制值的边框颜色(比如 #ff0000)。

rgb_number 颜色值为 rgb 代码的边框颜色(比如 rgb(255,0,0))。

transparent 默认值。边框颜色为透明。

inherit 从父元素继承边框颜色。

inherit 从父元素继承 border 属性的设置。

边框的应用有很多,可以根据自己的情况进行拓展。

声明:本文由 w3h5原创,转载请注明出处: 《纯CSS绘制三角形、梯形及border属性的延伸》 https://cloud.tencent.com/developer/article/1537403

代码语言:txt
复制
     (adsbygoogle = window.adsbygoogle || []).push({});
本文参与  腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与  腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
LV.
文章
0
获赞
0
目录
  • 三角形的实现:
  • 直角三角形:
  • 不规则三角形:
  • 梯形的实现:
  • 分别设置每个边的样式:
  • border 属性延伸:
    • border-width 边框的宽度。
      • border-style 边框的样式。
        • border-color 边框的颜色。
          • inherit 从父元素继承 border 属性的设置。
          相关产品与服务
          图像处理
          图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
          产品介绍 产品文档
          精选特惠 用云无忧
          领券
          问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

          玻璃钢生产厂家玻璃钢奔马雕塑青岛市玻璃钢雕塑制作工厂玻璃钢西瓜雕塑河南动物玻璃钢雕塑图片百色玻璃钢雕塑生产厂家鹤壁镜面玻璃钢景观雕塑厂家玻璃钢汽车道具雕塑简介深圳开业商场美陈订购佛山玻璃钢雕塑规格杭州玻璃钢花盆采购青海玻璃钢植物雕塑定制猴年新年商场美陈红塔区玻璃钢雕塑批发厂家玻璃钢雕塑佛像价格开远玻璃钢人物雕塑北京佛像玻璃钢雕塑市场安康玻璃钢人物雕塑北京玻璃钢雕塑人像河北商业商场美陈报价玻璃钢雕塑有哪些优点玄武玻璃钢造型雕塑大连玻璃钢恐龙雕塑设计合肥个性化玻璃钢雕塑景德玻璃钢牛雕塑南阳公园景观玻璃钢人物雕塑菏泽制作玻璃钢雕塑报价厂家深圳商场美陈价钱太原创意玻璃钢雕塑哪家便宜芜湖玻璃钢雕塑设计公司云南高质量玻璃钢雕塑生产厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

          玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化