CSS
よくあるものや,今回のホームページ制作で使うスタイリングの方法をいろいろ紹介します.
以下のように,適当な名前の新しいフォルダとindex.html
,style.css
を作成してください.
HTMLファイルは以下を記述してください.
JavaScriptが出てくることがありますが,無視してください.
要素をブロック要素
とインライン要素
のどちらとして扱うか、およびその子要素のために使用されるレイアウト、例えば フローレイアウト
,グリッド
,フレックス
などを設定する.
要素の内側と外側の表示種別を設定します.外側の型は要素のフローレイアウトへの参加方法を設定し,内側の型は子要素のレイアウトを設定する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/display
文書の書字方向の中で,段落として一つが他の物の後に表示される.
インライン要素はインライン方向,つまり文書の書字方向に従って,文の中で言葉が表示される方向に表示される.
通常フロー
とも呼ばれ,フロー(flow)は流れのという意味.
HTMLで記述された順番に,ブロック要素は縦の方向に配置し,インライン要素は横の方向に配置する.
レイアウトが指定される前のレイアウト.デフォルトのレイアウトだと理解してもいいかもしれない.
グリッドレイアウトやフレックスレイアウトは,このフローレイアウトを変更すること.
リファレンス:【HTML&CSS】私的レイアウト入門講義
グリッドレイアウトモデルでは,ページを大きな領域に分割することや,HTML のプリミティブから構成されたコントロールの部品間の,寸法,位置,レイヤーに関する関係を定義することに優れている.
リファレンス:CSS グリッドレイアウト
フレックスレイアウトモデルでは,フレックスコンテナーの子は任意の方向にレイアウトすることができ,また使われていない空間を埋めるために伸長したり,あるいは親のあふれることを避けるために収縮したりと,そのサイズを「伸縮」することができる.
子の水平方向と垂直方向の両方の整列を,容易に操作することが可能.
今回のホームページ制作では,主にフレックスレイアウトを用います.
リファレンス:CSS フレックスボックスレイアウト
さらに詳しく使うのは,もう少し後で.
文書内で要素がどのように配置されるかを設定する.
top
, right
, bottom
, left
の各プロパティが,配置された要素の最終的な位置を決める.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/position
要素は文書の通常のフローに従って配置される.top
, right
, bottom
, left
,z-index
プロパティは効果がなく,これはデフォルト値です.
要素は文書の通常のフローから除外され,ページレイアウト内に要素のための空間は作成されない.
直近の配置されている祖先があれば,それに対して相対配置され,そうでなければ初期の包含ブロックに対して相対配置される.最終的な位置は top
, right
, bottom
, left
の値によって決定される.
絶対位置指定ボックスのマージンは,他の要素のマージンと相殺されない.
要素は文書の通常のフローに従って配置され,top
, right
, bottom
, left
の値に基づいて自分自身からの 相対オフセット で配置される.オフセットは他の要素の配置には影響を与えない.
要素は文書の通常のフローから除外され,ページレイアウト内に要素のための空間は作成されない.ビューポートによって定められた初期の包含ブロックに対して相対配置される.
この値は,常に新しい重ね合わせコンテキストを作成し,印刷文書の場合,要素は各ページの同じ位置に配置される.
要素は文書の通常のフローに従って配置され,直近のスクロールする祖先および包含ブロック (直近のブロックレベル祖先,表関連要素を含む) に対して top
, right
, bottom
, left
の値に基づいて相対配置される.
オフセットは他の要素の配置には影響を与えない.
詳しくは,「positionプロパティを身に着けよう!stickyの仕様と使い方を解説!」
一括指定プロパティで,要素の境界を設定する.
要素の境界の外側の角を丸める.
半径の長さを指定していることを意識してみるといいかもしれない.
.style2 の場合
.style5 の場合
要素のオーバーフロー時,要素の内容が多すぎてブロック整形コンテキストに収まらない場合の望ましい動作を両方向について設定する.
画面のリサイズなどによって要素の幅が変わるとき,その最大最小値を設定する.
画面のリサイズなどによって要素の高さが変わるとき,その最大最小値を設定する.
Flexbox レイアウトは親要素の displayプロパティ
の値に flex
または inline-flex
を指定することで定義される.
フレックスアイテムを単一行に押し込むか,あるいは複数行に折り返してもよいかを指定する.
折り返しを許可する場合は,行を積み重ねる方向の制御も可能です.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/flex-wrap
主軸の方向や向き (通常または逆方向) を定義することにより,フレックスコンテナー内でフレックスアイテムを配置する方法を設定する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/flex-direction
フレックスボックスでは,交差軸方向のアイテムの配置を制御する.
グリッドレイアウトでは,グリッド領域におけるアイテムのブロック軸方向の配置を制御する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/align-items
フレックスコンテナーの主軸およびグリッドコンテナーのインライン軸に沿って,中身のアイテムの間や周囲に間隔を配置する方法を定義する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/justify-content
フレックスボックスの交差軸 (縦方向) またはグリッドのブロック軸方向の内部のアイテムの間または周囲の空間の配分方法を設定する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/align-content
フレックスアイテムをフレックスコンテナーの領域に収めるために,どのように伸長・収縮させるかを指定する.
リファレンス:https://developer.mozilla.org/ja/docs/Web/CSS/flex
CSSのflexboxをゲーム感覚で学べるサイト:https://flexboxfroggy.com/#ja
ここまでで,いろいろなレイアウト方法を紹介してきました.
gridレイアウトについて興味のある方は,自身で学んでみてください!
いよいよホームページ制作です!