cssで以下を実現したい。IE8+で動作するようにするにはどうすればよいですか
url('../img/icons/' + attr('type') + '_10.png')
私はあなたができるとは思わない。プロパティではcontent
スペースで区切るだけで「連結」できますが、他の場所ではそのような機能はないと思います。これは残念です。
style
属性が使用されるときはいつでも、属性でこのスタイルを指定するのがおそらく最善でしょうtype
。
いいえ、CSS 言語には動的に CSS コードを生成できる制御構造などがないため、プレーンな CSS でこれを行うことはできません。
代わりに、JavaScript ソリューションまたは PHP でコーディングされた CSS 変数に基づくソリューションを使用できます。
あなたが提案している方法で動的な文字列補間を行うことはできませんが、[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');
}
無理な数の型がある場合は、おそらく、ここにリストしたものよりも優れた解決策を考え出す必要があります。