2013-04-01 71 views
13

私はCSSで次のことを達成したいと思います。 IE8で動作する方法でどうすればいいですか+cssの文字列連結

url('../img/icons/' + attr('type') + '_10.png') 
+0

を。ごめんなさい。 – zzzzBov

+0

@zzzzBovどのようにすればいいですか? – aWebDeveloper

+0

の後に[class^= "connection - "] ::あなたは質問の形でそれを表現できますか?あなたが私にここで何を求めているのか分かりません。 – zzzzBov

答えて

1

あなたが示唆している方法で、動的な文字列の補間を行うことはできませんが、[type]属性の可能な値の数が限られている場合は、それぞれのスタイル作成することができます。

.your .selector[type="foo"] { 
    background-image: url('../img/icons/foo_10.png'); 
} 
.your .selector[type="bar"] { 
    background-image: url('../img/icons/bar_10.png'); 
} 
.your .selector[type="baz"] { 
    background-image: url('../img/icons/baz_10.png'); 
} 

タイプが不合理な場合は、おそらくここに挙げたよりも優れた解決策を考え出す必要があります。

14

私はできないと思います。 contentプロパティでは、スペースで区切るだけで「連結」することができますが、他の場所ではそのような機能はないと思います。それは残念です。

type属性が使用されている場合は、style属性でこのスタイルを指定することをお勧めします。

+2

私はこれが仕様に入っていると信じていますが、まだどのブラウザーでもサポートされていません。 https://developer.mozilla.org/en/docs/CSS/attr#Browser_Compatibility –

+0

@FabrícioMatté:残念ながら、これはurl()では問題であり、ブラウザのサポートに関係なくattr()では問題ではありません。彼らがre-spec url()をしない限り。私の答えはこちらをご覧ください:http://stackoverflow.com/questions/42932294/css-attr-concatenation-with-url-path/42932766#42932766 – BoltClock

5

CSS言語は構造を制御していないか、そのウィッヒようなものは、あなたがdinamically CSSコードを生成することができますので、いいえ、あなたはプレーンなCSSでこれを行うことはできません。

代わりに、JavaScriptコードまたはPHPでコード化されたCSS変数に基づいたソリューションを使用することができます。

-2

だけでこれを使用する:あなたがすることはできません

url('../img/icons/' attr('type') '_10.png') 
+0

**レビューキューから**:もう少し追加してください答えの前後の文脈コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT