A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1. 画三角形
利用元素的 border 绘制三角形,先来看一下宽高均为 0,border 有宽度的效果是啥样的:
<style>
.triangle {
            width: 0;
            height: 0;
            border-top: 100px solid #f00;
            border-right: 100px solid #0f0;
            border-bottom: 100px solid #00f;
            border-left: 100px solid #ff0;
        }
</style>

<div class="triangle"></div>
然后我们可以通过给任意三边的颜色设置为 transparent 即可分别实现任一方向的三角形。
通过设置某条边的宽度比其它边宽,来调整三角形的高度。
    <style>
        .triangle {
            width: 0;
            height: 0;
            border: 100px solid transparent;
            border-bottom: 200px solid #0ff;
        }
    </style>
通过设置某条边的宽度比其它边窄,来调整三角形的宽度。
<style>
        .triangle {
            width: 0;
            height: 0;
            border: 100px solid transparent;
            border-bottom: 200px solid #0ff;
        }
    </style>

2. 画扇形
任意角度的有点复杂,暂时先只实现90度的吧。
原理:左上角是圆角,其余三个角都是直角:左上角的值为宽和高一样的值,其他三个角的值不变(等于0)。 border-radius四个值的顺序是:左上角,右上角,右下角,左下角。
    <style>
        .sector1 {
            border-radius:100px 0 0;
            width: 100px;
            height: 100px;
            background: #00f;
        }
        <div class="sector1"></div>
    </style>
原理:和三角形的实现有些类似。
    <style>
        .sector2 {
            border: 100px solid transparent;
            width: 0;
            border-radius: 100px;
            border-top-color: #f00;
        }
        <div class="sector2"></div>
    </style>

3. 画箭头
利用三角绘制箭头,只需要再绘制一个和此三角大小相同,方向相同的三角,颜色和背景颜色一样,覆盖在此三角上面,通过少量的位移形成箭头。
<style>
        .arrow{
            width: 0;
            height: 0;
            border: 50px solid;
            border-color: transparent #0f0 transparent transparent;
            position: relative;
        }
        .arrow::after{
            content: '';
            position: absolute;
            right: -55px;
            top: -50px;
            border: 50px solid;
            border-color: transparent #fff transparent transparent;
        }
        
        <div class="arrow"></div>
</style>

4. 椭圆
椭圆依旧依赖 border-radius 属性,很多人应该都没注意过,border-radius 其实可以设置水平半径和垂直半径两个值 ,参考MDN - border-radius,具体用法为 border-radius: 水平半径 / 垂直半径;.
<style>
        .oval {
            width: 100px;
            height: 50px;
            background: #ff0;
            border-radius: 50px / 25px;
        }
</style>
<div class="oval"></div>

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马