【CSS】初心者向け基礎知識!セレクタ・結合子・プロパティの基本!

【 2025/04/13 20:42 更新 】
目次

    CSSとは?

    CSS(Cascading Style Sheet)は、Webページのデザインを定義する言語です。
    HTMLと組み合わせて使います。

    HTMLとは

    Webページの画面構造をコンピュータへ定義するためのマークアップ言語です。
    詳しくは、こちらの記事をご参照ください。
    【HTML】初心者向け基礎知識!HTML・作り方・タグを説明! | こじはなNote

    CSSのざっくりイメージ

    【 HTMLファイル 】

    上のHTMLをブラウザで表示すると、こんなかんじになります。

    HTMLファイル

    CSSで「できること」と「できないこと」

    CSSで「できること」

    • Webページを自由に装飾できる。
    • Webページにある程度アニメーションを実装可能。

    CSSで「できないこと」

    • CSS単体では何もできない。
    • 精密なアニメーションが作れない。
    • 細かい機能が追加できない。
    こじはな
    CSSとHTMLを組み合わせれば、デザインは無限大!
    それに、CSSだけで結構色んなアニメーションができるんだよ!
    ポイント

    精密なアニメーションや細かい機能も作り込む場合はJavaScriptやサーバーサイドも一緒に開発する必要があります。

    CSSをHTMLへ反映させる方法大きく2つ

    CSSをHTMLへ反映させる方法は大きく2つあります。

    • HTMLファイルに直接書く方法
    • CSSファイルを読み込む方法

    1. HTMLファイルに直接書く

    headタグ内にstyleタグを定義し、その中にCSSを書くことができます。

    【 HTMLファイル 】

    2. CSSファイルを読み込む

    別で用意したCSSファイルをHTMLへ読み込ませることができます。
    CSSファイルは、拡張子が.cssのファイルでCSS専用のファイルです。

    拡張子とは

    ファイルの種類や形式を示す文字列で、ファイル名の末尾に付きます。
    ドット.でファイル名と拡張子の間を区切ります。

    Windowsで拡張子が表示されない場合

    こちらを参考に、設定してみてださい。
    Windows の一般的なファイル名拡張子

    【 HTMLファイル 】
    【 test.css 】
    • rel="stylesheet"について

      読み込ませるファイルがスタイルシートのファイルであることを示しています。

    • href="css/test.css"について

      読み込ませるCSSのパスを指定しています。

    注意

    linkタグのhrefへ設定するパスは正しいパスを指定する必要があります。

    パスとは

    ファイルやディレクトリ(フォルダー)がある場所のことです。
    パスについて詳しくは別で説明します。

    「CSSファイルを読み込む」方法が一番使われている。

    CSSファイルを読み込む方法が一番使われています。
    理由としては、以下の利点があるからだと思います。

    • HTMLとCSSを明確に分けることでコードの管理がしやすい
    • 複数のページがある場合、共通のCSSファイルを読み込むことが可能
    こじはな
    こじはなも「CSSファイルを読み込む」方法で開発してるよ!

    CSSセレクタの種類

    セレクタとは、CSSとHTMLを紐づける名前や条件のようなものです。
    CSSをHTMLへ反映させるためにセレクタは必須です。

    タグ セレクタ

    HTMLのタグを直接指定するセレクタです。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    「タグ」セレクタで指定したタグの文字のみ、色が変わりました!

    class(クラス)セレクタ

    HTMLタグのclass属性を指定するセレクタです。
    CSSでは.(クラス名)で指定します。

    属性とは

    HTML要素の内容や動作を調整するために追加する値のこと。
    要素の開始タグ内に配置され、「名前=値」の形式で書きます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    .(クラス名)で指定したクラス属性の要素のみ、文字色が変わりました!

    ポイント

    クラス属性には複数クラスを指定できます
    複数クラスを指定する場合、半角スペース区切りでクラス名を指定します。
    例:class="classA classB classC"

    id セレクタ

    HTMLタグのid属性を指定するセレクタです。
    CSSでは#(id名)で指定します。
    idはclassと違い、1つのidにつき、1つのHTMLタグへしか反映できません。

    属性とは

    HTML要素の内容や動作を調整するために追加する値のこと。
    要素の開始タグ内に配置され、「名前=値」の形式で書きます。

    idは1つだけ

    idセレクタを指定できるHTMLタグは1つのidにつき、1つだけです。
    2つ以上HTMLタグに同じidセレクタを指定すると、正常にWebページが動作しなくなる可能性があります。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    #(id名)で指定したid属性の要素のみ、文字色が変わりました!

    属性 セレクタ

    HTMLタグの属性を指定するセレクタです。
    CSSでは[属性名="値"]で指定します。

    属性とは

    HTML要素の内容や動作を調整するために追加する値のこと。
    要素の開始タグ内に配置され、「名前=値」の形式で書きます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    [属性名="値"]で指定した属性・値が合致した要素のみ、文字色が変わりました!

    全指定 セレクタ

    HTMLタグ内の全要素を指定するセレクタです。
    CSSでは*で指定します。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    全要素の文字色が変わりました!

    よく使うセレクタ指定テクニック「結合子」

    結合子:複数指定

    複数のセレクタを指定する方法です。
    CSSでは、セレクタ1つ目,セレクタ2つ目で指定します。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    class="test01"・class="test02"が設定された要素に反映されました!

    結合子:子/孫

    親セレクタを限定して、子要素または孫要素のセレクタを指定する方法があります。
    CSSでは、親セレクタ(半角スペース)子要素または孫要素のセレクタで指定します。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    class="parent"内のpタグが全て反映されました!

    結合子:子

    親セレクタを限定して、直後の子セレクタを指定する方法です。
    CSSでは、親セレクタ>子セレクタで指定します。

    ポイント

    親要素直後の子要素のみが指定されます。
    孫要素は指定されません。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    class="parent"直後のpタグのみ反映されました!

    結合子:後続の弟

    基点となるセレクタを限定して、基点以降に存在する同じ階層の弟セレクタ全てを指定する方法です。
    CSSでは、基点セレクタ~弟セレクタで指定します。

    ポイント

    基点セレクタ~弟セレクタでは、基点セレクタより後続の弟要素全てに反映されます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    class="base"より後続の弟pタグが全て反映されました!

    結合子:先駆け兄

    基点となるセレクタを限定して、基点より先に存在する同じ階層の兄セレクタ全てを指定する方法です。
    CSSでは、基点セレクタ~兄セレクタで指定します。

    【 test.css 】
    【 HTMLファイル 】
    HTMLファイル

    class="base"より先にある兄弟pタグが全て反映されました!

    :has()とは

    :has()は、先に定義されている兄要素特定の子要素をもつ親要素を指定できます。
    要素を逆引きするようなイメージです。
    CSSの擬似クラスの1つです。

    擬似クラスとは

    要素の特定の状態を指定できるCSS特有の機能です。
    :hover、:active、:first-child、:has()など様々な擬似クラスが用意されています。

    結合子:隣接した弟(1つ)

    基点となるセレクタを限定して、基点のすぐ隣に存在する同じ階層の弟セレクタ(1つ)を指定する方法です。
    CSSでは、基点セレクタ+弟セレクタで指定します。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    class="base"の隣の弟pタグのみ反映されました!

    CSSの基本的なプロパティ

    CSSのプロパティとは、スタイル(装飾)の種類です。
    1つのセレクタに対し複数のスタイルを指定可能で、「プロパティ:値」で指定します。

    プロパティ:color

    文字色を指定できます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    文字色が指定通りに変わりましたね!

    • color: rgb(141 51 234)について

      光の三原色であるRGB(Red、Green、Blue)のrgbです。
      赤・緑・青の度合いを指定して色を表現しています。

    ポイント

    rgbの他にも#(16進数6桁)でも表現可能です。
    上の「color: rgb(141 51 234);」を16進数で指定するとしたら、「color:#8d33ea;] となる。

    プロパティ:font-weight

    文字の太さを指定できます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    太字になりました!

    プロパティ:font-size

    文字の大きさを指定できます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    指定通りの文字サイズになりました!

    px(ピクセル)とは

    画像や画面を構成する最小単位です。
    pxの他にも、rem・em・%・vw・vhなどの単位があります。

    プロパティ:border

    枠線を指定できます。
    プロパティの記載は「border: (種類) (太さ) (色)」のように指定します。

    borderプロパティ値「種類」とは

    枠線の表示デザインです。
    直線"solid"・二重"double"・ドット"dotted"・点線"dashed"などがあります。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    枠線が上手に反映されました!

    border方向別の指定方法について 本節の最後に説明しています。

    px(ピクセル)とは

    画像や画面を構成する最小単位です。
    pxの他にも、rem・em・%・vw・vhなどの単位があります。

    border方向別の指定方法

    border: 値; 1つの値だけで全方向の枠線を指定します。
    border-top: 値; 上方向の枠線を指定します。
    border-bottom: 値; 下方向の枠線を指定します。
    border-left: 値; 左方向の枠線を指定します。
    border-right: 値; 右方向の枠線を指定します。

    プロパティ:background-color

    背景色を指定できます。

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    指定通りの背景色になりました!

    • background-color: rgb(226 197 255)について

      光の三原色であるRGB(Red、Green、Blue)のrgbです。
      赤・緑・青の度合いを指定して色を表現しています。

    ポイント

    rgbの他にも#(16進数6桁)でも表現可能です。
    上の「background-color: rgb(226 197 255);」を16進数で指定するとしたら、「color:#e2c5ff;] となる。

    例でdivタグを使った理由

    適切な役割のタグに反映させたかったからです。
    pタグは文章用のタグで、divタグは汎用的なタグで主にブロック要素として使用されます。
    pタグでももちろん「background-color」は反映されます。
    ※「ブロック要素」については次節ご参照ください。

    【 HTMLファイル 】

    プロパティ:display

    要素の種類や表示を指定できます。
    要素の種類というのは、HTMLタグの要素が分類される特性の種類のことです。
    要素の種類について 本節の最後に説明しています。

    【 test.css 】
    【 HTMLファイル 】

    上のHTMLをブラウザで表示すると、こんなかんじになります。

    HTMLファイル
    こじはな
    HTML要素の種類によって改行されたり横並びになったりするんだよ!

    基本的なHTML要素の種類

    block
    ブロック
    のようなイメージ。
    要素の前後が強制的に改行される
    inline
    インライン
    文章の一部分のイメージ。
    要素の前後は改行されない
    inline-block
    インラインブロック
    blockだけど改行されないイメージ。
    要素の前後は改行されない
    flex
    フレックス
    flex要素内にある複数の要素を1列に並べたり、並べ方をカスタマイズできるブロック要素。
    要素の前後が強制的に改行される

    【詳しく知りたい方はこちら】
    CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説! | こじはなNote

    プロパティ:width・height

    widthは要素の幅heightは要素の高さを指定できます。
    block系の要素(inlie-block・flexも含む)に効きます。

    注意

    inline要素には効きません

    【 test.css 】
    【 HTMLファイル 】

    上のHTMLをブラウザで表示すると、こんなかんじになります。

    HTMLファイル
    ポイント

    インライン要素は効いてないことが分かります。

    px(ピクセル)とは

    画像や画面を構成する最小単位です。
    pxの他にも、rem・em・%・vw・vhなどの単位があります。

    プロパティ:text-align

    文字寄せの方向として、左(left)・右(right)・中央(center)のどれかを指定できます。
    block系の要素(inlie-block・flexも含む)に効きます。

    注意

    inline要素には効きません

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    指定した文字寄せの方向が反映されています!

    プロパティ:padding

    内部の余白を設定できます。
    block系の要素(inlie-block・flexも含む)に効きます。

    【 内部余白 】

    padding図

    内側への余白です。
    ※デフォルトはborder含めません。

    注意

    inline要素には効きません

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    padding-right以外の内容が明確に反映されています。
    paddingの指定方法について 本節の最後に説明しています。

    ポイント

    paddingはborder箇所については含めません。

    「padding-right」が反映されない理由

    block要素はwidthがデフォルトで100%になります。
    widthが画面いっぱいになることで、padding-right:10pxが適用されていても明確に見えないだけです。

    px(ピクセル)とは

    画像や画面を構成する最小単位です。
    pxの他にも、rem・em・%・vw・vhなどの単位があります。

    paddingの様々な指定方法

    padding: A; 1つの値だけで全方向の内部余白を指定します。
    padding: A B; Aの値は上下(垂直)、Bの値は左右(水平)の内部余白を指定します。
    padding-top: A; 上方向の内部余白を指定します。
    padding-bottom: A; 下方向の内部余白を指定します。
    padding-left: A; 左方向の内部余白を指定します。
    padding-right: A; 右方向の内部余白を指定します。

    プロパティ:margin

    外部の余白を設定できます。
    block系の要素(inlie-block・flexも含む)に効きます。

    【 外部余白 】

    margin図

    外部への余白です。
    ※デフォルトはborder含めません。

    注意

    inline要素には効きません

    【 test.css 】
    【 HTMLファイル 】

    このCSS・HTMLをブラウザで表示すると...

    HTMLファイル

    だいたい反映されていますが、少し違和感がある方もいるかもしれません。
    marginの指定方法について 本節の最後に説明しています。

    ポイント

    marginはborder箇所については含めません。

    marginが重複したら広い方が優先

    marginは指定箇所が重複した場合広い指定の値が優先されます。
    例えば、以下のような場合marginは50pxになります。

    margin図

    px(ピクセル)とは

    画像や画面を構成する最小単位です。
    pxの他にも、rem・em・%・vw・vhなどの単位があります。

    marginの様々な指定方法

    margin: A; 1つの値だけで全方向の外部余白を指定します。
    margin: A B; Aの値は上下(垂直)、Bの値は左右(水平)の外部余白を指定します。
    margin-top: A; 上方向の外部余白を指定します。
    margin-bottom: A; 下方向の外部余白を指定します。
    margin-left: A; 左方向の外部余白を指定します。
    margin-right: A; 右方向の外部余白を指定します。

    まとめ

    • CSSはWebページのデザインを定義する言語
    • CSSとHTMLを組み合わせれば、装飾・アニメーションを実装できる。
    • CSSを反映させる方法は、「HTMLファイルに直接書く」よりも「CSSファイルを読み込む」方が管理しやすい。
    • タグセレクタ:HTMLのタグを直接指定するセレクタです。
    • classセレクタ:class属性を指定するセレクタで、.(クラス名)で指定。
    • idセレクタ:id属性を指定するセレクタで、#(id名)で指定。
    • 属性セレクタ:属性を指定するセレクタで、[属性名="値"]で指定。
    • 全指定セレクタ:全要素を指定するセレクタで、*で指定。
    • (結合子)複数指定:複数のセレクタを指定でき、セレクタ1つ目,セレクタ2つ目で指定。
    • (結合子)子/孫:子要素または孫要素のセレクタを指定でき、親セレクタ(半角スペース)子要素または孫要素のセレクタで指定。
    • (結合子)子:直後の子セレクタを指定でき、親セレクタ>子セレクタで指定。
    • (結合子)後続の弟:基点以降に存在する同じ階層の弟セレクタ全てを指定でき、基点セレクタ~弟セレクタで指定。
    • (結合子)先駆け兄:基点より先に存在する同じ階層の兄セレクタ全てを指定でき、基点セレクタ~兄セレクタで指定。
    • (結合子)隣接した弟(1つ):基点のすぐ隣に存在する同じ階層の弟セレクタ(1つ)を指定でき、基点セレクタ+弟セレクタで指定。
    • color:文字色を指定できます。
    • font-weight:文字の太さを指定できます。
    • font-size:文字の大きさを指定できます。
    • border:枠線を指定でき、「border: (種類) (太さ) (色)」のように指定。
    • background-color:背景色を指定できます。
    • display:要素の種類や表示を指定でき、 要素種類はdisplay・inline・inline-block・flexなどがある。
    • width・height:widthは要素の幅heightは要素の高さを指定できます。
    • text-align:文字寄せの方向として、左(left)・右(right)・中央(center)のどれかを指定できる。
    • padding:内部の余白を設定できます。
    • margin:外部の余白を設定できます。
    【 2025/04/13 20:42 更新 】