2016-12-20 8 views
0

私のCSSファイルのサイズを小さくしようとしているので、私はbackground-sizeのようないくつかのコマンドを分解したかったのです。のは、私はこのようなセクションをたくさん持っているとしましょう:使用中バックグラウンドイメージとバックグラウンドイメージの関連付けが解除されていませんか?

#interlude { 
    background: url(https://.../unsplash.jpg) no-repeat center fixed; 
    -webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
} 

<div id="interlude"></div> 

私は多くの異なった「間奏」のdivを持っている場合は、CSSのすべてのサイズに関連した行が重複しています。私はそのようなものを取得したいのですが:この場合

#interlude { 
    background: url(https://.../unsplash.jpg) no-repeat center fixed; 
} 
.bw-back-cover { 
    -webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
} 

は、 bw-back-coverクラスは一度だけ宣言されています。しかし、それは動作しないと私はそれが正常な動作であるかどうかを知らない。

どちらの例はCodepen

+0

複数の「interlude」のdivを持つことはできません。少なくとも同じidではない。 – Ionut

+0

@crazymatt、それはそこにあるcodepenからそうです。 – Ionut

+0

ええ、その後私はそれを見たので、私はコメントを削除しました。あなたのクラスに「重要」ルールを追加すると、素早く汚れた修正のためにIDクラスを上書きすることができますが、本当にそれを推奨しません。 – crazymatt

答えて

3

であなたのCodePenの場合は、速記backgroundプロパティはすべて背景関連のプロパティ、指定されていないものだけをオーバーライドしている - そうbackgroundが高い優先度を持っているのでbackground-sizeが無視されています(IDとクラスの間にある)。

これを解決するには2通りの方法があります。

1)簡単な方法は、それらがbackground速記によって上書きされないようにbackground-size財産の各行に!importantを追加することです。 (必要に応じて!importantオーバーライドすることは困難であるとして、しかし、私は、以下の第二の溶液をお勧めします。)コード:

.bw-back-cover { 
    -webkit-background-size: cover !important; 
    -moz-background-size: cover !important; 
    -o-background-size: cover !important; 
    background-size: cover !important; 
} 

2)クリーナー修正が速記を使用するのではなく、あなたの背景のプロパティを分割することですので、 background-sizeは上書きされません。コード:

#interlude { 
    background-image: url(https://.../unsplash.jpg); 
    background-repeat: no-repeat; 
    background-position: center; 
    background-attachment: fixed; 
} 
+1

私はあなたの説明が嫌いですが、これは正しい答えです。 **について重要な**「ハッキー」はありません**重要** このタイプのシナリオは、コールが存在する正確な理由です。彼はすべての彼の通常のコールを自分のIDに入れて、重要なタグを持つクラスをセットアップする必要があります。特定の作品を1つだけ変更するためにクラスが具体的に設定されている点は、!importantが必須である理由です。命名規則は、重要な呼び出しのセットアップのタイプとよく似ています。 – jjeining

+1

ありがとう@JonUleis、魅力的なように働いた。 Acceptance – paradise

+0

@jjeiningあなたが正しいです - このクラスが要素に 'background-size'を追加する目的のためだけに存在するなら、'!important'はここではハッキーではありません。私はそれを無効にするのが難しいので、それを使用するのをやめさせるのに慣れていますが、これは該当しない1つの状況です。 –

関連する問題