CSS深入了解border:利用border画三角形等图形

三角形实际上是border的产物 我们正常使用的border都是四边一个颜色,当我们把四边换上不同颜色 那么你就会发现,三角来了~!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3三角形画法</title>
    <style>
        .content{
            width: 0px;
            height: 0px;
            margin: 50px auto 0px;
            border-width: 150px;
            border-color: #666 #CC0066 #CC9966 #FFCC33;
            border-style: solid;
        }
    </style>
</head>
<body>
    <div class="content"></div>
</body>
</html>

原来border每个边,形成了三角形。 之前一直很奇怪,为什么每次width 和 height 都是0px? 我想原因已经不言而喻。 当然我们应该试一下看看 ~

可以给加上padding:50px;中间的白色区域就是100px

再加上border-radius:50%;会变成这样

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3三角形画法</title>
    <style>
        .content{
            width: 0;
            height: 0;
            margin: 50px auto 0px;
            /*没有修改width 和 height 而是用了padding*/
            padding: 50px;
            border-width: 150px;
            border-color: #666 #CC0066 #CC9966 #FFCC33;
            border-style: solid;
            /*还可以把border-radius设置一个玩玩*/
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
        }
    </style>
</head>
<body>
<div class="content"></div>
</body>
</html>

我们看到了三角,却拿不到三角? 很简单,我们知道border-color 值对应的边分别为 top 、right、bottom、left ;现在我们不想要那个,就把那个边透明。

当然我们要的三角通常不是这样的,现在,我们只要让border-color和border-width搭配,就可以变换各种三角。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3三角形画法</title>
    <style>
        .outer{
            display: inline-block;
            margin: 50px;
            text-align: center;
            font-size: 24px;
            line-height: 40px;
        }
        .content{
            width: 0;
            height: 0;
            border-style: solid;
        }
        .content-1{
            /*不要上面的三角 同时左边和右边不要有颜色 就是可爱的正三角*/
            border-width: 0px 100px 100px 100px;
            border-color: transparent transparent #CC9966 transparent;
        }
        .content-2{
            /*左边的三角 就是右边的不要了 上下三角透明 一点毛病都没有*/
            border-width: 100px 0px 100px 100px;
            border-color: transparent transparent transparent #CC9966;
        }
        .content-3{
            border-width: 100px 100px 100px 100px;
            border-color: transparent #CC9966 #CC9966 transparent;
        }
    </style>
</head>
<body>
<div class="outer">
    <div class="content content-1"></div>
    <div>下三角</div>
    <div class="content content-2"></div>
    <div>左三角</div>
    <div class="content content-3"></div>
    <div>右直三角</div>
</div>
</body>
</html>

注意:如果是采用border-weight不变,使对应的边的color透明的话,那么就是边框的尺寸会不变。

至于正三角、不规则三角等,只要知道它的原理,都是很可以画出来的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3三角形画法</title>
    <style>
        div{
            width: 0px;
            height: 0px;
            border-style: solid;
            margin: 30px auto 0px;
        }
        .content-1{
             /*梯形借助了padding*/
            padding: 10px 20px;
            border-width: 0px 50px 50px 50px;
            border-color: transparent transparent #CC9966 transparent;
        }
        .content-2{
            /*padding做梯形*/
            padding: 20px 10px;
            border-width: 50px 50px 50px 0px;
            border-color: transparent #CC9966 transparent transparent;
            /*喇叭效果*/
            -webkit-box-shadow: inset 15px 0 #666;
            -moz-box-shadow: inset 15px 0 #666;
            box-shadow: inset 15px 0 #666;
        }
        .content-3{
            width: 100px;
            height: 100px;
            background-color: #CC9966;
            border:none;
            /*平行四边行完全可以用旋转实现*/
            -webkit-transform: skew(-30deg);
            -moz-transform: skew(-30deg);
            -ms-transform: skew(-30deg);
            -o-transform: skew(-30deg);
            transform: skew(-30deg);
        }
    </style>
</head>
<body>
<body>
    <div class="content-1"></div>
    <div class="content-2"></div>
    <div class="content-3"></div>
</body>
</body>
</html>

时间: 2024-10-27 06:17:35

CSS深入了解border:利用border画三角形等图形的相关文章

用CSS border相关属性画三角形

效果 HTML: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>CSS Triangle Demo</title> <link rel="stylesheet" href="triangle.css"> </head> <body&g

css伪元素before/after和画三角形的搭配应用

想要实现的效果如下: 第一步:如何用css画出三角形? 1 /* css画三角形 */ 2 .sanjiao{ 3 width:0; 4 border-top:40px solid red; 5 border-bottom:40px solid green; 6 border-left:40px solid blue; 7 border-right:40px solid yellow; 8 } 9 10 <div class="sanjiao"> 11 </div&g

WebGl 利用drawArrays、drawElements画三角形

效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>WebGl 利用drawArrays.drawElements画三角形</title> </head> <body> <canvas id="myCanvas" width="500

css3画三角形的原理

以前用过css3画过下拉菜单里文字后面的“下拉三角符号”,类似于下面这张图片文字后面三角符号的效果 下面是一个很简单的向上的三角形代码 #triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid blue; } 再给相应的div加上对应的class,一个如下的三角形就用css画好了

转 css3画三角形的原理

转自  www.cnblogs.com/huangzhilong/p/5030659.html 下面是一个很简单的向上的三角形代码 #triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid blue; } 再给相应的div加上对应的class,一个如下的三角形就用css画好了 当时

css中border画三角形

<!doctype html><html lang="en"> <head>  <meta charset="UTF-8">  <meta name="Generator" content="EditPlus?">  <meta name="Author" content="">  <meta name=&qu

CSS 利用border三角形绘制方法

CSS 三角形绘制方法,这里面的transparent比较重要,有和没有影响很大: 原理:这个div是由4个三角形组成,每个三角对应一个border,隐藏其它3个border,就可以得到一个三角形. 复制代码 代码如下: #triangle-up {    width: 0;    height: 0;    border-left: 50px solid transparent;    border-right: 50px solid transparent; /*border:  50px

利用Border画三角形

边框 1.边框其实并不是矩形,而是梯形 2.利用边框画三角形: div.a{ width:0px; height:0px; border:10px  white solid; border-top-color:red;} div.b{ width:0px; height:0px; border:5px white solid ; border-left-color:red;} 效果如下:

为什么利用border可以实现三角形

前言:网上最普遍的实现三角形的方法,就是通过控制border来实现,那为什么可以呢? 原理 我们先来看看border的表现形式. #box{ width:100px; height:100px; background:yellow; border-top: 20px solid red; border-right:20px solid black; border-bottom:20px solid green; border-left:20px solid blue; } 观察上图可以发现,bo