質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2162閲覧

CSSを記載する時、現場ではセレクタにタグ名まで記載しますか?

退会済みユーザー

退会済みユーザー

総合スコア0

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/09/06 16:05

CSSを記載する時、現場ではセレクタにタグ名まで記載しますか?

グーグルのコーディングルールには省略するように記載されていたので省略したのですが、
BEMを使っても、どうも分かりにくいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

class・idがある場合はCSSセレクタにはタグ名を入れない方が高速になるので、
タグ名を入れない方が良いとされているのだと思います。

CSSのセレクタは、右から左に判別していきます。ですので

css

1.foo {}

これは、fooというクラスを探すだけですが

css

1a.foo

タグ名をつけると、fooというクラスを探した後で、その中でaタグであるものを探すします。
探す回数が多いのでその分遅くなります。

順番に探していくので子孫セレクタも当然遅いです。

css

1div#main ul.navList li {}

これは liタグを探して、その親がnavListクラスを持っている要素を探して、その上でulタグのものを... となりますので、いっそliタグにクラス名を付けて

css

1.listItem {}

とする方が断然高速になります。

と言っても。
セレクタでスタイルが当たる範囲を絞り込んで無い分、HTMLとCSSの設計には注意しなければならなくなります。作業効率やメンテナンス性・可読性などを考慮すると、高速なセレクタ至上主義が絶対的に正しいとは言い切れない部分も出てきますので、このプロジェクトではどう書くかというコーディングルールを選択・作成すれば良いのではないかと思います。

投稿2015/09/06 17:48

KiKiKi_KiKi

総合スコア596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/09/07 07:50

CSSの数は最低でも、レスポンシブなら数百があるので、タグを入れない方が、かなりレスポンスは良くなると考えてよいのでしょうか? 正直ないと管理はしにくいのですが、コンバージョン率が変わる位の差があるのであれば、その方が良さそうですね。BEMでクラス名が長くなる方がよほど軽いのですね。 子孫セレクタも、無視できないほどのレスポンスの差があるのですね。 0は難しいですが、クラスを7割位が良いのですね。
KiKiKi_KiKi

2015/09/07 08:33

レスポンシブWEBデザインにするという事は、基本的に回線速度の出ないモバイルを基準考えるモバイルファーストの概念を取り入れたほうが幸せになれると思いますので、パフォーマンスには気を使うのが良いかと思います。 セレクタに気を使いファイルも巨大にならないようCSSを設計するのであれば、gruntやgulpで結合して1ファイルにしてmin化してgzip化するくらいまではした方がよいかもです。 セレクタにタグが有る無しによる 管理しやすい/管理しにくい はちょっと失礼な言い方になってしまいますが、慣れの問題でしか無いかと思います。 個人でやっている場合はまぁ好きにすれば良いと思いますが、チームで開発をしている場合は基本的にタグ名無しというコーディングルールにして著しく開発のパフォーマンスが低下するのであれば、納期と相談してルールを考えなおすなどしたほうが良いと思います。 実際問題、CSSのセレクタの指定方法よりもっとパフォーマンスに影響を与える部分は沢山あると思いますので。 2011年の記事ですが、ブラウザ別に計測してみたというものがありましたので参考に http://developers.linecorp.com/blog/?p=178 こちらも少し古い本ですが、 オライリーのハイパフォーマンスWebサイト などは高速化の参考になると思います。 http://www.amazon.co.jp/dp/487311361X/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問