非常酷!CSS3三角形运用!

本文介绍如何利用CSS3的边框特性创建三角形,并通过组合三角形实现网页设计中的复杂图形,包括旗帜、箭头、气泡和丝带。通过实例和代码演示,帮助开发者掌握这一技巧,提升前端设计能力。
摘要由CSDN通过智能技术生成

概述


在早期的前端Web设计开发年代,完成一些页面元素时,我们必须要有专业的PS美工爸爸,由PS美工爸爸来切图,做一些圆角、阴影、锯齿或者一些小图标。


在CSS3出现后,借助一些具有魔力的CSS3属性,使得这些元素大多都可以由开发人员自己来完成。在开始阅读这篇文章前,我们先喊个口号:不想当艺术家的程序员不是好设计师!


本文的Demo和源代码已放到GitHub,如果您觉得本篇内容不错,请在GitHub上加个星星!


图例


我们先来看一副设计图




这幅图复杂的元素不多,布局也较为简单,我们大致分析一下,需要PS美工爸爸帮忙做的只有一件事情,就是将上半部分的蓝色背景图给抠出来。

除此之外,出现在这幅设计图的一些特殊形状和小图标,都可以通过CSS3来实现。

我们将这些特殊形状和小图标分为两类:


1. 可以用Icon Font实现的




Icon Font是将一些图标作成字体文件,在CSS中指定font-face和font-family,然后为每个图标指定相应的class。

在网页中使用Icon Font就像使用普通的文字一样,比如font-size属性可以设定图标的大小,设定color属性可以设定图标的颜色。

更多内容,请参考阿里巴巴矢量图标管理网站:http://iconfont.cn/。


2. 不能用IconFont实现的



为什么这些图形不用IconFont实现呢?因为通常Icon Font提供的都是一些正方形的矢量图标,也就是长等于宽的图标。


本篇要讲的就是如何通过CSS3来实现这4个图形。


三角形


不知大家注意到了没有,这4个图形都包含了一个特殊的元素——三角形。

这4个图形,都是由三角形、长方形,或者是一个被啃掉了一口的长方形组成的。


CSS3是如何实现三角形的呢?——答案是通过边框,也就是border属性。


长方形边框


HTML的块级元素都是长方形的,比如我们设定了以下样式:


<style>

    .simple-retangle {

        margin: 50px auto;

        width: 200px;

        height: 200px;

        border: 40px solid salmon;

    }

</style>

<div class="simple-retangle"></div>


如大家所认知的,这只是一个简单的长方形,这个长方形在画面中是这样显式的:




这个长方形太单调了,再给它点颜色看看,咱们来个彩色边框吧。


<style>

    .colored-border-retangle {

        margin: 50px auto;

        width: 200px;

        height: 200px;

        border-top: 40px solid coral;

        border-right: 40px solid lightblue;

        border-bottom: 40px solid lightgreen;

        border-left: 40px solid mediumpurple;

    }

</style>

<div class="colored-border-retangle"></div>


在画面中,每个边框都变成一个梯形了。




为什么它会变成梯形呢?




请注意长方形的4个角,以左上角为例,它到底是属于左边框还是上边框呢?

左上角,既属于左边框,又属于上边框,角落的归属成了一个问题,浏览器为了不让边框打架,就让二位各分一半吧。


于是乎左上角就被一分为二,变成了两个三角形,三角形靠近哪个边框,就显示那个边框的颜色。


三角形的实现


再看看文章开头的4个图案,你是不是又发现了这样一个规律?每个三角形都是“小家碧玉”的,它们没有内容。

既然如此,我们把上面这个彩色边框的矩形内容拿掉,看看会发生什么。


<style>

    .colored-border-empty-retangle {

        margin: 50px auto;

        border-top: 40px solid coral;

        border-right: 40px solid lightblue;

        border-bottom: 40px solid lightgreen;

        border-left: 40px solid mediumpurple;

    }

</style>

<div class="colored-border-empty-retangle"></div>


呜,cool!左边和右边都是三角形了 耶!




为什么上边和下边还是梯形呢?这是因为块级元素默认会在页面上水平平铺。

理解这一点,让上边和下边也变成三角形就简单了,将元素的width属性设为0:


<style>

    .colored-border-empty-retangle {

        margin

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值