はい、確かに。CSS 仕様には、複数のターゲットが含まれる場合があります。class と id の両方に同じルールを適用するには、次のようにします。
#charlieID, .alphaClass {
font-size: small;
color: lime;
}
ターゲットを区切るコンマに注意してください。
追加の回答:
一致させる ID が何十万もある場合、この標準的な方法 (追加のスクリプトやライブラリは必要なく、通常の CSS のみ) は実際には、考えられるどの代替方法よりも小さくなります。検討:
/* Standard CSS */
#charlieID1, #charlieID2, #charlieID3, #charlieID4, #charlieID5,
#charlieID6, #charlieID7, #charlieID8, #charlieID9, #charlieID10,
#charlieID11, #charlieID12, #charlieID13, #charlieID14, #charlieID15,
#charlieID16, #charlieID17, #charlieID18, #charlieID19, .alphaClass {
font-size: small;
color: lime;
}
それを次と比較します。
/* LESS CSS. Needs to be compiled with LESS */
.alphaClass {
font-size: small;
color: lime;
}
#charlieID1 {
.alphaClass
}
#charlieID2 {
.alphaClass
}
#charlieID3 {
.alphaClass
}
#charlieID4 {
.alphaClass
}
#charlieID5 {
.alphaClass
}
#charlieID6 {
.alphaClass
}
#charlieID7 {
.alphaClass
}
#charlieID8 {
.alphaClass
}
#charlieID9 {
.alphaClass
}
#charlieID10 {
.alphaClass
}
#charlieID11 {
.alphaClass
}
#charlieID12 {
.alphaClass
}
#charlieID13 {
.alphaClass
}
#charlieID14 {
.alphaClass
}
#charlieID15 {
.alphaClass
}
#charlieID16 {
.alphaClass
}
#charlieID17 {
.alphaClass
}
#charlieID18 {
.alphaClass
}
#charlieID19 {
.alphaClass
}
そして、それはたった19のIDです。
ただし、より良い回避策があります。実際に何十万もの ID がある場合、ID をターゲットにすることはおそらく間違っています。代わりに、ドキュメントの構造を実際に見て、ターゲットにしたいものが他の方法でターゲットにできるかどうかを確認する必要があります。
代替案の 1 つは、モノの親に基づいてターゲットを作成することです。たとえば、次のような構造があるとします。
<div class='foo'>
<span id='charlieID'></span>
</div>
次に、代わりに次のようにターゲットにできます。
div.foo span, .alphaClass {
font-size: small;
color: lime;
}
ターゲットにできる一般的な構造を創造的に見つけてください。子セレクターや兄弟セレクターを使用するなど、使用できる他のトリックがあります。少なくとも 1 つの高度な CSS チュートリアルを読むことを強くお勧めします。ただし、一部の古いブラウザーでは、より有用なルールの一部がサポートされていないことに注意してください。それでも、あなたが CSS3 に言及しているので、とにかく新しいブラウザーをターゲットにしている可能性があります。
他のすべてが失敗した場合、手で入力する代わりに CSS ファイルを生成できないということは何もありません。
#! /usr/bin/env tclsh
# Sample script to print rule with thousands of target.
# (note: I have no idea what thousands of targets do to various browsers)
set targets {}
foreach {name idx} {"#charlie" 1000 ".alphaClass" "" "#jane" 500} {
if {$idx == ""} {
lappend targets $name
} else {
for {set i 0} {$i < $idx} {incr i} {
lappend targets "$name$i"
}
}
}
puts [join $targets ","]
puts "{font-size:small; color:lime;}"
# should print a rule with the following targets:
# #charlie0..#charlie999, .alphaClass and #jane0..#jane499