CSS15 〜 display・インライン・ブロック要素〜

 

下記のWebページを内部スタイルシート形式で作成してください。

下記のWebページを内部スタイルシート形式で作成してください。

 

事前準備

デスクトップ上にフォルダ「webst8」を作成します(すでに作成済みの場合は不要です)。
デスクトップ上にwebst8フォルダを作成する
 
 

「webst8」フォルダの中に「css-lesson15」フォルダを作成して、Atomで「lesson15.html」を新規作成します。
 

以下はCSS無しのHTMLファイルです。下記のHTMLコードを利用して「lesson15.html」に内部スタイルシート形式でCSSを記述していってください。

 

■上記CSS無し版の表示例

 

一通り記述できたら上書き保存して「lesson15.html」をダブルクリックして開きます。課題にあった画面通り表示されていれば、完成です。

 
 

ヒント

HTMLの各要素はインライン要素とブロックレベル要素に分類できることを確認しましょう。
 

代表的なブロックレベル要素とインライン要素

代表的なブロックレベル要素として以下のようなものがあります。

項目 主な要素 特徴
ブロックレベル要素
  • div
  • h1〜h6
  • p
  • ul,ol,li
  • dl,dt,dd
  • table
  • form
ブロックレベル要素は各要素が一つのブロック(塊)で、以下のような特徴があります。

  • 要素の前後に改行が入り、ブロック要素同士縦に並ぶ
  • 横幅や高さを指定できる
  • 余白(margin,padding)が指定できる
インライン要素
  • a
  • span
  • img(※)
  • label
  • input(※)
  • textarea(※)
代表的なインライン要素として以下のような特徴があります。

  • 要素の前後に改行が入らず、インライン要素同士横に並ぶ
  • 横幅や高さを指定できない(※)
  • ブロックレベル要素のように余白設定(margin,padding)が効かない

(※)ただし、img、input、textareaなどの一部のタグは幅高さや余白の設定が可能です。

 

CSSのdisplayプロパティを利用して上記の性質を変化させることができます。
 

  • display:inline;指定した要素をインライン要素の性質にする(改行なし、幅・高さ・余白を指定できない)
  • display:block;指定した要素をブロックレベル要素の性質にする(改行あり、幅・高さ・余白を指定できる)
  • display:inline-block;指定した要素を中間の性質にする(改行がつかないが、幅・高さ・余白を指定できる)
  • display:none;指定した要素を非表示にする

(他にも設定値はありますがここでは割愛します。)
 

詳細は下記をご参照ください。
表示に関するスタイル display
 
 

こたえ

作り方を下記に載せました。

ソースコード

 
 

補足 li要素の隙間をなくす

li要素をインラインブロックに変えたことにより、li要素間で隙間ができてしましました。

 

これを下記のように隙間をなくすにはどうすれば良いでしょうか。

 

原因はli要素を改行した際にul要素のフォントサイズ分半角スペース分の空白ができていることに起因します。
 


 

下記のようにli要素を詰めて記載すると隙間は無くなります。

 

しかし、視認性が悪くなるため、ul要素のフォントサイズを0に、li要素のフォントサイズを16px(通常の値)などに設定する方法がよく取られます。
 

■上記のソースコード