• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:写真の上0pxにタイトルバーをhtmlで作りたい)

写真の上にタイトルバーを作成する方法

このQ&Aのポイント
  • HTMLで写真の真上に色付きのタイトルバーを作る方法を教えてください。
  • 写真と写真の横幅の間には30pxの間隔をあけ、上下には50pxの余白を設けたいです。
  • また、ウインドウ幅が狭くなってもレイアウトが崩れないようにしたいです。どうすればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まずhtmlの方をすっきり簡単にしましょう。 今回は写真の一覧なので、ulタグを使います。 liタグの中にタイトルの文字と画像を入れます。 <div id="Gallery"> <ul> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> <li>うさぎ<a href="" ><img src="" alt="" width="350" height="270" /></a></li> </ul> </div> cssの方ではまずブラウザの初期の余白を消します。 #Gallery, #Gallery * { margin: 0; padding: 0; } 横に並べるのにfloatを使います。今回はli要素に指定します。 floatを使う時はwidthとdisplay:inline;を一緒に指定します。 さらに横に並べた時の余白と背景色もここで指定します。余白は上と左に指定して間隔を取っていきます。 下の分の余白をul要素に指定します。(省略できる右への指定は省きます。) floatは本来clearしなければならないのですが、上手く指定できる要素が無いので代わりにul要素にoverflow:hidden;を指定します。 #Gallery, #Gallery * { margin: 0; padding: 0; } #Gallery ul { overflow:hidden; padding-bottom: 50px; } #Gallery ul li { display: inline; width: 350px; float: left; margin: 50px 0 0 30px; background: #ffcc66; } 基本的にインラインボックスはバグが起こりやすかったり、デザインの統一が取りにくいので画像周りはブロックボックスにします。 ついでにリンク画像のボーダーも消します。 #Gallery, #Gallery * { margin: 0; padding: 0; } #Gallery ul { overflow:hidden; padding-bottom: 50px; } #Gallery ul li { display: inline; width: 350px; float: left; margin: 50px 0 0 30px; background: #ffcc66; } #Gallery ul li a, #Gallery ul li img { display: block; border: 0; } 最後に全体をセンタリングします。 margin: auto;でのセンタリング時には幅を指定する必要があります。幅は余白を含めると1170pxです。 古いIEはtext-align:center;のバグを利用してセンタリングします。この指定でついでにタイトル文字もセンタリングできます。 #Gallery, #Gallery * { margin: 0; padding: 0; } #Gallery { text-align: center; } #Gallery ul { width:1170px; margin:auto; overflow:hidden; padding-bottom: 50px; } #Gallery ul li { display: inline; width: 350px; float: left; margin: 50px 0 0 30px; background: #ffcc66; } #Gallery ul li a, #Gallery ul li img { display: block; border: 0; } 完成です。

orehatens
質問者

お礼

バッチシです。 丁寧な解説とご指導有難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A