【问题标题】:Order of CSS properties [closed]CSS属性的顺序[关闭]
【发布时间】:2013-12-25 14:10:49
【问题描述】:

我认为始终以相同的顺序编写 CSS 规则属性会很方便。这个排序有什么约定吗?

我注意到Firebug 按字母顺序显示 CSS 属性。为什么 ? HTTP 不保留 CSS 规则的原始顺序吗?

【问题讨论】:

    标签: css web-applications


    【解决方案1】:

    否定的。将相似属性放在一起是一个很好的做法,但过去没有像选择器那样的“操作顺序”。

    但是,类型的最后一条规则将被前一条规则取代。

    例子:

    background-color: #000;
    background: #FFF url(image.jpg) 0 0 no-repeat;
    

    颜色(如果图像无法加载)现在将是white,因为它是最后出现的。

    示例 #2:

    border: none;
    border-right: 1px solid #000;
    

    将导致所有边框为空,但随后通过覆盖第一个声明为右边缘提供1px solid #000 的边框。

    编辑:当在整个文档中为不同的选择器分配属性时,也应用了这种最坏的逻辑。

    这个:

    body * {
        margin: 0;
    }
    ...further down
    #main {
        margin-top: 2em;
    }
    

    允许#main 给自己一个margin,因为它紧随其后。当然,即使#main 被赋予之前 body *,选择器特异性也会允许这种情况发生,但你明白了。您可以了解为什么这是真的right here.

    【讨论】:

    • 你能举一个“like-properties”的例子吗?
    • @Michael:例如,Like 属性可能包括所有background- 规则。 background-attachment, background-image - 你会把这些分组。另一个示例可能是字体:font-familycolorfont-size
    • 例如border-radiusborder.
    • 其实border-radius和border是相互独立的。你可以有一个 0 的边界,并且仍然保持一个奇怪的半径:)
    • 谢谢。顺便说一句,您是否知道 CSS 的任何“美化器”,可以将类似属性组合在一起并使 CSS 属性在所有 CSS 文件中以相同的顺序排列?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多