23
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

normalize.css、sanitize.cssユーザーに朗報。display: none; 用のクラスを作る必要は無し

Last updated at Posted at 2016-08-26

何気なくソースコードを読んでいて発覚。
normalize.csssanitize.cssも同じ作者が作っているのですが、こんな記述を発見しました。

[hidden] {
  display: none;
}

[]は属性セレクタですね。つまり、hiddenという属性を持ったHTMLタグは表示されなくなるようです。

hidden属性の仕様については、hidden- HTML5リファレンス、または w3cの 7.1 The hidden attribute をご参照ください。

わりと今まで、display: none;のためだけに、こんな処理を書くことがあったのですが、

button.php
<button class="<?php (hoge) ? 'is-hidden' : '' ?>" />
button.css
.is-hidden {
  display: none;
}

normalize.cssかsanitize.cssを採用している場合、不要だったんですね…笑

button.php
<button "<?php (hoge) ? 'hidden' : '' ?>" />
スクショ

これは↓
Screen Shot 2016-08-26 at 11.31.36.png

こうなる↓
Screen Shot 2016-08-26 at 11.31.24.png

追記

hidden属性の仕様としては、以下のとおり。

  • 今は関連性がないが、これから関連するかもしれない要素。
  • 以前は関連性があったが、今はもう関連していない要素。

とのこと。

参照:

ブラウザの対応状況としてはIEは11のみ対応しているようです。(2016/08/26現在)
わりかしモダンな属性なんですね。

参照:HTML hidden Attribute - w3schools

23
20
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?