我经常在一个网站上工作,那里的样式表需要完整构建和部署才能更新,这是一个很大的麻烦,不值得更新链接样式等基本内容。
我有一种方法可以通过 CMS 应用我自己的样式以避免完整的构建和部署,但是如果样式已经在其中一张表中定义,我必须使用 !important 覆盖,或者使用更具体的选择器.
我不认为使用 !important 会带来负面影响,但我知道这不是最佳实践,因为维护起来可能很棘手。但这是一个我不确定的例子。假设我有这段 HTML:
<p class="snaps">
This is a bit of text followed <a class="snaps-link">by a link</a>
</p>
在一个样式表中我们有:
.snaps {text-align: center; font-weight: bold;}
在另一个样式表中,a 元素定义如下:
a { outline: none; color: #6D6E71; text-decoration: none;}
我想在 CMS 中编写这样的样式(通过外部或内部样式表):
p.snaps a.snaps-link{color: orange; text-decoration: underline; font-weight: normal;}
这样做有问题吗?我是公司里唯一对编码一窍不通的人,所以我没有人可以向我征求意见。所以我来找你...有兴趣听听大家的想法。
我遇到的另一个问题是我经常被要求删除元素。通常,最简单的方法是使用 display: none 并隐藏它们。我认为如果我隐藏文本,可能会导致 SEO 惩罚,但还有其他我不知道的后果吗?
谢谢。
最佳答案
这个 CSS 没有问题:
p.snaps a.snaps-link{color: orange; text-decoration: underline; font-weight: normal;}
您在那里使用的是组合器,它是完全合法的。 Read more about combinators here.
您的 display: none;
方法是一个很好的解决方案。这样做不会对您产生任何重大负面影响。如果您可以通过 CMS 注入(inject) JavaScript,则可以 use it to remove the element entirely .
关于css - 为也在两个单独的样式表中定义的元素定义样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13980738/