8

CSS ですべてのカスタム要素を選択する方法はありますか? デフォルトですべてのカスタム要素ブロック要素を作成し (ほとんどのブラウザはデフォルトでインライン化します)、必要に応じてこれをオーバーライドします。

私のルールは次のようになります。

*::custom {
    display: block;
}

標準ではすべてのカスタム要素にダッシュが含まれているため、それを利用してルールを作成できますが、正規表現を使用する必要があるため、多くの/ほとんどの最新のブラウザーでは遅くなります。組み込みのセレクターがあれば、これはおそらくより高速です。

4

5 に答える 5

4

いいえ、それを行うための疑似セレクターはありません。

ただし、最適とは言えない解決策の 1 つは、次のタイプの CSS を使用することです。

:not(html, head, body, h1, h2, h3, h4, h5, h6, div, ...) {
  /* Code here */
}

それはうまくいくでしょう!欠点として、新しい要素が追加された場合、その要素を not-selector に追加する必要があります。わーい。

^.^

于 2015-07-17T23:24:57.193 に答える
3

カスタム要素に inert カスタム属性を追加します。

<some-element cutom-elem /> <other-element custom-elem />
<script> 
  var customs = document.querySelectorAll( "*[custom-elem]" )
</script>
<style>
    *[custom-elem] { display: block ; }
</style>
于 2015-08-10T14:06:27.257 に答える