CSS使用的一些小技巧/高级进阶

栏目: CSS · 发布时间: 6年前

内容简介:最近闲暇时间在看鑫爷的《CSS世界》,内容真的是非常精彩,很多细节分析的非常透彻,值得推荐。在日常开发中实现某种效果有很多方式,但是下面的局限性:content 属性 改变 的 仅仅是 视觉 呈现, 当 我们 以 右键 或 其他 形式 保存 这张 图片 的 时候, 所 保存 的 还是 原来 src 对应 的 图片。优点:

最近闲暇时间在看鑫爷的《CSS世界》,内容真的是非常精彩,很多细节分析的非常透彻,值得推荐。在日常开发中实现某种效果有很多方式,但是下面的 css code 我以前都很少用到,原来css还可以这么玩 。。

实现hover改变成另一张图片效果

/**css**/
img: hover {  
     content: url( laugh-tear. png);
 }

/**html code**/
< img src=" laugh. png"> 
复制代码

局限性:content 属性 改变 的 仅仅是 视觉 呈现, 当 我们 以 右键 或 其他 形式 保存 这张 图片 的 时候, 所 保存 的 还是 原来 src 对应 的 图片。

显示网站logo

< h1>logo</ h1>
 h1 {   
   content: url( logo. svg);
 }
复制代码

优点:

1,不会影响网站SEO。
2,使用.svg矢量图为了适应移动 端 retina 屏幕(如果用.svg会模 糊)。

注:千万不要自以为是地把重要的文本信息使用content 属性生成,因为这对可访问性和SEO都很不友好,content 属性只能用来生成 一些 无关紧要的内容, 如装饰性图形或者序号之类; 同样,也不要担心 原本重要的文字信息会被content替换,替换的仅仅是视觉层。

设置内容无法选中、无法复制

user-select: none
复制代码

“三道 杠” 小 图标 示意

CSS使用的一些小技巧/高级进阶
.icon-menu {  
     display: inline-block;  
     width: 140px; 
     height: 10px;  
     padding: 35px 0;  
     border-top: 10px solid;  
     border-bottom: 10px solid;  
     background-color: currentColor;  
     background-clip: content-box; 
}

复制代码

双层 圆点 图形 示意

CSS使用的一些小技巧/高级进阶
.icon-dot {  
     display: inline-block;   
      width: 100px; 
      height: 100px;   
      padding: 10px;  
      border: 10px solid;       
      border-radius: 50%;   
      background-color: currentColor;   
      background-clip: content-box; 
}

复制代码

去掉最右边的margin-right:20

CSS使用的一些小技巧/高级进阶
/**方案一:使用css3 nth-of-type属性(不考虑兼容IE8**/
li: nth-of-type(3n) { 
  margin-right: 0;
 }
复制代码
/**方案二:通过给父容器添加margin属性, 增加容器的可用宽度来实现**/
ul {  
     margin-right: -20px; 
}
 ul > li {  
     float: left;  
     width: 100px;   
     margin-right: 20px;
 }

复制代码

margin:auto的妙用

水平垂直居中

