CSS 做三角边框,实现及原理

简介: CSS 做三角边框,实现及原理


前言:

这个也是我最近学习才发现的一个细节,就是常常会在一些网站,看到下面图中这样的一个小三角,以前没怎么学CSS,我一直以为它是个精灵图之类。😂

1704463228926.jpg

我是最近才开始认真学的前端,比纯小白稍微懂的稍微多一点点。

文章如若有那些不足之处,请及时指出,在此郑重感谢。

一、CSS三角做法

我们先简单说一下,如何把三角画出来,懂用什么画的之后,基本就完事了。

html代码:

<div class="sanjiao">
</div>

css代码:

.sanjiao {
    /* 为了好看让它居中 */
    margin: 0 auto;
    /* 高度和宽度必须指定为零 */
    width: 0;
    height: 0;
    /* 给四边都设置边框和颜色 */
    border-bottom: 10px solid #FFD5A1;
    border-top: 10px solid #00A1D6;
    border-left: 10px solid saddlebrown;
    border-right: 10px solid seagreen;
}

我们先来看看代码效果,之后再谈论其他的哈

页面展示效果就是一个四个小三角拼成的正方形。

原理是什么呢?

盒子每一边的边框都是梯形的,盒子大小为0时,梯形上底(边框内边)也为0,所以两边会合并成三角形。

原理图大致就如下:

1704463233833.jpg

当最后它中间的盒子宽度、高度都为零,就成了角形。

二、CSS京东应用

原理知道了之后,我们来做一个小小的案例吧。

html代码:

<div class="main">
    <div class="box1">
    </div>
    <!-- 再写一个div来做三角 -->
    <div class="box2">
    </div>
</div>

css代码:

.mian {
    /* 我们再给父元素设置一个相对定位*/
    position: relative;
}
.box1 {
    margin-top:10px;
    width: 100px;
    height: 100px;
    background-color: #81c784;
    border-radius:5px;
}
.box2 {
    width: 0px;
    height: 0px;
    /* 设置四边边框宽度,将颜色设置为透明 */
    border: 10px solid transparent;
    /* 再进行下面的设置,这样之后就会出现一个紫色向上的一个小三角*/
    border-bottom: 10px solid #E1BEE7;
    position: absolute;
    left: 80px;
    top: -10px;
}
</style>

最后的成果大致如下:

1704463259146.jpg

css这个边框还有很多可以玩,还在学习中...

三、自言自语

最近在学css,说真的,感觉确实比后端要好玩很多,创意也多很多,不会像后端那么固定(增删改查😂)。

目前还是前端小白,希望大家多多谅解,正在努力中。

一名喜欢文艺却踏上编程这条道路的小青年。

希望:我们,待别日相见时,都已有所成

一个可爱的猫咪小表情,实在太可爱了,没办法抵挡住诱惑啊。

目录
相关文章
|
1月前
|
前端开发
css解决li边框重合问题
css解决li边框重合问题
14 0
|
3月前
|
前端开发
css实现伪类三角形气泡框 带边框
css实现伪类三角形气泡框 带边框
30 3
|
3月前
|
前端开发
|
13天前
|
前端开发 开发者
CSS3的常见边框汇总
CSS3的常见边框汇总
13 2
|
1月前
|
前端开发
css边框border(含代码,易懂)
css边框border(含代码,易懂)
|
2月前
|
前端开发
CSS外边距重叠:原理、结果
CSS外边距重叠:原理、结果
14 1
|
2月前
css3边框与圆角
css3边框与圆角
31 0
|
4月前
|
JavaScript 前端开发
vue中的css动画(过渡动画)使用步骤和原理
vue中的css动画(过渡动画)使用步骤和原理
|
4月前
|
前端开发
CSS外边距重叠:原理、结果
CSS外边距重叠:原理、结果
|
4月前
|
缓存 前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记->处理CSS
《Webpack5 核心原理与应用实践》学习笔记->处理CSS
36 0