你的位置:首页 > 网页设计

[网页设计]几个CSS的黑科技


原文出处: JellyBool(@JellyBool)   欢迎分享原创到伯乐头条

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

border-radius

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

 
 
 
 
 
CSS

 
1
2
3

.box {
  border-radius: 4px;
}



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

 
 
 
 
 
CSS

 
1
2
3

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



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

 
 
 
 
 
CSS

 
1
2
3

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



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

 
 
 
 
 
 
CSS

 
1

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



 

outline-offset

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

 
 
 
 
 
CSS

 
1
2
3
4
5
6
7

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



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

 
 
 
 
 
CSS

 
1
2
3

input {
    outline-offset: 4px ;
}



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

类的声明

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

 
 
 
 
 
CSS

 
1
2
3

.col-8 {
 
}



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

 
 
 
 
 
CSS

 
1
2
3
4
5
6
7

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



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

 
 
 
 
 
CSS

 
1

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



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

选中连续的几个元素

 
 
 
 
 
CSS

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

伪类设置单标签

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

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

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

 
 
 
 
 
CSS

 
1
2
3
4
5
6
7

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



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

 
 
 
 
 
CSS

 
1

display: block



 

 属性区分大小写

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

 
 
 
 
 
XHTML

 
1
2

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



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

 
 
 
 
 
XHTML

 
1
2
3
4
5
6
7

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



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

 
 
 
 
 
XHTML

 
1
2
3
4
5
6
7

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



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

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

Happy Hacking

 

  都说程序员的工资高,却很少了解他们加班的痛苦,你是不是每次也在心里想,按时间折算下来这个工资都给少了,于是会想在心里呐喊,要么涨工资,要么涨工资,要么涨工资,为什么??因为不让我们加班,这是不可能的!!!

  想要颠覆自己的工作模式吗?想要减少自己的加班时间吗?加入我们,和我们一起探寻属于我们程序员的自由模式吧!

  一款针对程序员的原生APP,以共享知识技能为目的,以悬赏方式在线互动交互平台。

  我们拥有高达近20人顶尖的技术团队,以及优秀的产品及运营团队。团队领军人物均在行业内有10年以上的丰富经验。

  现在我们正在招募原始的参与英雄,您将同我们一起改变程序员的工作方式,改变程序员的世界!同时也会有丰厚的报酬。作为我们的原始的参与者,您将同我们一起体验这款程序员神器,您可以提出专业的建议,我们会虚心采纳。每一个人都会是英雄,而您就会是我们需要的英雄!同时您也可以邀请您的朋友一起参与这场英雄的招募互动。

  我们不会耽误你太多时间,我们只需要您的专业看法,只要您从一个月内抽出1个小时,以后您每天都可以节省两个小时,一切都是为了我们自己!

  来?还是不来?

  接头人暗号:1955246408 (QQ)