CSS使用的一些小技巧/高级进阶
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>
        .father {
            position: relative;
            width: 300px;
            height: 150px;
            border: red solid 1px;
        }
        .son {
            position: absolute;  /**key code here**/
            background-color: orange;
            width: 100px;
            height: 100px;
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
            margin: auto;  /**key code here**/
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>
复制代码

左/右对齐效果。

CSS使用的一些小技巧/高级进阶
...
        .father {
            width: 300px;
            height: 200px;
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin-right: 50px; /**左对齐margin-right、margin-left值交换**/
            margin-left: auto;  /**key code here**/
        }
...
复制代码

水平居中

CSS使用的一些小技巧/高级进阶
...
        .father {
            width: 300px;
            height: 200px;
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin-right: auto; /**key code here**/
            margin-left: auto;  /**key code here**/
        }
...
复制代码

###垂直居中

CSS使用的一些小技巧/高级进阶
...
        .father {
            width: 300px;
            height: 200px;
            writing-mode: vertical-lr;  /**key code here**/
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin: auto;  /**key code here**/
        }
...
复制代码

实现最高渲染性能的去除下边框css

div {   
    border: 1px solid;   
    border-bottom: 0 none;  /**key code here**/
 }

复制代码

优雅的增加icon按钮点击区域

点击 区域 大小 从 16 × 16 一下子 提升 到 38 × 38,

CSS使用的一些小技巧/高级进阶
.icon- clear {  
     width: 16px;   
      height: 16px;   
      border: 11px solid transparent;   /**key code here**/
}

复制代码

最高性能等边三角图形绘制

CSS使用的一些小技巧/高级进阶
div {
      width: 0;
      border: 10px solid;
      border-color: #f30 transparent transparent;
   }
复制代码

最高性能等腰三角图形绘制

CSS使用的一些小技巧/高级进阶
div {
            width: 0;
            border-width: 20px 10px;
            border-style: solid;
            border-color: #f30 transparent transparent;
        }
复制代码

又或者是这种三角形(对话框气泡下的三角形)

CSS使用的一些小技巧/高级进阶
div {
            width: 0;
            border-width: 20px 10px;
            border-style: solid;
            border-color: #f30 #f30 transparent transparent;
        }
复制代码

最高性能梯形图形绘制

CSS使用的一些小技巧/高级进阶
div {
            width: 10px;
            height: 10px;
            border: 10px solid;
            border-color: #f30 transparent transparent;
        }
复制代码

逼真 的 3D 效果

CSS使用的一些小技巧/高级进阶
div {
            width: 10px;
            height: 10px;
            border: 10px solid;
            border-color: #f30 #00f #396 #0f0;
        }
复制代码

被遗忘的 ex 单位

实现箭头居中文字垂直方向(不受字体、字号影响)

CSS使用的一些小技巧/高级进阶
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>

        .icon-arrow {
            display: inline-block;
            width: 20px;
            height: 1ex;
            background: url(arrow.svg) no-repeat center/20px 20px;
        }

    </style>
</head>
<body>
    <div style="font-size: 18px">
       箭头居中对齐
        <i class="icon-arrow"></i>
    </div>

</body>
</html>
复制代码

永远居中的 dialog (可兼容到IE7)

CSS使用的一些小技巧/高级进阶
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>

       .container {
           position: fixed;
           top:0;
           right: 0;
           left: 0;
           bottom: 0;
           background-color: rgba(0,0,0,.5);
           text-align: center;
           font-size: 0;
           white-space: nowrap;
           overflow: auto;

       }

       .container:after {
           content: '';
           display: inline-block;
           height: 100%;
           vertical-align: middle;
       }
       .content {
           width: 240px;
           height: 120px;
           padding: 20px;
       }

       .dialog {
           display: inline-block;
           vertical-align: middle;
           border-radius: 6px;
           background-color: #fff;
           font-size: 14px;
           white-space: normal;
       }

    </style>
</head>
<body>
    <div class="container">
        <div class="dialog">
            <div class="content">这dialog永远居中</div>
        </div>

    </div>

</body>
</html>
复制代码

去除页面默认滚动条(PC端有效)

/**good code**/
 html {
            overflow: hidden;
        }

/**bad code**/
 html, body {    
            overflow: hidden;
        }
复制代码

本次写作到此,欢迎:heart::star:️:clap:指出错误或者发布自己的见解探讨,共勉。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据之巅

数据之巅

涂子沛 / 中信出版社 / 2014-5-1 / 65.00元

《数据之巅:大数据革命,历史、现实与未来》从美国建国之基讲起,通过阐述初数时代、内战时代、镀金时代、进步时代、抽样时代、大数据时代的特征,系统梳理了美国数据文化的形成,阐述了其数据治国之道,论述了中国数据文化的薄弱之处,展望了未来数据世界的远景。 “尊重事实,用数据说话”,“推崇知识和理性,用数据创新”,作者不仅意在传承黄仁宇“数目字”管理的薪火,还试图把数据这个科技符号在中国转变为文化符号......一起来看看 《数据之巅》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具