4 语法和基本数据类型
4.3 值
4.3.2 长度
如果一个负长度值不被支持,它应该被转化为最相近(nearest)的支持值
如果不接受负长度值的属性被设置了一个负长度值,声明会被忽略
规则:
h1 { line-height: 1.2em }
表示"h1"元素的行高将比"h1"元素的字体大小大20%,
另一种情况:
h1 { font-size: 1.2em }
表示"h1"元素的font-size将比"h1"元素继承得到的字体大小大20%
em'和'ex'参考该属性的初始值
子元素不会继承为其父元素指定的相对值,而是继承计算值
css中
相对单位有:
- em:相关字体的'font-size'
- ex:相关字体的'x-height'
绝对单位包括物理单位(
- in(英寸),
- cm(厘米),
- mm(毫米),
- pt(磅points、1pt等于1in的1/72),
- pc(倍卡picas、1pc等于12pt)
)和px
### 4.3.4 URL与URI
一个URI值的格式是'url('后面跟着可选的空白字符和一个可选的单引号(')或者双引号(")字符,接着是URI本身,然后是一个可选的单引号(')或者双引号(")字符,后面是可选的空白字符,最后是')'。两个引号字符必须相同
没有引号的示例:
li { list-style: url(http://www.example.com/redball.png) disc }
出现在无引号的URI中的一些字符,例如圆括号,空白字符单引号(')和双引号("),必须用反斜线转义,确保结果URI值是一个URI token:'\(','\)'
ps:最后这个简直就是颜表情(●'◡'●)'\(','\)'
4.3.5 计数器
有一个样式表对每章(h1)的段落(p)进行计数。段落用罗马数字计数,后面跟着一个句号和一个空格:
p {counter-increment: par-num}
h1 {counter-reset: par-num}
p:before {content: counter(par-num, upper-roman) ". "}
5 选择器
5.1 模式匹配
E[foo~="warning"]
匹配所有"foo"属性值为一列空格分隔的值,且其中之一恰好是"warning"的E元素
5.10 伪元素与伪类
- 伪元素建立了对超出文档语言指定的文档树的抽象。(:before和:after伪元素提供了访问生成的内容的方法)
- 伪类根据元素的特征分类,而不是名字,属性或者内容。
伪元素
:before和:after、:first-line、:first-letter
伪类
:first-child、:link与:visited、 :hover与:active与:focus、 :lang
伪元素和伪类都不会出现在源文档或者文档树中
伪类允许出现在选择器的任何位置,而一个伪元素只能跟在选择器的最后一个简单选择器后面
伪元素名和伪类名都是大小写不敏感的
有些伪类是互斥的(:link与:visited),而其它的可以同时用在一个元素上。在规则冲突的情况下,常规层叠顺序决定结果
love hate
- a:link { color: red } /* unvisited links */
- a:visited { color: blue } /* visited links */
- a:hover { color: yellow } /* user hovers */
- a:active { color: lime } /* active links */
ps:我的理解是伪元素只与dom本身有关,伪类要与状态有关