0

私は定期的に、スタイル シートを完全にビルドしてデプロイして更新する必要があるサイトで作業しています。これは非常に面倒で、リンク スタイルなどの基本的なものを更新する価値はありません。

完全なビルドとデプロイを回避するために、CMS を介して独自のスタイルを適用する方法がありますが、これらのシートのいずれかでスタイルが既に定義されている場合は !important でオーバーライドするか、より具体的なセレクターを使用してオーバーライドする必要があります。

!important を使用することでマイナスの結果が生じるとは思いませんが、維持するのが難しいため、ベスト プラクティスではないことはわかっています。しかし、ここに私がよくわからない例があります。このビットの HTML があるとします。

            <p class="snaps">
                This is a bit of text followed <a class="snaps-link">by a link</a>
            </p>

そして、1 つのスタイル シートには次のものがあります。

            .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;}

これを行うことに問題はありますか?会社でコーディングについて何も知らないのは私だけなので、アイデアをぶつけてくれる人がいません。それで私はあなたのところに来ました...誰かがどう思うか興味があります。

私が遭遇するもう 1 つの問題は、要素を削除するように頻繁に求められることです。多くの場合、これを行う最も簡単な方法は、display: none を使用して非表示にすることです。テキストを非表示にすると、SEO のペナルティが発生する可能性があると思いますが、私が気付いていない他の影響はありますか?

ありがとうございました。

4

1 に答える 1

0

この CSS に問題はありません。

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

そこで使用しているものはコンビネータと呼ばれ、完全に合法です。コンビネータの詳細については、こちらをご覧ください。

あなたの方法display: none;は素晴らしい解決策です。それを行うことで、あなたに大きなマイナスの影響を与えるような結果があってはなりません。CMS を介して JavaScript を挿入できる場合は、それを使用して要素を完全に削除できます。

于 2012-12-20T23:59:22.463 に答える