为什么标准的“样板”模板在CSS3中包含如此多的声明?

时间:2012-06-03 17:34:21

标签: html css html5 css3 html5boilerplate

这个问题面向CSS3,我一直在寻找一些样板模板和指南,其中大多数都会在进入你想要编辑的内容之前声明很多属性。

  • 为什么会这样?声明所有可用属性是否有效 浏览器加载速度还是什么?

  • 有什么好处?为什么不“按原样”使用CSS3(比如只是声明HTML部分中使用的内容)?

  • 如果基础属性在更多版本中发生变化,则不会 这意味着你必须不断检查弃用 属性并且每隔一段时间保持声明和更改属性?

2 个答案:

答案 0 :(得分:5)

HTML5Boilerplate包含normalize.css的版本。它不是将所有内容重置为0(即边距,填充等),而是具有最小的更改集,以确保所有浏览器中的内容都具有相同的设置。用他们自己的话说:

  

“Normalize.css是一个可自定义的CSS文件,可以使浏览器呈现   所有元素更加一致,符合现代标准。我们   研究了默认浏览器样式之间的差异   只精确定位需要规范化的样式。“

此处使用的样式示例如下:

/*
 * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
 * 2. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
 */

html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

这修复了旧版IE以及iOS上的一些奇怪现象。这是你可能遇到的问题,读取负载,找到解决方案并最终自己添加。通过使用这组默认值,您可以避免很多怪异。

除了错误之外,它还包含您可能想要的东西:

nav ul,
nav ol {
    list-style: none;
    list-style-image: none;
    margin: 0;
    padding: 0;
}

在导航中使用ul是一种常见模式,您通常不需要子弹点。这为你排序。

总而言之,我建议您使用自己的代码自定义版本 - 它会为您节省很多烦恼!

答案 1 :(得分:0)

此外,如果你想添加CSS3功能,你可以使用html5shivhtml5shim将其添加到带有javascript的ie5(不是说这不是它的缺点)。

还可以检查缩写CSS的定义。层叠样式表。您可以按照退回的顺序声明样式。一世。即

body {
    style-1: new browsers (this renders yay!)
    style-2: semi-new browsers (don't understand style-1 I will ignore ahh style2)
    style-3: ie5(me want to crash soon or BOD you. but me not get either 1 or 2 they smart but i think i can work         on style 3)