CSS画三角形

CSS画三角形

1.实心三角形

.triangle {
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #e87070 transparent transparent;
}

实心三角形的实现,实际上是一个长宽均为0的div,完全由border组成的,根据border-width来控制三角形的大小,根据border-color来控制三角形的朝向和颜色。

其原始的原理是我们画了一个矩形,矩形的长宽由border的长宽总和决定,矩形的原点以border-width的值决定,该矩形根据原点会被划分为4个三角形,我们只需要只保留它某一个三角形即可实现实心三角形的展示,其他三角形的颜色均置为白色即可。

2.空心三角形

.triangle-hollow {
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #000000 transparent transparent;
            position: relative;
}

.triangle-hollow:after {
            content: '';
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #ffffff transparent transparent;
            position: absolute;
            top: -50px;
            left: -30px;
}

空心三角形其实是由2个三角形重叠组成的。首先我们画一个实心的三角形,然后再画一个颜色为纯白色的三角形,然后用这个纯白色的三角形覆盖到实心三角形上,只留出实心三角形的一部分作为边线即可。

3.测试代码

<html>

<head>
    <title>测试</title>
    <style>
        .container {
            width: 300px;
            height: 300px;
            border: 1px solid #ffc2c2;
            margin: 10px auto;
        }
        .rectangle{
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 10px 20px 30px 40px;
            border-style: solid;
            border-color: red blue yellow green;
        }
        .triangle {
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #e87070 transparent transparent;
        }

        .triangle-hollow {
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #000000 transparent transparent;
            position: relative;
        }

        .triangle-hollow:after {
            content: '';
            margin: 20px auto;
            width: 0;
            height: 0;
            border-width: 30px;
            border-style: solid;
            border-color: transparent #ffffff transparent transparent;
            position: absolute;
            top: -50px;
            left: -30px;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="rectangle"></div>
        <hr>
        <div class="triangle"></div>
        <hr>
        <div class="triangle-hollow"></div>
    </div>
</body>

</html>

效果图如下:

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值