消除浏览器样式冲突
Eliminating Browser Style Interference
当你在网页浏览器上观看一个非CSS型的网页时,HTML标签已经有了一些最少限度的格式:标题是粗体的、<h1>标签比其他文本更大、链接有下画线并且为蓝色,等等。在有些情况下,不同的网页浏览器应给这些元素用稍微不同的格式。
你可能经历过一些挫败——“它在Internet Explorer上和在Firefox以及Safari上看起来几乎一样”——的时刻。
高级用户的诊所
Web Developer's Toolbar
|
|
|||||
![]() |
||||||
注意:Firefox实际上使用了一个CSS样式表来格式化HTML标签。要在Mac上观看,就要找到Firefox应用文件,直接点击它,然后选择“Show package contents。”然后导航到Contents→MacOS→res,并在文本编辑程序中打开html.css文件。在Windows中,你将在C:\Program Files\Mozilla Firefox\res\ html.css上找到这个文件。如你所见,它用了许多样式,使得规则的HTML看起来令人厌烦。
由于这些浏览器的差别,给常用标签的格式“归零”是个好主意,以便访问者可以看到你如此辛苦建立起来的漂亮样式(见图14-5)。你所要做的就是在去除讨厌格式的样式表开头处,建立一些基本的样式。
这是阻止浏览器干涉你设计可能要做的一些事情:
去除padding和margin。浏览器给大部分块级元素增加了上边距和底边距——例如显示在<p>标签之间常见的空格。这可能导致一些奇怪的显示问题,比如精确的边距量被不一致地应用给各个浏览器。一种更好的办法是从你用的块级标签中去除padding和margin,然后通过创建新样式,有目的地添加你要的量。
应用一致的字号。虽然一个<p>标签里面的文本以1em显示,但是网页浏览器应用了不同的字号给其他标签。你可以强制所有标签以1em开始,然后给不同的标签创建另外的带有指定字号的样式。这样,你更有机会在各浏览器上获得一致的字号。
从链接上去除下画线。如第9章介绍的,你可以用平淡无奇的旧文本链接创建令视觉兴奋的导航栏。事实上,如果你网站上的大部分链接看起来更像按钮,或者你使用其他格式来显示一个元素的可点击性(可能通过添加hover
效果),那么从消除下画线开始。你可以稍后选择性地在你需要它们的时候添加下画线。(请见第394页上的“使用派生选择器”。)
从链接图片上去除边框。Internet Explorer、Firefox和其他浏览器在链接里面的所有图片周围添加了一条彩色的边框。如果你和大多数人一样,会发现这条边框既不好看也没必要。去掉它并刷新。
为了把这些想法付诸行动,这里有一些你可以添加在样式表开头处的一些基本的样式:
body, h1, h2, h3, h4, h5, h6, p, ol, ul, form, blockquote {
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, pre, code {
font-size: 1em;
}
a {
text-decoration: none;
}
a img {
border: none;
}
这里的前两个样式是群选择器,应用相同的格式给所列的每一个标签。在样式表的开头处添加这些样式,然后在样式表更下方处,根据情况覆盖它们。在给<h1>标签的margin和font-size归零之后,你可能要给这个<h1>标签一个指定的top margin值和font size。只要添加另一个样式,像这样:
h1 {
margin-top: 5px;
font-size: 2.5em;
}
由于层叠,只要这个h1样式在样式表中出现在群选择器之后,消除margin并改变font size,那么这个新值就会优先。
注意:网站导师Tantek Celic以介绍取消HTML标准的网页浏览器格式的非常有用的方法而著称。你可以在http://tantek.com/log/2004/undohtml.css看到他一组基础的取消(undo)样式。








