几个CSS的黑科技
2015-08-06 00:00
661 查看
这里的黑科技其实就是一些CSS中不怎么为人所知但在解决某些问题的时候很溜的属性。
很多开发者估计都没有正确认识这个border-radius,因为基本上很多人都是这么用的:
稍微高端一点的是这样的:
然而,终极黑科技是这样用的:
对,它可以赋8个值,没见过?不着急,具体的解释是这样的:
相信很多开发者在写CSS的时候对下面的语句会很熟悉:
这就是将input输入框去掉默认的蓝线框的方法。其实,这里还有说一个就是,CSS中还有一个outline-offset属性,在这个属性中,你可以设置默认线框的距离;像这样
调节该属性值的大小你就可以看到outline的距离变化了。
对于下面的类的声明,可能大家都很熟悉:
这当然没什么,但是如果你这样写呢:
嗯,看起来怎么样,你是可以这么用的:
只要是Unicode的,你都可以这么来声明你的类。
选中连续的几个元素
上面的这种写法其实就可以达到选中ol下面的第七到第十四个li元素。
html中有几个常见的单标签:<br> ,<hr>等。具体可以查看这里:
http://www.w3.org/TR/html5/syntax.html#void-elements
下面的示例是实现对<hr>的修饰。
没错,关键就是使用:before和:after这两个伪类。在这里,顺便说一点就是,其实你还可以用这两个伪类来修饰<meta> 和 <link>,不过这个前提是,你把这两个的display属性设置为:
假如我们在写html的时候有类似下面的代码:
然后我们用属性选择器进行CSS修饰:
这样的声明方式毫无疑问地就会生效。然而,如果我们声明成下面这个样子,结果会是怎么样的呢:
这变成了大写之后,第一个class="BOX"并不会影响到<div class="box"></div>,而第二个type="EMAIL"还是会正常修饰<input type="email">。所以在使用属性选择器的时候,注意大小写问题。
目前就只觉得这些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黑科技需要提醒自己一下,有可以补充。
相关文章推荐
- 常用css
- css的选择器
- CSS3样式工具箱
- CSS3响应式布局
- alert提示框样式
- CSS重置样式
- CSS选择器的权重计算规则
- 用css改变默认的checkbox样式
- 在引入的css或者js文件后面加参数的作用
- 关于css position 的 static、relative、absolute、fixed、inherit
- CSS3响应式滑动菜单
- 高质量CSS
- 利用CSS3的transition属性实现滑动效果
- 根据数据显示行的样式
- CSS的font-size属性及其em值的使用
- @keyframes规则实现多重背景的CSS动画
- 三列等高 css实现
- ProgressDialog的样式
- 使用CSS实现文字的竖排的简单方法
- Emmet:HTML/CSS代码快速编写神器