ボックスはきれいで読みやすいHTMLをつくるのと同時に、ページのレイアウトに重要な役割を果たしている。
##インラインボックスとブロックボックス
ブラウザに表示されているすべてのタグは、「ボックス」と呼ばれるコンテンツを表示する領域を確保する。このボックスには大きく分けて「インラインボックス」と「ブロックボックス」の二種類がある。
・インラインボックス 「テキストの行に紛れ込むことができる」ボックスのこと。基本的には、テキストを修飾するようなタグやフォーム部分が表示される。
・ブロックボックス タグに含まれるコンテンツの量に関係なく、親要素と同じ幅の領域を確保するタイプのボックス。
ブロックボックスで表示されるタグは、さらにその意味や役割によって大きく次の二つに分けられる。
・そのタグがコンテンツに何らかの意味付けをするもの(ex.<h1>
~<h6>
、<p>タグ)
・ほかのタグを囲んで、情報の整理をしたりグループ化したりするもの(ex.<ul>
、<li>
、<div>
タグ)
##箇条書きのマークアップ
・箇条書き <ul>
、<li>
・リスト項目の先頭に番号を付ける <ol>
、<li>
##<ul>
、<li>
、<ol>
のCSS
<ul>``<ol>
には、タグ自体に次のようなCSSが適用されている。
①<ul>
、<ol>
にはlist-style-typeプロパティが適用されていて、リストの各項目(<li>
の各行)の先頭にはリストマークや番号が表示される
②<ul>
、<ol>
には、リストマークや番号を表示するスペースを確保し、<ul>
、<ol>
の上下に余白を持たせるために、paddingプロパティ、marginプロパティが適用されている
そのため、<ul>
、<ol>
にはCSSを適用しなくても上下左右にスペースがはじめからつけられている。こうしたCSSを「デフォルトCSS」という。
デフォルトCSSをキャンセルするためには、そのためにまたCSSを書く必要がある。
.subnav ul{
margin: 0;
padding: 0;
list-style-type: none;
}
##サブナビゲーションの先頭にマークを付ける
<ul>
、<li>
でマークアップしたHTMLをよりナビゲーションらしく見せるために、<li>
の各項目の先頭にリストマークとして画像を表示させる。
.subnav a{
padding-left: 16px;
background: url(../../images/listmark.png) no-repeat left 0 top 4px;
color: #1864b9;
text-decoration: none;
}
・<a>
に左paddingを設けることでテキストの開始位置をずらす。
・マークの画像とテキストの画像があわないときは、「4px」の部分の数値を調整する
##パンくずリストを作成する
「パンくずリスト」とは、今表示しているパージの場所がわかるようにWebサイトのトップページからの階層構造をリスト化したもの
<style>
.breadcrumb ol {
list-style-type: none;
margin: 0;
padding: 0;
}
.breadcrumb li {
display: inline;
}
.breadcrumb li::after {
content: "»";
color: #999;
}
.breadcrumb li:last-child::after {
content: none;
}
.breadcrumb a {
text-decoration: none;
color: #1864b9;
}
</style>
</head>
<body>
<div class="breadcrumb">
<ol>
<li><a href="/">ホーム</a></li>
<li><a href="/products/">製品リスト</a></li>
<li><a href="/products/lens/">カメラレンズ</a></li>
<li>広角レンズ</li>
</ol>
</div>
・displayプロパティによって、本来ブロックボックスとして表示される<li>
をインラインボックスとして表示させる(=要素の表示状態を切り替える)
・「.breadcrumb li」で選択された要素の「::after」で、各項目のテキストの後ろに「>>」を表示させる
・「:last-child」を使って最後の<li>
だけを選択し、その要素にだけは「>>」を表示させないようにする
##<div>
タグの使い方
<div>
タグがあまりに多いHTMLは非常に読みづらく、メンテナンス性の低いものになってしまうので、できるだけ情報のまとまりを意識しながら<div>
タグで囲むことが大切
⑴見出しと関連するコンテンツをまとめる
ひとつの<div>
に囲まれる見出しは、原則として一つだけにする。また、そのまとまりが何のまとまりかわかるように<div>
にはclass属性をつける
⑵パーツの「境界」をつくる
独立した情報を「パーツ」と考え、一つひとつのパーツの境界をはっきりさせるために<div>
で囲む。そうすることで「どこからどこまでが一つのパーツなのか」がわかりやすくなり、順序の入れ替えや交換が楽になる
⑶HTMLの階層を揃える
美しいHTMLを書くためには、兄弟要素が同じカテゴリーに所属している必要がある
タグの分類は以下の通り
①インラインボックス(<img>
、<strong>
、<a>
など)
②ブロックボックス
(a)コンテンツに意味付けをするボックス(<h1>
、<ul>
、<p>
など)
(b)情報を整理・グループ化するボックス(<div>
、<section>
、<header>
など)
⑷別のボックスのラッパー構造を作成する
ラッパー構造とは、<div>
で囲まれた複数の「グループ化された構造」をさらに<div>
で囲むこと。
主にCSSで複数の<div>
を横に並ばせたりするときに使う
##パディング・ボーダーの設定
ボックスの周囲に枠線を付けるには、borderプロパティを使用する。borderプロパティの値には、ボーダーの「太さ」「線の形状」「色」を、半角スペースで仕切って指定する
値と使用例 | 説明 |
---|---|
border: 1px none #b7383c | 枠線を表示しない。太さの領域も確保されないので注意が必要 |
border: 1px dotted #b7383c | 点線。四辺に適用すると角が汚くなるので、一般的にはボーダーを一辺に適用するときに使う |
border: 1px dashed #b7383c | 長めの点線。四辺に適用すると角が汚くなるので、一般的にはボーダーを一辺に適用するときに使う |
border: 1px solid #b7383c | 実線 |
border: 1px double #b7383c | 二重線 |
##最後に
ボックスはCSSでの調整がおおいけど、ググれば出てくる程度だから自分で調べましょう~~