CSS 声明中的属性顺序是否会影响 HTML 的呈现?
5 回答
这确实是一个比我最初想象的更棘手的问题。我的第一反应是:
在 CSS规则(也称为“规则集”)中,声明的顺序(表单属性:值)是无关紧要的。所以foo { color: red; background: white; }
等价于foo { background: white; color: red; }
。规范中没有关于此的单独声明(我想);这是因为没有任何声明可以使该命令变得重要。
再想一想,我们也可以有
* { font: 100% Calibri; font-weight: bold; }
如果切换顺序会发生什么?在浏览器中,它确实有效果。我不确定这应该如何根据 CSS 规范来解释,但浏览器显然并且自然地按顺序处理声明。所以规则使文本加粗,但如果你改变顺序,
* { font-weight: bold; font: 100% Calibri; }
然后事情发生了变化。font
速记设置font-weight
为其初始值,因此normal
文本不是粗体。
第三个想法,有许多基于顺序的方法和技巧。所以是的,声明的顺序很重要。
规则顺序的影响是一个完全不同的问题。
显然顺序对结果没有任何直接影响。这里已经提到了这个主题:http: //css-tricks.com/new-poll-how-order-css-properties/
根据这里它确实有影响:http: //css-tricks.com/ordering-css3-properties/
这是另一个趋势: http: //perishablepress.com/obsessive-css-code-formatting-patterns-and-trends/
最终判决:安排你判断最好的方式,它会起作用。
主要是 5 种 CSS 属性顺序:
- 随机
- 分组依据
- 按字母顺序
- 按线长
- CSS 属性的重要性
1.随机
.module {
border: 1px solid #ccc;
width: 25%;
padding: 20px;
position: relative;
min-height: 100px;
z-index: 1;
border-radius: 20px;
}
2. 分组依据
.module {
width: 25%;
min-height: 100px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 20px;
position: relative;
z-index: 1;
}
3. 按字母顺序
.module {
border-radius: 20px;
border: 1px solid #ccc;
min-height: 100px;
padding: 20px;
position: relative;
width: 25%;
z-index: 1;
}
4.按线长
.module {
border: 1px solid #ccc;
border-radius: 20px;
position: relative;
min-height: 100px;
padding: 20px;
z-index: 1;
width: 25%;
}
这是参考网址:https ://css-tricks.com/new-poll-how-order-css-properties/
5. 按重要性排序 CSS 属性
但按重要性排序 CSS 属性的最佳方法
- 布局属性(位置、浮动、清除、显示)
- 盒子模型属性(宽度、高度、边距、填充)
- 视觉属性(颜色、背景、边框、框阴影)
- 排版属性(字体大小、字体系列、文本对齐、文本转换)
- 其他属性(光标、溢出、z-index)
例子:
.button {
display:inline-block;
margin:1em 0;
padding:1em 4em;
color:#fff;
background:#196e76;
border:0.25em solid #196e76;
box-shadow:inset 0.25em 0.25em 0.5em rgba(0,0,0,0.3),
0.5em 0.5em 0 #444;
font-size:3em;
font-family:Avenir, Helvetica, Arial, sans-serif;
text-align:center;
text-transform:uppercase;
text-decoration:none;
}
通常不需要或规则来对 CSS 声明中的属性进行排序。我写的顺序就像我对设计和浏览器响应的要求一样,但是在萤火虫工具中它排列了 sin字母顺序。
最好的订购方法是
1. box model = width ->height->float
2. font related = font-size -> text-decoration, font-family
3. background images = width, height, border, image
然后,根据我的经验,只有浏览器才能更快地为每个元素分配空间。
有些人订购如下类型:
随机的
按字母顺序
按类型分组
按属性长度
有一些指导方针。但是,归根结底,它归结为浏览器实现。尽量不要依赖某个命令总是有效的,因为它不会。在声明中,语句倾向于覆盖先前的语句。