※ ChatGPTを利用し、要約された質問です(原文:CSSで縦長・横長の写真を一定に並べたい)
CSSで縦長・横長の写真を一定に並べる方法
このQ&Aのポイント
CSSを使用して、縦長と横長の写真を一定に並べる方法を解説します。
写真のギャラリーのようなものを作成していますが、横長写真の上下位置が中央になりません。
テーブルではなくCSSで行う方法を探しています。どなたか解決策をご存知の方、教えてください。
写真のギャラリーのようなものを作成しています。
写真のサムネイルが200×150pxのものと150×200pxのものがあり、並びはランダムです。
この写真を正方形の方眼紙に並べるように配置したいと思っています。
テーブルで作成すれば楽なのですが、文書構造的にCSSで行いたいと思っています。
リストでマークアップして、それぞれのli要素を200pxの正方形にしてから、その中央に画像を表示させたいのですが…
縦長の写真はtext-align:center;で処理ができるので、できましたが、横長写真の上下位置が中央になりません。
横長写真が入っているli要素だけに対してクラスを指定すればできそうなのですが、数が多いので、一括で処理できないか、と奮闘しております。
試しにli要素に対してline-heightを200pxで指定し、img要素に対してvertical-alignをmiddleで指定してみたのですが、Firefoxではうまくいくものの、IE(8)でNGでした。
現在のソースは以下の通りです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ギャラリー</title>
<style type="text/css">
<!--
#content {
width: 612px;
}
#content ul {
margin: 0px;
padding: 0px;
}
#content li {
list-style: none;
line-height: 200px;
float: left;
height: 200px;
width: 200px;
text-align: center;
border: 2px solid #009933;
}
#content li img {
vertical-align: middle;
}
-->
</style>
</head>
<body>
<div id="content">
<ul>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
<li><img src="images/yoko.gif" alt="横" width="200" height="150" /></li>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
<li><img src="images/tate.gif" alt="縦" width="150" height="200" /></li>
</ul>
</div>
</body>
</html>
どなたかお分かりになる方、いらっしゃいましたら、お知恵を拝借できれば幸いです。
よろしくお願い致します。
お礼
ありがとうございます! そう!まさにこれがやりたかったんです! 参考URLのおかげで、無事に解決できました。 li要素の下にp要素を入れ子にするところまで考えていませんでした。。。