css三角形-原来css中的边框也可以这样玩

2023-08-20 0 7,802 百度已收录

以下几句话:

在阅读本文之前,您可能认为边框只是一个简单的边框。 看完这篇文章,相信你也会和我说一样的话,“妈的,原来css里的边框还能这么玩”。 这篇文章主要是在很久之前看别人用纯CSS画三角形后,整理出自己的一些想法。 文章将介绍几个小图标的疗效。

使用css中的边框勾勒出蛋黄的形状:

是的,你没有看错,这里就是概述一种类似于猪肉的疗效。

思路:我们先用div画一个正圆,然后设置border-radius: 50%;,这样就可以得到矩形的效果css三角,代码如下:

html代码:

CSS代码:

.div {
    width: 100px;
    height: 100px;
    line-height: 100px;
    background-color: aqua;
    text-align: center;
    border-radius: 50%;
}

结果如图所示:

思考:分析猪肉的结构,猪肉有点椭圆形,又分大头和小头。 我们有什么办法可以把之前的圆变成椭圆吗?

思路:我们改变div的长度或者高度,让它们不一致,看看能否得到我们想要的疗效。

实现:我们改变width:50px; 或高度:50px; (只改变其中一项),则得到如下疗效:

思考:我们已经获得了椭圆的疗效,如何才能达到大头和小头的疗效呢?

思路一:我们将椭圆进行分割,然后控制长度不一致。 (此方法不成功)

想法2:我们设置border-radius的百分比。 当border-radius:100%时; 以及之前方法的截图如下:

再尝试将border-radiusratio的值分开(不要缩写,直接写4),然后控制比例不一致。 关键代码:

border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%;

此时得到的疗效截图:

使用css中的边框绘制三角形:

相信大家都知道border-color控制边框的颜色,而你可能没有尝试过这个,看下面的代码:

html:

CSS:

.div {
    width: 100px;
    height: 100px;
    border: 50px solid transparent;
    border-color: yellow green red aqua;
}

结果是:

思考一:如果div没有宽高怎么办?

实现结果:

思考2​​:上面的处理结果是四个三角形。 我们有什么办法可以将三角形与哪个div分开呢?

思路:没接触过div的分离(不应该存在),看看CSS“层叠样式”的定义,改变一下思路。 我们有什么办法可以遮盖我们不想要的三角形吗? 失去?

具体方法:这里设置我们需要的颜色作为我们的背景色——白色,是的,这样就可以得到我们想要的效果了。 代码如下(以上面的三角形为例):

边框颜色:黄色白色白色白色白色;

是不是这样就算我们完成了我们的三角疗效呢?

我们可以尝试将整个body的背景色改为红色,看看有什么变化:

发现div还占这么大的空间,而且背景色设置为红色,这不是最科学的

思考4:怎样才能让不需要的颜色消失呢?

思路:我们将不想显示的颜色设置为父容器的背景色,border-color:yellowtransparenttransparenttransparent;

结果如下:

思考三:如何设置div不占用这么大的空间?

思路:直接去掉想要的三角形对边的边框长度

具体方法:(这次以下面的三角形为例),代码如下:

div {

宽度:0 像素;

高度:0 像素;

边框底部:50pxsolidred;

左边框:50pxsolid透明;

右边框:50pxsolid透明;

结果如图所示:

关于三角形展开的一些想法:

思考一:我们常用的三角形有锐角三角形、钝角三角形、直角三角形、等腰三角形、等边三角形等,我们有什么方法可以直接得到我们想要的三角形效果呢?

思路:当斜边与水平线平行时,我们直接控制长宽比,即可达到想要的三角形效果; 当与水平线不重合时,这个时候就比较复杂了,我们需要利用宽高比和CSS3的transform属性和rotate相结合,让我们的三角形展现出我们想要的效果(这里只是介绍一下)的思路,不是具体实现,这涉及到物理知识,大家可以自行百度)。

