W3C CSS文档 | 4.Syntax and basic data types语法和基本数据结构,自己的学习笔记&翻译,欢迎指正
date
Mar 29, 2021
slug
css-w3c-syntax-and-basic-data-types
status
Published
tags
CSS
type
Post
summary
Syntax and basic data types语法和基本数据结构
tokenization (看不懂)
keywords
- keywords遵从标识符的形式,关键字不能要被“”或者‘’包裹起来,被包裹起来的是字符串而不是关键字了。
- 给特定vendor的拓展
- 必须以下划线或者是破折号开头,比如一个叫做xyz的组织,改变边框,他们可以说 -xyz-border-east-color.
- Authors should avoid vendor-specific extensions
- Informative Historical Notes

- Characters and case
- 在css中不分大小写,在html里也是,但是在xml里不是
- 某些特定的比如id选择器和属性还有url这种不算
- 在css里面,标识符,包括标签名,属性和id在选择器里中包含破折号,和下划线,他们不能以其他的还是,也能够用转义字符
- backslash
- 在字符串里,反斜杠跟着换行符会被忽略
- 反斜杠取消了特殊字符的意思。
- statements
- at -rules 以@符号开始,后面立即跟上一个标识符
- at rlues 是在下一个块或者分号之前的所有内容组
- 浏览器忽略@important rules 在块里出现或者是在一些没有忽略的声明下出现除了@charset 和@important tule
- blocks
- 一个块以{开始以}结束,()或者【】必须成对出现
- “”和‘’必须成对出现,在他们两个里面的东西被解释为字符串。
- rules sets,declaration blocks and selectors
- 一个rule由一个选择器和声明块组成,
- 一个声明块里面必须包括0或者更多以分号分隔的声明组成。
- 如果选择器的任何一个地方有错误就会整个被忽略
- declarations and properties
- 一个声明要么是空的要么由性质名字组成,后面跟着:还跟着属性值。
- 属性名是一个标识符。括号("()")、方括号("[]")、大括号("(}")、单引号()和双引号(")必须成对出现,非字符串中的分号必须进行转义。括号、方括号和大括号可以嵌套。在引号内,字符被解析为字符串
- 值的语法是对每个属性单独指定的,值由 identifiers, strings, numbers, lengths, percentages, URIs, colors, etc. 组成,每个属性的值都有语法和语义上的限制
- comments
- 以/*开始以 */结束,不能嵌套,不会被渲染,
- rules for handling parsing errors
- 浏览器必须忽略位置的属性
- 忽略不合法的属性
- 根据格式配对的符号忽略畸形的声明和语句
- 忽略无效的at rules,未知的关键字
- ……
values
integers and real numbers (指的是integer和number)
- 应该指得就是实数和整数。
- 他俩被指定是小数的用法,integer由一个或者多个的十进制0到9来组成,number也可以被看作是整数,但是他可以指0或者更多带小数点的数,他俩前面都可以和+,-之类的运算符结合,-0等价于0,不是负数
- 许多的属性允许integers或者real numbers做属性值,但是他们都有一些范围,通常都不是负数
lengths
- 长度指的是测量的尺寸
- length是number形式的,但是带货不带小数点,后面跟着一个单位,px,em或者别的。在长度为0后,单位是可选的。
- 一些属性允许负值,但是变成负值以后可能会很复杂,支持不了的话会转换成近似值。
- 如果负值被设置在了不支持负值的地方,这个声明会被忽略。
- 在支持不了精确值的情况下,浏览器必须取他的近似值
- 有两种值的单位,相对值和绝对值
- 相对单位:是指定了一个关于另一个属性的长度,使用这种单位能更好适应不同的环境,相关的单位有em,和ex,px。
- “em”单元等于使用它的元素的“font-size”属性的计算值。(font-size是14px那么1em是14px)当'em'出现在'font-size属性本身的值中时会出现异常,在这种情况下,它指的是父元素的字体大小。它可用于垂直或水平测量。(在印刷文本中,这个单位有时也被称为四倍宽。)
- 'ex'就是字体中小写x的高度,通常指字体高度的一半。。当'ex'出现在"font-size "属性的值中时会出现异常,在这种情况下,它指的是父元素的'ex'。
- 在找不到x-height的情况下,用的是0.5em的值。
- 当为文档树的根指定时,em和ex指的是属性的初始值。
- 子元素不继承父元素指定的值,他继承计的是computed values。
- 绝对单位就是固定的,主要在输出环境一致的情况下使用,主要有下列东东
- in: inches — 1in is equal to 2.54cm.
- cm: centimeters
- mm: millimeters
- pt: points — the points used by CSS are equal to 1/72nd of 1in.
- pc: picas — 1pc is equal to 12pt.
- px: pixel units — 1px is equal to 0.75pt.
- 对于CSS设备,这些尺寸要么锚定(i)通过将物理单元与其物理测量相关联,要么锚定(i)通过将像素单元与参考像素相关联。对于印刷媒体和类似的高分辨率设备,锚定单元应该是标准物理单元之一(英寸、厘米等)。对于低分辨率的设备,以及具有不寻常的观看距离的设备,建议将锚定单元改为像素单元。对于这样的设备,建议像素单位是指最接近参考像素的设备像素的整体数量
percentages
- 百分比的形式是number+%
- 百分比永远是依赖于另一个值的,比如说长度,每一个允许百分比的属性,也定义了百分比指的什么,可能这个值是其他属性……
- 子元素通常继承的是计算值,而不是百分比,比如父元素是%100,计算后是1000像素,子元素是继承的也是1000像素值,假如子元素%120.那就是1200像素。
URLs and URIs
- uri包括URLs、URNs等等,在属性值中的写法是url(“”)
- url格式是url(可选的空白,可选的单引号,或者是双引号),两者必须保持一致。
- 注释不能出现在url里
- 不同浏览器处理无效url的时候有所不同
counters
color
strings
- 必须在双引号或者单引号里面,单引号里面不能出现双引号,双引号里也不能出现单引号,如果要出现必须用转义字符
unsupported values
会被忽略