【问题标题】:what is the purpose of having duplicate styles in css?在 CSS 中重复样式的目的是什么?
【发布时间】:2012-08-07 13:10:22
【问题描述】:

我看到一些人在 css 中写了类似的东西

.together
 {
display:inline;
display:inline-block;
 }

不仅限于显示样式,还以背景大小或背景图像为例

这样做的目的是什么?我的意思是第二个会覆盖第一个,那何必呢?

【问题讨论】:

    标签: html css web


    【解决方案1】:

    通常这种类型的行为表明浏览器为了兼容性而被破解。当浏览器检测到他们不知道的属性或值时,他们会忽略它。因此,如果您首先放置最广泛接受的属性,如果后面的属性都不兼容,浏览器将“退回”到该行为。

    【讨论】:

      【解决方案2】:

      有可能它是为了浏览器兼容性而编写的。他们可能希望元素的display 值为inline-block,但并非所有浏览器都支持所有元素。 Sitepoint 对display property 的兼容性有很好的参考。

      background 属性是所有与背景相关的属性的简写,因此通常在一个选择器上设置background,然后只在其他选择器上覆盖特定的背景属性。同样,您可能有多个浏览器兼容性的背景声明。

      【讨论】:

      • 如果浏览器同时接受这两个值?这意味着顺序也很重要?
      • 是的,订单很重要。最后应用的有效值是使用的值。
      • 是的,能同时理解两者的浏览器会使用最后一个。它的行为应该与两个属性声明在顺序选择器组中的行为相同。
      【解决方案3】:

      让我们举个例子。

      <html> 
      <head>      
      <style>
      .carlist
      {
          background-color: red;
          height: 30px;
          margin: 10px;
          margin: 20px;
      }
      </style>
      </head>
      
      <body  onload="loadCars()">
      
      Check div style.
      <div  id="mydiv" class="carlist"></div>
      
      </body>
      </html>
      

      在上面的示例中,我们声明了 2 个边距。我检查并发现浏览器(FF,IE,Chrome)接受了第二个声明。所以我认为如果我们将其用于浏览器兼容性,那么最终应该声明最特定于浏览器的样式。但是还有其他方法可以定义浏览器特定的样式。所以最好定义单个属性。

      【讨论】:

      • margin 属性相同;这个例子对浏览器兼容性没有帮助。
      • 我的重点不是浏览器兼容性。我的意图是告诉浏览器在存在重复声明时采用最新的声明。
      • 好的。在我第一次阅读这个答案时,我不清楚这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 2018-11-08
      • 2019-12-15
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      相关资源
      最近更新 更多