V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Can I use?
http://caniuse.com/
Less
http://lesscss.org
Cool Libraries
Bootstrap from Twitter
Jetstrap
iFat3
V2EX  ›  CSS

[基础] 在 css 中绘制三角形及相关应用

  •  
  •   iFat3 · 2018-04-14 23:43:46 +08:00 · 2341 次点击
    这是一个创建于 2193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简言

    本文简要阐述了用 CSS 边框的方法在页面上绘制三角形,包括几种典型的三角形绘制,还介绍了几个简单的应用场景。利用边框绘制三角形方法只是众多方案中的一种,大家根据项目实际,选用最适宜项目的方案。

    CSS 与三角形

    1 基本原理

    在 CSS 中,我们可以利用 border-top、border-left、border-bottom、border-left 四个属性来绘制三角形。实现的基本原理参见下面的演示代码及其运行结果。

    核心代码:

    .box {
        width: 50px;
        height: 50px;
        border-top: 50px solid red;
        border-left:50px solid blue;
        border-right: 50px solid green;
        border-bottom: 50px solid yellow;
    }
    

    运行结果:

    边框基本原理

    演示代码

    从以上代码及运行结果不难想出绘制三角形的办法,我们只要将 .box 的长度和宽度都设成 0,就可以得到四个等腰三角形。再将不想保留的三角形边框颜色设置成透明色(即:border-color : transparent)就可以隐藏掉不想保留的三角形。从而完成三角形的绘制。

    2 绘制三角形

    2.1 等边三角形

    等边三角形(又称正三边形),为三边相等的三角形,其三个内角相等,均为 60°,它是锐角三角形的一种。等边三角形也是最稳定的结构。

    2.1.1 尖角向上:

    .triangle-up {
        width: 0;
        height: 0;
        border-bottom: 100px solid red;
        border-left: 57.735px solid transparent;
        border-right: 57.735px solid transparent;
    }
    

    尖角向上等边三角形

    演示代码

    2.1.2 尖角向下:

    .triangle-down {
        width: 0;
        height: 0;
        border-top: 100px solid red;
        border-left: 57.735px solid transparent;
        border-right: 57.735px solid transparent;
    }
    

    尖角向下等边三角形

    演示代码

    2.1.3 尖角向左:

    .triangle-left {
        width: 0;
        height: 0;
        border-right: 100px solid red;
        border-top: 57.735px solid transparent;
        border-bottom: 57.735px solid transparent;
    }
    

    尖角向左等边三角形

    演示代码

    2.1.4 尖角向右:

    .triangle-right {
        width: 0;
        height: 0;
        border-left: 100px solid red;
        border-top: 57.735px solid transparent;
        border-bottom: 57.735px solid transparent;
    }
    

    尖角向右等边三角形

    演示代码

    2.2 等腰直角三角形

    等腰直角三角形是特殊的等腰三角形,它的两底角相等,都是 45°;它的两腰长度相等。

    2.2.1 左上直角:

    .triangle-top-left{
        width: 0;
        height: 0;
        border-top: 100px solid red;
        border-right: 100px solid transparent;
    }
    

    左上直角等腰直角三角形

    演示代码

    2.2.2 右上直角:

    .triangle-top-right {
        width: 0;
        height: 0;
        border-top: 100px solid red;
        border-left: 100px solid transparent;
    }
    

    右上直角等腰直角三角形

    演示代码

    2.2.3 左下直角:

    .triangle-bottom-left{
        width: 0;
        height: 0;
        border-bottom: 100px solid red;
        border-right: 100px solid transparent;
    }
    

    左下直角等腰直角三角形

    演示代码

    2.2.4 右下直角:

    .triangle-bottom-right {
        width: 0;
        height: 0;
        border-bottom: 100px solid red;
        border-left: 100px solid transparent;
    }
    

    右下直角等腰直角三角形

    演示代码

    3 相关应用

    3.1 弹出框(popover)组件

    弹出框(popover)或提示框(tooltip)一般都会用到三角形,三角形明确并加强了指向作用。类似于 Bootstrap 的 Popover 和 Tooltip 组件都用到了边框三角形的实现方式。

    弹出框(popover)组件

    演示代码

    上述演示只是实现了顶部弹出框,其它方向弹出框参考上述实现方式即可。

    3.2 视频播放按钮

    视频播放按钮(Play button)可以采用边框三角形的实现方式。

    视频播放按钮组件

    演示代码

    三角形的应用场景还有很多,比如下拉菜单(dropdown menu)中,或者是“顶”及“踩”按钮等。

    边框实现三角形只是众多方案之一,大家可以根据项目实际,选择小图标方案或选用 SVG 方案。

    1 条回复    2018-04-23 23:56:19 +08:00
    POPOEVER
        1
    POPOEVER  
       2018-04-23 23:56:19 +08:00
    问你个简单问题,三角形边框怎么做
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5656 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 06:02 · PVG 14:02 · LAX 23:02 · JFK 02:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.