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

时间:2012-12-20 21:27:32

标签: css

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

我有一种方法可以通过CMS应用我自己的样式以避免完整的构建和部署,但是我必须覆盖!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惩罚,但还有其他后果我不知道吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

这个CSS没有错:

p.snaps a.snaps-link{color: orange; text-decoration: underline; font-weight: normal;}

你在那里使用的是一个名为组合器,它完全合法。 Read more about combinators here.

display: none;的方法是一个很好的解决方案。这样做不会产生任何后果,会以任何重大的负面影响你。如果您可以通过CMS注入JavaScript,则可以use it to remove the element entirely