zoukankan      html  css  js  c++  java
  • CSS深入了解border:利用border画三角形等图形

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

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css3三角形画法</title>
        <style>
            .content{
                 0px;
                height: 0px;
                margin: 50px auto 0px;
                border- 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{
                 0;
                height: 0;
                margin: 50px auto 0px;
                /*没有修改width 和 height 而是用了padding*/
                padding: 50px;
                border- 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{
                 0;
                height: 0;
                border-style: solid;
            }
            .content-1{
                /*不要上面的三角 同时左边和右边不要有颜色 就是可爱的正三角*/
                border- 0px 100px 100px 100px;
                border-color: transparent transparent #CC9966 transparent;
            }
            .content-2{
                /*左边的三角 就是右边的不要了 上下三角透明 一点毛病都没有*/
                border- 100px 0px 100px 100px;
                border-color: transparent transparent transparent #CC9966;
            }
            .content-3{
                border- 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{
                 0px;
                height: 0px;
                border-style: solid;
                margin: 30px auto 0px;
            }
            .content-1{
                 /*梯形借助了padding*/
                padding: 10px 20px;
                border- 0px 50px 50px 50px;
                border-color: transparent transparent #CC9966 transparent;
            }
            .content-2{
                /*padding做梯形*/
                padding: 20px 10px;
                border- 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{
                 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>

  • 相关阅读:
    Android开发之Sqlite的使用
    ZOJ 3607 Lazier Salesgirl
    ZOJ 3769 Diablo III
    ZOJ 2856 Happy Life
    Ural 1119 Metro
    Ural 1146 Maximum Sum
    HDU 1003 Max Sum
    HDU 1160 FatMouse's Speed
    Ural 1073 Square Country
    Ural 1260 Nudnik Photographer
  • 原文地址:https://www.cnblogs.com/goloving/p/7142316.html
Copyright © 2011-2022 走看看