• 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

  • 相关阅读:
    也谈用反射实现Enum→String映射:一种重视性能的方法【转载】
    C#对象的浅拷贝,深拷贝【转载】
    int转byte[],byte[]转int
    TF31003:您的用户帐户没有连接到 Team Foundation Server 的权限
    关于枚举的双语显示问题
    浅析C#深拷贝与浅拷贝
    反射枚举变量
    C#路径/文件/目录/I/O常见操作汇总(二)
    【转】正确理解ThreadLocal
    【转】JSP的九个隐含对象
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12581432.html
Copyright © 2020-2023  润新知