css 实现三角形
#demo1 { width: 0; height: 0; border-top: 100px solid rgba(255, 0, 0, 1); border-bottom: 50px solid rgba(0, 128, 0, 1); border-left: 50px solid rgba(0, 0, 255, 1); border-right: 50px solid rgba(128, 128, 128, 1) }
#demo2 { width: 200px; height: 100px; background: linear-gradient(45deg, rgba(255, 0, 0, 1), rgba(255, 0, 0, 1) 70.72px, rgba(0, 128, 0, 1) 70.72px, rgba(0, 128, 0, 1) 200px) }
#demo3 { width: 200px; height: 100px }
#demo4 { width: 300px; height: 100px; position: relative; overflow: hidden }
#demo4::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 0, 0, 1); transform-origin: left bottom; transform: rotate(65deg) }
#demo5 { width: 100px; height: 100px; background: rgba(255, 0, 0, 1); clip-path: polygon(0 0, 50px 0, 0 100px, 0 0) }
#demo7 { width: 0; height: 0; border-top: 100px solid rgba(255, 0, 0, 1); border-bottom: 50px solid rgba(0, 128, 0, 1); border-left: 50px solid rgba(0, 0, 255, 1); border-right: 50px solid rgba(128, 128, 128, 1); transform: rotate(45deg) }
#demo8 { width: 0; height: 0; border-top: 100px solid rgba(255, 0, 0, 1); border-bottom: 50px solid rgba(0, 0, 0, 0); border-left: 50px solid rgba(0, 0, 0, 0); border-right: 50px solid rgba(0, 0, 0, 0); transform: rotate(45deg) }
#demo9 { width: 0; height: 0; border-top: 100px solid rgba(255, 0, 0, 1); border-bottom: 50px solid rgba(0, 0, 0, 0); margin-bottom: -50px; border-left: 50px solid rgba(0, 0, 0, 0); border-right: 50px solid rgba(0, 0, 0, 0); transform: rotate(45deg) }
#demo10 { width: 100px; height: 100px; border: 1px solid rgba(0, 128, 0, 1) }
盒模型中的div默认是一个矩形。那么我们怎么实现三角形呢。
使用字符中的符号。这个跟字体相关,在布局上基本没什么用。
矩形沿着一个角用斜线切一刀就可以得到三角形
一、怎么实现切一刀呢?
1、宽高为0的矩形。设置边框。可以将矩形分为四个三角形。
#demo1 {
width: 0;
height:0;
border-top: 100px solid red;
border-bottom: 50px solid green;
border-left: 50px solid blue;
border-right: 50px solid grey;
}
2、使用无过渡线性渐变的方式
#demo2 {
width: 200px;
height: 100px;
background: linear-gradient(45deg, red, red 70.72px, green 70.72px, green 200px);
}
3、使用角向渐变
#demo3 {
width: 200px;
height: 100px;
background: conic-gradient(from 90deg at 0 0, red 0, red 10deg, green 10deg);
}
4、使用旋转出父元素,超出隐藏的方式。
#demo4 {
width: 300px;
height: 100px;
position: relative;
overflow: hidden;
}
#demo4::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: red;
transform-origin: left bottom;
transform: rotate(65deg);
}
5、css裁剪属性
#demo5 {
width: 100px;
height: 100px;
background: red;
clip-path: polygon(0 0, 50px 0, 0 100px, 0 0);
}
二、怎么实现角度呢?
使用 rotate
,实现不同角度
#demo7 {
width: 0;
height: 0;
border-top: 100px solid red;
border-bottom: 50px solid green;
border-left: 50px solid blue;
border-right: 50px solid grey;
transform: rotate(45deg);
}
三、移除不必要的部分
例1-例3中把不要的部分颜色设置为transparent就可以了。
#demo8 {
width: 0;
height: 0;
border-top: 100px solid red;
border-bottom: 50px solid transparent;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
transform: rotate(45deg);
}
四、调整占位
如上的方式实现三角形后,在流中,会额外占用一部分位置。需要调整一下,这里根据具体需求来,例1中使用margin-bottom将不需要的border-bottom占用的50px拉回去。
下面的例子还存在着旋转导致的位置偏移。所以拉回去50px的效果依然不理想。这里需要根据实际的需求来调整了。没有一个完美的方案。
#demo9 {
width: 0;
height: 0;
border-top: 100px solid red;
border-bottom: 50px solid transparent;
margin-bottom:-50px;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
transform: rotate(45deg);
}
#demo10 {
width: 100px;
height: 100px;
border:1px solid green;
}
css 实现三角形的更多相关文章
- CSS制作三角形和按钮
CSS制作三角形和按钮 用上一篇博文中关于边框样式的知识点,能制作出三角形和按钮. 我先说如何制作三角形吧,相信大家在平时逛网站的时候都会看到一些导航栏中的三角形吧,比如说: 网易首页的头部菜单栏中, ...
- CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- CSS 制作三角形原理剖析
使用css制作三角形其实原理很简单,下面一步步解析. 1.html代码如下 <div class="triangle"> </div> 2.CSS代码 .t ...
- CSS实现三角形
突然想起搞一把三角形. 简单来说: 建一个div 宽度.高度设为0 添加两个样式: border 和 border-color 如果需要一个三角形把其他边框都设为透明 transparent < ...
- css绘制三角形原理
1.新建一个元素,将它的宽高都设置为0:然后通过设置border属性来实现三角形效果,下面是css绘制三角形的原理: <!DOCTYPE html> <html> <he ...
- 纯CSS写三角形-border法
(1)有边框的三角形 我们来写下带边框的三角形. 如果是一个正方形,我们写边时,会用到border,但我们这里讨论的三角形本身就是border,不可能再给border添加border属性,所以我们需要 ...
- 经典CSS实现三角形图标原理解析
前言: 在写这篇文章之前,我也看过很多前端大神写的代码,But,都只是粘贴代码和给出显示效果,对于初学者来说大家都喜欢刨根问底,为什么要这样做呢? 接下来就让我给大家分享一下我对CSS实现三角形的理解 ...
- 用css制作三角形
用css制作三角形,主要是利用css元素给“盒模型”设置边框得到的. 上图,上边框和做边框,以及上边框和右边框的交合处,浏览器会按照直角的二分之一处绘制交合线.这是“盒模型”有宽和高时候的效果.我们假 ...
- 三种纯CSS实现三角形的方法
看到像上图这样的 tip 的小三角,你会怎么办? 切个图上去?恩,不错,简单,兼容性也一级棒,不但好控制,那点小东西也增加不了多少图片的大小.但有没有更好更讲究技巧的办法呢?哈哈,那必须有啊,而且还不 ...
- CSS画三角形引发的一些思考
今天刷知乎时看到了一个问题,有谁能详细讲一下css如何画出一个三角形?怎么想都想不懂? - 知乎.很巧,刚入前端坑的我前不久也遇到过这个问题,今天再来谈一谈这个问题则是因为知乎的一些答案引发了我的 ...
随机推荐
- Flutter,Weex,React Native比较
- 十分钟学会Scratch图形化编程
一.概要 Scratch是麻省理工学院开发的供儿童或者初学者学习编程的开发平台.其通过点击并拖拽的方式,完成编程,可以使儿童或者成人编程初学者学习编程基础概念等.Scratch是一款积木式图形编程软件 ...
- Typora常用编辑方法-一个能将写博客变作享受的工具
1,标题 ctrl+数字(1~5) 2,序号 数字序号 数字 + . +空格,之后回车换行会自动产生数字序号 非数字序号 有三种 实心圆 ,非实心圆与实心方框 都是 +空格 ,之后按tab键向内缩进, ...
- 使用 Velero 跨云平台迁移集群资源到 TKE
概述 Velero 是一个非常强大的开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes群集资源和持久卷,可以在 TKE 平台上使用 Velero 备份.还原和迁移集群资源,关于如 ...
- 【linux】驱动-5-驱动框架分层分离&实战
目录 前言 5. 分离分层 5.1 回顾-设备驱动实现 5.2 分离分层 5.3 设备 5.4 驱动 5.5 系统,模块 5.6 Makefile 参考: 前言 5. 分离分层 本章节记录实现LED驱 ...
- Distributed | MapReduce
最近终于抽出时间开始学习MIT 6.824,本文为我看MapReduce论文和做lab后的总结. [MapReduce英文论文] lab要用到go语言,这也是我第一次接触.可以参考go语言圣经学习基本 ...
- OO第二单元作业——魔鬼电梯
简介 本单元作业分为三次 第一次作业:第一次作业要实现单部简单电梯,停靠所有楼层,无载客容量,性能分考量电梯运行时间. 第二次作业: 第二次作业实现多部电梯,电梯数量由初始化设定,每部电梯都停靠所有楼 ...
- Facebook资深工程师带你学Python核心技术
人工智能时代下,Python毫无疑问是最热的编程语言.在推开Python的大门后却发现,Python入门容易但精通却不易. 想要精通这门语言,必须真正理解知识概念,比如适当从源码层面深化认知,然后熟悉 ...
- Leedcode算法专题训练(链表)
1.发现两个链表的交点 160.两个链表的交集(容易) Leetcode /力扣 public class Solution { public ListNode getIntersectionNode ...
- Array.prototype.fill 填充值被复用的问题
考察如下示例代码: // 创建二维数组 const arr = Array(2).fill([]); // 操作第一个元素 arr[0].push(1); // 结果是操作了所有数组 console. ...