bsp;solid; Border-color: #000 ----->> border: 1px solid #000 Font-style: italic; Font-variant: small-caps; Font-weight: bold; Font-size: 1em; Line-height: 140%; Font-family: sans-serif; ----->> font: italic small-caps bold 1em 140% sans-serief Background-color: #f00; Background-image: url(background.gif); Background-repeat: no-repeat; Background-attachment: fixed; Background-position: 0 0; ----->>background: #f00 url(background.gif) no-repeat fixed 0 0 list-style-type: square; list-style-position: inside; List-style-image: url(image.gif) ----->> list-style: square inside url(image.gif)
Multiple Declarations
关于 CSS 的 class 声明和定义,也有简写的方式
清单 4. Class 的声明
- .Class1{position: absolute; left: 20px; top: 30px;}
- .Class2{position: absolute; left: 20px; top: 30px;}
- .Class3{position: absolute; left: 20px; top: 30px;}
- .Class4{position: absolute; left: 20px; top: 30px;}
- .Class5{position: absolute; left: 20px; top: 30px;}
- .Class6{position: absolute; left: 20px; top: 30px;}
-
- -------------------->>>>>>>
-
- .class1 .class2 .class3 .class4 .class5 .class6{
- Position: absolute; left: 20px; top: 20px;
- }
这种 Class 简写的方式可以极大的缩减我们的代码,提高浏览器分析识别的效率。
CSS 选择器 (CSS Selectors)
先来看看下面这个例子:
清单 5. Child selector
- #toc > li {font-weight: bold}
按照我们惯常的理解,编译器应该是先查找 id 为“toc”的节点,然后在他的所有直接子节点中查找类型(tag)为“li”的节点,将“font-weight”属性应用到这些节点上。
但是,不幸的是,恰恰相反,浏览器是“从右往左”来分析 class 的,它的匹配规则是从右向左来进行匹配的。这里,浏览器首先会查找页面上所有的“li”节点,然后再去做进一步的判断:如果它的父节点的 id 为“toc”,则匹配成功。
由此可知,CSS 选择器的匹配远比我们想象的要慢的多,CSS 的性能问题不容忽视。
清单 6. Descendant selector
- #toc li {font-weight: bold}
这个效率比之前的 |