12个css小知识

1.CSS的color属性并不是只能用于文本显示
对于CSS的color属性,相信全部Web开发人员都使用过。若是你并非一个特别有经验的程序员,我相信你未必知道color属性除了能用在文本显示,还能够用做其它地方。它能够把页面上的全部的东西都变颜色。好比:
没法显示的图片的alt文字
list元素的边框
无序list元素前面的小点
有序list元素前面的数字
还有hr元素css

2.CSS里的visibility属性有个collapse属性值:collapse
对于CSS里的visibility属性,相信你用过不下几百次。大多时候,你会把它的值设置成visible(这是全部页面元素的缺省值),或者是hidden。后者至关于display: none,但仍然占用页面空间。
其实visibility能够有第三种值,就是collapse。当一个元素的visibility属性被设置成collapse值后,对于通常的元素,它的表现跟hidden是同样的。但例外的是,若是这个元素是table相关的元素,例如table行,table group,table列,table column group,它的表现却跟display: none同样,也就是说,它们占用的空间也会释放。
但遗憾的是,各类浏览器对collapse值的处理方式不同。程序员

3.CSS的background简写方式里新增了新的属性值
在CSS2.1里,background属性的简写方式包含五种属性值 – background-color, background-image,background-repeat, background-attachment, and background-position。从CSS3开始,又增长了3个新的属性值,加起来一共8个。下面是按顺序分别表明的意思:
background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [ background-size] [background-origin] [background-clip];
注意里面的反斜杠,它更font和border-radius里简写方式使用的反斜杠的用法类似。反斜杠能够在支持这种写法的浏览器里在position后面接着写background-size。
除此以外,你开能够增长另外两个描述它的属性值: background-origin 和 background-clip.
它的语法用起来像下面这个样子:
.example {
background: aquamarine url(img.png)
no-repeat
scroll
center center / 50%
content-box content-box;
}
关于浏览器的支持状况,大概全部的现代浏览器都支持这些新属性值,但对于一些很是老旧的浏览器(IE6/7/8),最好在代码里提供一些万一不支持的补救机制。浏览器

4.CSS的clip属性只在绝对定位的元素上才会生效
以前说到了background-clip,你可能会想到clip属性。它的用法是下面这个样子:
.example { clip: rect(110px, 160px, 170px, 60px);}
它的做用是按指定的尺寸、规定的大小裁剪元素。不少简单,但惟一你须要注意的事情是,clip只会在绝对定位的元素上生效。全部,你必须这样作:
.example { position: absolute; clip: rect(110px, 160px, 170px, 60px);}
可是,你也能够将元素的position设置成position: fixed,由于,根据css官方规范,fixed的元素也属于‘absolutely positioned’元素。ide

5.元素竖向的百分比设定是相对于容器的宽度,而不是高度
这是一个很让人困惑的CSS特征,我以前也谈到过它。咱们你们都知道,当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,可是,对于一些表示竖向距离的属性,例如padding-top,padding-bottom,margin-top,margin-bottom等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度。post

6.border属性比你想象的要复杂
咱们不少人都用过这样的写法:
.example { border: solid 1px black;}
这里的border属性的用法其实是一种简写的形式,它分别设置了border-style, border-width, 和border-color — 用一句代码表示它们三个。
但不要忘记,border-style, border-width, 和border-color也都有本身的简写形式。因此,border-width能够写成这样:
.example { border-width: 2px 5px 1px 0;}
这样,四个边的宽度被一次设定。border-color 和 border-style 属性也能够这样作。
7.text-decoration属性变成了属性简写
我相信有些小知识会让你大吃一惊。
跟着最新的CSS规范,text-decoration如今的写法是这样的:
a { text-decoration: overline aqua wavy;}
text-decoration属性如今须要用三种属性值来表示了:text-decoration-line,text-decoration-color, and text-decoration-style.
但不幸的是,目前只有火狐浏览器实现了对这些新属性的支持。
7.text-decoration属性变成了属性简写
我相信有些小知识会让你大吃一惊。
跟着最新的CSS规范,text-decoration如今的写法是这样的:
a { text-decoration: overline aqua wavy;}
text-decoration属性如今须要用三种属性值来表示了:text-decoration-line,text-decoration-color, and text-decoration-style.
但不幸的是,目前只有火狐浏览器实现了对这些新属性的支持。
8.border-width属性可使用预约义常量值
也许对与你来讲这并非一个什么新鲜信息。除了可使用标准宽度值(例如5px或1em)外,border-width属性能够接受预约义的常量值:medium, thin, 和 thick
事实上,若是你不给border-width属性赋值,那它的缺省值是“medium”。
9.为何没有人使用border-image
如今几乎全部的现代浏览器都支持这个属性——除了IE10及如下IE版本。
看起来这是一个很是漂亮的CSS功能,它可让你用图片修饰元素的边框。
10.你知道table里的empty-cells属性吗?
css里的empty-cells属性是全部浏览器都支持的,甚至包括IE8,它的用法是下面这个样子:
table { empty-cells: hide;}
估计你从语义上已经猜出它的做用了。它是为HTML table服务的。它会告诉浏览器,当一个table单元格里没有东西时,就隐藏它。
11.font-style的oblique属性值
对与css的font-style属性,我估计你们每次见到的都是使用“normal”或 “italic”两个属性值。但事实上,你还可让它赋值为“oblique”。
12.word-wrap和overflow-wrap是等效的 word-wrap并非一个很经常使用的CSS属性,但在特定的环境中确实很是有用的。咱们常用的一个例子是让页面中显示一个长url时换行,而不是撑破页面。
相关文章
相关标签/搜索