zoukankan      html  css  js  c++  java
  • 几个CSS的黑科技

    这里的黑科技其实就是一些CSS中不怎么为人所知但在解决某些问题的时候很溜的属性。

     border-radius

      很多开发者估计都没有正确认识这个border-radius,因为基本上很多人都是这么用的:

    .box {
      border-radius: 4px;
    }
    

      稍微高端一点的是这样的:

    .box {
      border-radius: 4px 6px 6px 4px;
    }
    

      然而,终极黑科技是这样用的:

    .box {
      border-radius: 5px 5px 3px 2px / 5px 5px 1px 3px;
    }
    

      对,它可以赋8个值,没见过?不着急,具体的解释是这样的:

    斜线前面的影响的是水平方向,斜线后面影响的是垂直方向,各个数字就分别代表四个不一样的方向。

     outline-offset

      相信很多开发者在写CSS的时候对下面的语句会很熟悉:

    input {
        outline : none;
    }
    
    input:focus {
        outline : none;
    }
    

      这就是将input输入框去掉默认的蓝线框的方法。其实,这里还有说一个就是,CSS中还有一个outline-offset属性,在这个属性中,你可以设置默认线框的距离;像这样

    input {
        outline-offset: 4px ;
    }
    

      调节该属性值的大小你就可以看到outline的距离变化了。

     类的声明

      对于下面的类的声明,可能大家都很熟悉:

    .col-8 {
    
    }

      这当然没什么,但是如果你这样写呢:

    .♥ {
      color: hotpink;
    }
    
    .★ {
      color: yellow;
    }
    

      嗯,看起来怎么样,你是可以这么用的:

    <div class="♥ ★"></div>
    

      只要是Unicode的,你都可以这么来声明你的类。

      选中连续的几个元素

    ol li:nth-child(n+7):nth-child(-n+14) {
      background: lightpink;
    }
    /** Or Safari Way **/
    ol li:nth-child(-n+14):nth-child(n+7) {
      background: lightpink;
    }
    

      上面的这种写法其实就可以达到选中ol下面的第七到第十四个li元素。

     伪类设置单标签

      html中有几个常见的单标签:<br> ,<hr>等。具体可以查看这里:

      http://www.w3.org/TR/html5/syntax.html#void-elements

      下面的示例是实现对<hr>的修饰。

    hr:before {
        content: "♪♪";
    }
    
    hr:after {
        content: " This is an <hr> element";
    }
    

      没错,关键就是使用:before和:after这两个伪类。在这里,顺便说一点就是,其实你还可以用这两个伪类来修饰<meta> 和 <link>,不过这个前提是,你把这两个的display属性设置为:

    display: block
    

     属性区分大小写

      假如我们在写html的时候有类似下面的代码:

    <div class="box"></div>
    <input type="email">
    

      然后我们用属性选择器进行CSS修饰:

    div[class="box"] {
      color: blue;
    }
    
    input[type="email"] {
      border: solid 1px red;
    }
    

      这样的声明方式毫无疑问地就会生效。然而,如果我们声明成下面这个样子,结果会是怎么样的呢:

    div[class="BOX"] {
      color: blue;
    }
    
    input[type="EMAIL"] {
      border: solid 1px red;
    }

      这变成了大写之后,第一个class="BOX"并不会影响到<div class="box"></div>,而第二个type="EMAIL"还是会正常修饰<input type="email">。所以在使用属性选择器的时候,注意大小写问题。

      目前就只觉得这些CSS黑科技需要提醒自己一下,有可以补充。

  • 相关阅读:
    [BOST] 博赞有机的学习技巧
    [BOST] 你的大脑比你想象的更优秀
    Markdown学习笔记
    nodejs原生态模块,写个聊天室
    【2】自定义WindowsForm分页控件使用【共两篇】
    【1】自定义WindowsForm分页控件使用【共两篇】
    《Log4net写出适合自己的日志类》第三篇【终】【怎样让它适合你自己需求】
    《Log4net写出适合自己的日志类》第二篇【没有理论的实践是盲目】
    《Log4net写出适合自己的日志类》第一篇【上来就是干,先实践后理论】
    记忆留住深刻过往,博客写出平淡事迹【博客首篇】
  • 原文地址:https://www.cnblogs.com/echohao/p/4968125.html
Copyright © 2011-2022 走看看