思考2​​:我们可以用多个三角形拼出更多的形状吗?

(这可以是,比如我们可以用两个三角形和一个长圆组成一个平行四边形css三角形,甚至可以说我们可以用多个div组成一个简单的竹屋……)

补充:

1.在我们的思考一后面的图中,我们可以看到,虽然中间是矩形,但是我们用同样的方法也可以得到矩形的效果(具体方法不再单独介绍)。

2.通过旋转,我们可以让我们的正圆变成长方形的效果

六边形的制作(以多边形为例)

首先我们来分析一下多边形,看看能否将其分解为我们上面提到的简单图形。 见下图:

分析:以内部为例,我们可以看到多边形是由两个三角形和一个正方形组成的。

思考1:我们有什么办法把这三个图形放在一起吗?

思路:使用伪元素:after和:before,然后在各自的区域绘制图形

参考代码如下:


    
        
        六边形的制作
        
            #hexagon {
                width: 100px;
                height: 55px;
                background: #fc5e5e;
                position: relative;
                margin: 100px auto;
            }
            
            #hexagon:before {
                content: "";
                width: 0;
                height: 0;
                position: absolute;
                top: -25px;
                left: 0;
                border-left: 50px solid transparent;
                border-right: 50px solid transparent;
                border-bottom: 25px solid yellow;
            }
            
            #hexagon:after {
                content: "";
                width: 0;
                height: 0;
                position: absolute;
                bottom: -25px;
                left: 0;
                border-left: 50px solid transparent;
                border-right: 50px solid transparent;
                border-top: 25px solid aqua;
            }
        
    
    
        

(其实这里的知识介绍了一种情况,也可以尝试三角形的不同边)

多角星的制作(以六角星为例)

分析:尝试用上述方法分析六角星的结构。 我们可以理解,六角星是由两个三角形重叠而成。 连接起来很容易。 我们直接看代码:


    
        
        六角星
        
            
            div {
                width: 0;
                height: 0;
                display: block;
                position: absolute;
                border-left: 100px solid transparent;
                border-right: 100px solid transparent;
                border-bottom: 200px solid #de34f7;
                margin: 10px auto;
            }
              
            div:after {
                content: "";
                /*content插入内容*/
                width: 0;
                height: 0;
                position: absolute;
                border-left: 100px solid transparent;
                border-right: 100px solid transparent;
                border-top: 200px solid #de34f7;
                margin: 60px 0 0 -100px;
            }
        
    
    
        

最终效果如下:

五角星的制作(实际操作比六角星难一些):我们先自己画一个五角星,然后把它分成三份,然后用上面的步骤来实现。 这里我只列出一种方法作为参考(有几个细节处理起来有点复杂),分析图如下:

参考代码如下:


    
        
        
        
            #star{
                width: 0px;
                height: 0px;
                margin: 50px 0;
                color: red;
                position: relative;
                display: block;
                border-bottom: 70px solid red;
                border-left: 100px solid transparent;
                border-right: 100px solid transparent;
                -webkit-transform: rotate(35deg);
            }
            #star:before{
                content: '';
                width: 0px;
                height: 0px;
                margin: 50px 0;
                color: yellow;
                position: relative;
                display: block;
                border-bottom: 80px solid yellow;
                border-left: 30px solid transparent;
                border-right: 30px solid transparent;
                -webkit-transform: rotate(-35deg);
                top: -45px;
                left: -65px;
            }
            #star:after{
                content: '';
                width: 0;
                height: 0;
                position: absolute;
                display: block;
                top: 3px;
                left: -105px;
                color: #fc2e5a;
                border-right: 100px solid transparent;
                border-bottom: 70px solid #fc2e5a;
                border-left: 100px solid transparent;
                -webkit-transform: rotate(-70deg);
                -moz-transform: rotate(-70deg);
                -ms-transform: rotate(-70deg);
                -o-transform: rotate(-70deg);
                
            }
        
    
    
        

