zoukankan      html  css  js  c++  java
  • CSS绘制小图标

    css实现小图标一般是由::before、::after、border、transform、position实现

    1 最简单且熟悉的就是三角形了:

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .t1{
                display: inline-block;
                width: 0;
                height: 0;
                border-top: 10px solid #000;
                border-left: 10px solid transparent;
                border-right: 10px solid transparent;
            }
            .t2{
                display: inline-block;
                width: 0;
                height: 0;
                border-left: 10px solid #000;
                border-top: 10px solid transparent;
                border-bottom: 10px solid transparent;
            }
            .t3{
                display: inline-block;
                width: 0;
                height: 0;
                border-bottom: 10px solid #000;
                border-left: 10px solid transparent;
                border-right: 10px solid transparent;
            }
            .t4{
                display: inline-block;
                width: 0;
                height: 0;
                border-right: 10px solid #000;
                border-top: 10px solid transparent;
                border-bottom: 10px solid transparent;
            }
        </style> 
        <body>
            <span class="t1"></span>
            <span class="t2"></span>
            <span class="t3"></span>
            <span class="t4"></span>
        </body>

     效果图:

     2 小房子

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .home{
                width: 40px;
                height: 40px;
                position: relative;
            }
            .home::before{
                content: '';
                width: 0;
                height: 0;
                position: absolute;
                top: 0;
                left: 0;
                border: 20px solid transparent;
                border-bottom-color: #000;
                border-top: 0;
            }
            .home::after{
                content: '';
                height: 12px;
                width: 12px;
                position: absolute;
                top: 18px;
                left: 6px;
                border: 8px solid #000;
                border-bottom: 0;
                border-top-width: 10px;
            }
        </style> 
        <body>
            <p class="home"></p>
        </body>

    效果图:

    bottom-top-width 左右边框时指边框的宽度值,上下边框时指边框的高度值

    3 音量加图标

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            div{
                width: 40px;
                height: 40px;
                position: relative;
                margin: 20px;
            }
            .span1::before{
                content: '';
                height: 16px;
                width: 12px;
                display: block;
                background: #333;
                position: absolute;
                top: 12px;
                left: 0px;
            }
            .span1::after{
                content: '';
                height: 16px;
                width: 0;
                display: block;
                border: 10px transparent solid;
                border-left-width: 0;
                border-right-color: #333;
                position: absolute;
                top: 2px;
                left: 10px;
            }
            .span2::before{
                content: '';
                height: 4px;
                width: 16px;
                display: block;
                background: #333;
                position: absolute;
                top: 18px;
                left: 22px;
            }
            .span2::after{
                content: '';
                height: 16px;
                width: 4px;
                display: block;
                background: #333;
                position: absolute;
                top: 12px;
                left: 28px;
            }
        </style> 
        <body>
            <div>
                <span class="span1">
                    <span class="span2">
    
                    </span>
                </span>
            </div>
        </body>

    效果图:

     4 下载图标

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            span{
                width: 26px;
                height: 36px;
                border-bottom: 4px #333 solid;
                display: block;
                position: relative;
                overflow: hidden;
            }
            span::before{
                content: '';
                height: 20px;
                width: 20px;
                display: block;
                border: #333 solid;
                border-width: 0 6px 6px 0;
                position: absolute;
                bottom: 7px;
                left: 0px;
                transform: rotate(45deg);
            }
            span::after{
                content: '';
                height: 28px;
                width: 6px;
                display: block;
                background: #333;
                position: absolute;
                top: 0px;
                left: 10px;
            }
        </style> 
        <body>
            <span></span>
        </body>

    效果图:

    5 电池电量图标

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            span{
                width: 35px;
                height: 20px;
                background: #333;
                border-radius: 2px;
                display: block;
                position: relative;
            }
            span::before{
                content: '';
                height: 8px;
                width: 4px;
                background: #333;
                display: block;
                position: absolute;
                top: 6px;
                left: 35px;
            }
            span::after{
                content: '';
                height: 8px;
                width: 4px;
                background: #fff;
                display: block;
                position: absolute;
                top: 6px;
                left: 6px;
                box-shadow: 9px 0 0 #fff;   /* 第二格电是用这个box-shadow实现的。第一个值9是指向右平移了9像素,第二个0指竖直方向不平移即和第一个电量格齐平,第三个0是指模糊的距离,这里值不模糊 */
            }
        </style> 
        <body>
            <span></span>
        </body>

    效果图:

    6 上升趋势图标

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .span1{
                width: 36px;
                height: 36px;
                border: #333 solid;
                border-width: 0 0 4px 4px;
                display: block;
            }
            .span1::before{
                content: '';
                height: 4px;
                width: 18px;
                display: block;
                background: #333;
                position: absolute;
                top: 24px;
                left: 0;
                transform: rotate(-55deg);
                box-shadow: 15px 10px 0 #333;  /* 这里第二条向上的折线就是用这个box-shadow实现的,向右平移了15像素,向上平移了10像素,0为不模糊,颜色为#333 */
            }
            .span1::after{
                content: '';
                height: 4px;
                width: 13px;
                display: block;
                background: #333;
                position: absolute;
                top: 21px;
                left: 11px;
                transform: rotate(39deg);
            }
            .span2::before{
                content: '';
                height: 0;
                width: 0;
                display: block;
                border: 10px solid transparent;
                border-right-width: 0;  /* 这里右边框的宽度设置为0可以使上边框(三角形)失去右边的一半,以达到想要的效果 */
                border-top-color: #333;
                position: absolute;
                top: 8px;
                left: 25px;
            }
        </style> 
        <body>
            <span class="span1">
                <span class="span2"></span>
            </span>
        </body>

    效果图:

     7 锁形图标

        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            span{
                width: 38px;
                height: 25px;
                margin-top: 40px;
                background: #333;
                border-radius: 3px;
                border-left: 1px dashed #fff;
                border-right: 1px dashed #fff;
                display: block;
                position: relative;
            }
            span::before{
                content: '';
                height: 10px;
                width: 16px;
                display: block;
                border: 5px solid #333;
                border-bottom: none;
                border-radius: 50px 50px 0 0;
                -webkit-border-radius: 50px 50px 0 0;
                -moz-border-radius: 50px 50px 0 0;
                position: absolute;
                top: -15px;
                left: 6px;
            }
            span::after{
                content: '';
                width: 5px;
                height: 7px;
                background: #fff;
                border-radius: 2px;
                -webkit-border-radius: 2px;
                -moz-border-radius: 2px;
                border: 5px;
                position: absolute;
                top: 8px;
                left: 17px;
            }
        </style> 
        <body>
            <span></span>
        </body>

    效果图:

    更多例子可以看这里:http://www.uiplayground.in/css3-icons/

    原文:

    http://dongtianee.sinaapp.com/demo9.html

  • 相关阅读:
    git 实践(二) push的使用
    git 实践(一) pull的使用
    redux项目实战应用笔录
    浅谈ES6的Object.assign()浅拷贝
    React下reducer中处理数组&&对象的赋值改动
    git pull与git clone
    (0)网络编程基础(网络基本知识)
    (1)什么是socket(套接字)
    (12)异常处理
    (11)类的内置函数
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12581432.html
Copyright © 2011-2022 走看看