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>

  • 相关阅读:
    sql语言复习:学院-学生-教师-课程-学习-授课表上的一些操作
    JZOJ6358. 【NOIP2019模拟2019.9.15】小ω的仙人掌
    JZOJ6353. 【NOIP2019模拟】给(ca)
    【CSP-S2019模拟】09.13比赛总结
    【CSP-S2019模拟】09.11比赛总结
    JZOJ6341. 【NOIP2019模拟2019.9.4】C
    JZOJ6344. 【NOIP2019模拟2019.9.7】Huge Counting
    JZOJ6343. 【NOIP2019模拟2019.9.7】Medium Counting
    【随机编号】【 2019 Multi-University Training Contest 8】1008.Andy and Maze
    【吉如一线段树】JZOJ6270. 【省赛模拟8.10】序列
  • 原文地址:https://www.cnblogs.com/goloving/p/7142316.html
Copyright © 2011-2022 走看看