CSS設定の競合又は優先順位について、学習してみたいと思います。

1、参考にしていただいた記事

  • 1-1,「CSSの基本ースタイルの優先順位」

    CSSの基本ースタイルの優先順位」を参照させて頂きました。
    「複数箇所でスタイルを指定すると、同じプロパティに異なる値が指定されてスタイルが競合することも起こりえます。 こうした場合には、よりタグに近いところで指定されたスタイルや、 より後から読み込まれたスタイルが優先されて、プロパティの値が上書きされます。」
    とあります
    セレクタの種類による優先順位
    1. idセレクタやclassセレクタなどの具体的・局所的なセレクタは、タイプセレクタや全称セレクタのような全般的なセレクタより優先される
    2. idセレクタはclassセレクタより優先され、タイプセレクタは全称セレクタ(全称セレクタとは:*)より優先される

      (idセレクタ > classセレクタ > タイプセレクタ > 全称セレクタ)

    3. 要素を特定したidセレクタ・classセレクタは、要素を特定しないidセレクタ・classセレクタより優先される
    4. 優先順位が同じになった場合は、最後に指定したスタイルが適用される
    5. !importantを付けると最優先される

    1-2,「CSSの基本-スタイルの優先順位」

    CSSの基本-スタイルの優先順位」を参照させて頂きました。

    Web ページ制作者が作成したスタイルシート>Web ブラウザのユーザーが作成したスタイルシート>Web ブラウザが標準で適用するスタイルシート

    という優先順位が定められているとの事。

    1-3,「CSSが効かないときの優先順位チェック(1)~記述箇所編

    CSSが効かないときの優先順位チェック(1)~記述箇所編」を参照させて頂きました。
    スタイルシートが書けるのは以下の 3 ヶ所との事。
    1,HTML タグ内
    2,<head> ~ </head> 内
    3,外部スタイルシート

    HTMLタグ内 > head 内> 外部スタイルシート

    という優先順位が定められているとの事。

    1-4,「CSSが効かないときの優先順位チェック(2)~id・class編」

    1. CSSが効かないときの優先順位チェック(2)~id・class編」を参照させて頂きました。
      レベルが同じならCSSは後から書いたものが優先(上書き)される』との事。
      又idとclass等の優先順位は次の順位(上から優先)になるとの事。
      1. 要素を特定した id・・・(例)span#red { color: red; }
      2. id
      3. 要素を特定した class・・・(例)span.red { color: red; }
      4. class
      5. タイプセレクタ・・(例)要素名 {プロパティ: 値;}・・p {color: #ff0000;}

    1-5,『CSS初学者の最初の壁「スタイルの継承」をしっかり理解する』

    1. CSS初学者の最初の壁「スタイルの継承」をしっかり理解する」を参照させて頂きました。
      1. 親要素に継承されるスタイルと継承されないスタイルがある(継承される一覧表が書いてありました、・・助かります)。
      2. 強制的に親要素を継承したい時は「inherit(英語で相続の意味)」を使う。

2、css記入注意(自分のミス等で気付いたこと)

2-1,行の後ろに記入されてない項目は、上に書いた項目が適用

レベルが同じならCSSは後から書いたものが優先(上書き)される』が、下図のような場合に注意
 CSS優先順位注意

2-2,CSSのコメントの中に、間違ってhtmlのコメントを記入しない

@media only screen and (max-device-width : 900px)が効かなくなる。
コメント間違い

2-3,max-width:***px;指定は、width:auto;とセットで使う

理由:例えば<h3>要素でwidth:300pxと指定していたら、次に<h3 class="abc">でmax-width:500px;を設定しても効かない。
①width:auto;又はwidth:**%;
②max-width:500px;
のようにセットで使う。

2-4,<div>の配置、top:**px:、left:**px;等を使用する時は、position: relative;とセットで使う。

理由:セットで使わないと効かない。
①top:20px;
②position: relative;

2-5,大きい画面ではfloat:rightしていた<div>をスマホサイズの時は元に戻したい時

float:inheritとcleare:bothを指定したらうまくいった。ほかにも方法が?

通常のPC画面
通常PC画面
PC画面サイズCSS

スマホ画面
スマホC画面
スマホサイズcss

3,まとめ

3-1,記述する場所による優先度

  後に記述したcssが優先

3-2,ユーザーによる優先度(上の欄が優先)

優先度 備考
ウェブサイト製作者  
閲覧者(ユーザー)  
プラウザ Internet Exproler、Google Crome 等

3-3,記述する場所による優先度(上の欄が優先)

優先度 備考(例)
HTMLタグ内 <p style="color:blue; line-height:1.5;">文章</p>
head内 .auto-style7 {
text-align: center;
}
外部スタイルシート h1 {
border: 1px none #000099;
padding: 2%;
}

3-4,タイプによる優先度(上の欄が優先)

優先度 備考(例)
!important !importantルールを使うとスタイルを優先させることができます。「プロパティ: 値」の後に半角スペースで区切り、!importantを配置します。ただし、「プロパティ: 値」ごとに指定する必要があります。

body {
 background-color: #000000 !important;
 color: #ffffff !important;
}
要素を特定したid p#tomoyo { color: red; }・・・pが要素
id #tomoyo { color: blue; }
要素を特定したclass p.sakura { color: red; }・・・pが要素
class .sakura { color: blue; }
タイプセレクター スタイルシートリファレンス」を参照させて頂きました。
スタイルシート部分は外部ファイル(sample.css)に記述。
p {color:blue;}
全種セレクター スタイルシートリファレンス」を参照させて頂きました。
スタイルシート部分は外部ファイル(sample.css)に記述。
* {color:blue;}
up down