代码之家  ›  专栏  ›  技术社区  ›  Jonathan Day

在CSS中,在多个位置或多个特定的选择器中,哪一个是更好的实践?

  •  4
  • Jonathan Day  · 技术社区  · 15 年前

    哪个是更好的练习?

    .listing { some attributes:some values;}
    

    应用于多个位置(例如搜索结果、类别列表)

    .search-list,
    .category-list,
    .other-list { some attributes:some values;}
    

    在我看来,第二种选择提供了 在不更改(x)HTML的情况下,将来对样式进行更改时具有更大的灵活性,并且由于知道应用规则的确切位置,更容易维护,但需要更多的带宽来下载和解析浏览器处理能力。

    对你的想法感兴趣。

    谢谢, 乔纳森

    2 回复  |  直到 15 年前
        1
  •  2
  •   Rob    15 年前

    使用使用子选择器实现的上下文(根据下面的注释进行修改)。这就清楚了哪些属性是常规列表的一部分,哪些属性是特定于搜索列表的。

    .list li { default attributes: default values }
    #search-list li { attributes specific to search listings: some values; }
    
    with markup
    
    <ul id="search-list" class="list">
      <li>...
    

    我最近一直在和一些顶级设计师合作。他们消极地谈论具有“div itis”或“class itis”的标记(他们将跳过上面的列表类并设置ul样式)。为了应对这种情况,他们使用ID和本机标记,比如 , H5 等。因为清除默认值是PITA,所以它们只定义了一些默认值,其余的则使用上下文选择器。他们在需要时使用多个类名。他们也倾向于使用指南针或更少,因为这些环境允许上下文选择器和混合输入。

        2
  •  1
  •   msw    15 年前

    你可以添加

    .elephant-list,
    .aardvark-list,
    .platypus-list,
    

    在期待未来扩张的同时,也会有一个点,当你从灵活到荒谬的时候。没有理由为没有理由期望会有所不同的类编写特殊名称。

    如果你发现他们将来需要不同,就加上他们。从美学的角度来看 .listing 分区共享相同的样式是一件好事。