这份文件举出使用 CSS 时经常会碰上的状况,并予以解答。本文编译自 Common CSS Questions (http://developer.mozilla.org/en/docs/Common_CSS_Questions)。
我的 CSS 合乎规格,但绘出的版面有误
如果想让大部分的浏览器都能正确绘制标准 HTML/CSS 页面,便须于 HTML 档案中放上完整的正确 DOCTYPE。
新近浏览器都有两种布局模式:
* Quirks 模式:也称为兼容模式,让旧网页能依照以前旧浏览器的方式显现。
* 标准模式:浏览器将依循 W3C 规范决定网页的显示方式。
以 Gecko 为核心的浏览器都有第三种近乎标准 (http://developer.mozilla.org/en/docs/Gecko%27s_%22Almost_Standards%22_Mode)模式,其中只有一些些不合规范的地方。
如果你宣告的 DTD 不合标准或过期了,那么浏览器就会进入 Quirks 模式。
以下是常用的 DTD 列表,可以让浏览器进入标准或近乎标准模式。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
id 与 class 之间的差别
HTML 元素都可有 id 及 class 属性。id 属性是让你为元素命名的,整个页面中的元素名称也不应有重复;class 属性则可将元素归为某特定类别,通常也会有很多元素属于同一种类别 (意即 class 属性值相同。) CSS 可以让你以 id 或 class 来决定某元素的样式。
如果你想指定某特定单一元素的样式,则应使用 id。
若有很多个元素皆有相同样式,则可使用 class。
这方面的信息亦可参考 CSS 选取符 (http://developer.mozilla.org/en/docs/CSS:Getting_Started:Selectors|)。
恢复某特性的默认值
CSS2 并不提供任何指定某特性默认值的方法,所以要恢复某特性默认值的唯一方法就是重新指定此值。此外你自己得知道默认值是什么,因为 CSS 也没有所谓 default 的关键词。
所以,以选取符撰写样式时须特别注意 (例如以标签名称 p 作为选取符),或许可以用更明确的选取符 (例如 ID 或 class)。以标签名称作选取符兹事体大,一旦使用便将影响整个网页,而且没有自动恢复默认值的方法。
此外,由于 CSS 具串联特性,指定选取符时通常越明确越好,以免把不相干的元素都牵扯进来。
相依样式
CSS 并不支持「以另一个样式规则为基准」的样式设定法。 (参考 Eric Meyer 所写、关于 CSS 工作小组的说明 (http://archivist.incutio.com/viewlist/css-discuss/2685)。) 不过,你可以为某单一元素套上多重样式,制作出类似效果。
