来自 前端知识 2019-12-07 15:32 的文章
当前位置: 金沙澳门官网网址 > 前端知识 > 正文

几个CSS的黑科技

类的声明

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

CSS

.col-8 { }

1
2
3
.col-8 {
 
}

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

CSS

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

1
2
3
4
5
6
7
.♥ {
  color: hotpink;
}
 
.★ {
  color: yellow;
}

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

CSS

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

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

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

选中连续的几个元素

CSS

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; }

1
2
3
4
5
6
7
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元素。

 类的声明

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

.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元素。

outline-offset

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

CSS

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

1
2
3
4
5
6
7
input {
    outline : none;
}
 
input:focus {
    outline : none;
}

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

CSS

input { outline-offset: 4px ; }

1
2
3
input {
    outline-offset: 4px ;
}

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

 outline-offset

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

input {
    outline : none;
}

input:focus {
    outline : none;
}

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

input {
    outline-offset: 4px ;
}

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

几个CSS的黑科技

2015/08/03 · CSS · 2 评论 · 黑科技

原文出处: JellyBool(@JellyBool)   

昨天由于某些原因没有写博客,之前说好的每天一篇的,这篇是为了补昨天的了。然后我就要当一次标题党了。这里的黑科技其实就是一些CSS中不怎么为人所知但在解决某些问题的时候很溜的属性。

 属性区分大小写

  假如我们在写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黑科技需要提醒自己一下,有可以补充。

本文由金沙澳门官网网址发布于前端知识,转载请注明出处:几个CSS的黑科技

关键词: