HTML & CSS 学習まとめノート

HTML & CSSの学習の中で気づいた点や、注意点をまとめたページです。

HTML

DOCTYPE宣言

コード

<!DOCTYPE html>
						
解説
  • 大文字で書いても小文字で書いてもOK(「<!doctype html>でもOK)
  • ただし、htmlの前後に空白を入れることはできるが、!DOCTYPEの部分はそのまま続けて書く必要がある。

head要素

CSS、JavaScriptのリンク
コード

		<head>
		  <link rel="stylesheet" href="/styles/style.css">
		  <script src="/scripts/script.js" defer></script>
		</head>
								
解説

リンクする際はルートから始まる絶対パス(※URL指定ではない)を使用することが推奨される。相対パス指定は開発者の認知負荷が掛かるため、なるべく避けたほうが安心。

CSS

border-radius一括指定時の順番

コード

border-radius: [左上] [右上] [右下] [左下];
							
解説

border-radiusの値を一括指定する際、順番は「左上 右上 右下 左下」

border一括指定時

コード

border: [幅] [スタイル] [色];
							
解説

borderの値を一括指定する際、paddingやmarginのように個別指定は出来ないので注意。

display: grid;

コード

Gridが効くのは「直下の子要素」だけ。例えば、


<section class="parent">
	<dl>
		<dt class="child1">...</dt>
	</dl>
							
というHTMLに

.parent {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
							
とCSSを指定しても、child1やchild2にはGridは効かない。
Gridを効かせたい場合は、dlにdisplay: grid;を指定する必要がある。

background-image

background-imageはレイヤーで考えると分かりやすい。


background-image:
	url("../../images/mountain.svg"),
	linear-gradient(deepskyblue, green);

background-size:
	50% auto,  /* 上のレイヤーの指定 */
	cover;     /* 下のレイヤーの指定 */
							

flexレイアウトとgridレイアウトの違い

flexは一次元(横または縦)の並びにおいて、 各要素がどのように伸縮・配置されるかといった「要素の振る舞い」を指定する。 一方、gridは行と列を持つ二次元レイアウトを前提とし、「全体の構造を定義」するためのプロパティが中心となる。

リンクを滑らかにする

transition: [秒数]s;をa:hoverに適用すると、滑らかな演出ができる。

scroll-behavior:smooth; は:rootやhtml要素に指定する必要がある。aタグがトリガーとなってhtml要素に動きを与えていくため、

vw、svw、vh、svhのまとめ

単位 正式名 説明
vw Viewport Width ビューポート幅の100%(スクロールバーを含む)
svw Small Viewport Width ビューポート幅の100%(スクロールバーを除く)
vh Viewport Height ビューポート高さの100%(スクロールバーを含む)
svh Small Viewport Height ビューポート高さの100%(スクロールバーを除く)

疑似要素はJavaScriptで読めない

実DOM要素しか読み込めない。そのため、例えば::before{ counter-increment: section; content: counter(section) ". "; }のように、疑似要素で生成したコンテンツはJavaScriptで取得できない。

ブラウザ間の差異

改行アルゴリズム

  • Chrome:改行しない
  • Safari:改行しない
  • Firefox:積極的に改行する

対策:<wbr>を適切な位置に入れる。overflow-wrap: anywhere;を入れる。word-break: break-all;は非推奨だが、下位互換のため念のため併用した方が良い。Safari 15.4(2022年)から対応のため。

デバッグ方法

以下のコードではみ出ている要素を赤い線で表示することができる。


* {
  outline: 1px solid red;
}