css - 为也在两个单独的样式表中定义的元素定义样式

标签 css

我经常在一个网站上工作,那里的样式表需要完整构建和部署才能更新,这是一个很大的麻烦,不值得更新链接样式等基本内容。

我有一种方法可以通过 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/

相关文章:

javascript - 使元素上的悬停效果仅持​​续有限的时间

javascript - 更改任何已经具有特定背景颜色的 TD 的背景颜色

javascript - 如何通过调整图像大小和应用 attr 来减少页面加载时间?

css - !important 不要重写 materialize css

css - 如何在链接中选择强标签并在悬停时更改颜色

jQuery SlideToggle() 问题 - 更改显示 :block to display:inline-table?

javascript - jQuery 显示/隐藏方法不起作用

css - 替换css中的图片

javascript - 我可以在 .json 对象中传递要与 css 一起使用的类吗?

jquery - 在 jquery 中使用 css 将 div 拉伸(stretch)到浏览器高度