CSS小图标的效果:

到目前为止,你还没看过吗?接下来分享一下我制作的CSS小图标:对话框的制作

对话框的制作:

分析:对话框由三角形和圆角组成

实现:代码如下:


    
        
        
        
            * {
                margin: 0px;
                padding: 0px;
            }
            
            div {
                margin: 100px;
            }
            
            #comment_bubble {
                width: 300px;
                height: 100px;
                background: #088cb7;
                position: relative;
                -moz-border-radius: 12px;
                -webkit-border-radius: 12px;
                border-radius: 12px;
            }
            
            #comment_bubble:before {
                content: "";
                width: 0;
                height: 0;
                right: 100%;
                top: 38px;
                position: absolute;
                border-top: 13px solid transparent;
                border-right: 26px solid #088cb7;
                border-bottom: 13px solid transparent;
            }
        
    
    
        

消息提示框可以先制作一个圆角矩形,然后在需要的地方放置一个三角形。

实现结果:

下一句话:

事实上,这个疗效看起来并没有那么酷,我记得我第一次得知这个的时候是多么兴奋。 当时做了比较多的疗效(不过前几天笔记本换系统的时候这些东西就没有了),所以表现出来的只是一个很简单的疗效。 现在能回忆起来的就这么多了,等想起来了再补充。 你们有什么好的疗效呢? 欢迎分享和交流。

很多知名网站都会在文字链接右侧添加箭头图标,比如Google站长管理后台、Alexa官网等,这样设计的好处是让链接更加显眼,更容易区分。

在文本链右侧添加箭头图标的方法大多数人都是使用css背景图片来实现的,包括前面提到的Google站长管理后台、Alexa官网等。是的,这些技术是最容易掌握和应用的。 这正是本文将要实现的方式。

我们先来看看治疗图。

在css背景图片的文本链一侧添加箭头图标

上图展示了两种超链接样式,分别是两个不同的箭头图标。 虽然它们是背景图片,但是我们可以通过css手动在文本链接的右侧添加这样的背景图片。

CSS代码如下:

。内容{

宽度:600px;

边距:30px30px30px30px;

字体系列:“MicrosoftYahei”、Georgia、“TimesNewRoman”、Times、serif;

字体大小:14px;

颜色:#333;

行高:185%;

.内容a{

背景:url(数据:图像/ png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzY aB/IkeGOrxXhqB+uA9 Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAAASUVORK5CYII=)centerright无重复;

右内边距:13px;

左边距:3px;

右边距:3px;

文本装饰:下划线;

颜色:#c30;

.contenta:悬停{

颜色: 蓝色;

这里的关键代码是background:url,其中url是图片地址。 在上面的css代码中,url使用了箭头图标的base64字符串(指南:使用浏览器轻松获取图像的base64字符串)。

以下是html关键代码:

超链接样式一

HTML,特别容易实现下拉菜单的效果。 而且由于只能修改宽度,无法修改高度、颜色等样式,所以有时候在网页设计中配合整体布局变得不美观。 因此,它被网页设计师广泛使用。 通过div+css箭头css,可以达到你想要的样式的效果,使得下拉菜单和网页的整体布局更加美观、和谐。

从上面的html代码中可以看到,虽然我们不需要编写任何额外的代码,但是普通的超链接就足够了。 这样做的好处是我们可以随时改变css代码来设置不同样式的超链接。 是否需要右箭头图标也可以在css中轻松完成。

完整的html代码如下:

超链接样式一

HTML,特别容易实现下拉菜单的效果。 而且由于只能修改宽度箭头css,无法修改高度、颜色等样式,所以有时候在网页设计中配合整体布局变得不美观。 因此,它被网页设计师广泛使用。 通过div+css,可以达到你想要的样式的效果,使得下拉菜单和网页的整体布局更加美观、和谐。

执行代码 获取代码

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css三角形-原来css中的边框也可以这样玩 https://www.wkzy.net/game/127035.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务