【ソースコード】番外編:行数が異なる画像の横並びの練習
目次
※コーディングの解説はCSSのコメントを参照
ディレクトリ構成
extra3
├─img
│ ├─project1.jpg
│ ├─project2.jpg
│ ├─project3.jpg
│ ├─project4.jpg
│ ├─project5.jpg
│ ├─project6.jpg
│ └─project7.jpg
│
├─css
│ └─style.css
│
└─index.html
HTML(index.html)
別タブで開く
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>タイトル</title>
<meta name="description" content="テキストテキストテキストテキストテキストテキスト">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="content">
<h2 class="title">PROJECT</h2>
<div class="flex">
<div class="left">
<img src="img/project1.jpg" alt="">
</div>
<ul class="right">
<li><img src="img/project2.jpg" alt=""></li>
<li><img src="img/project3.jpg" alt=""></li>
<li><img src="img/project4.jpg" alt=""></li>
<li><img src="img/project5.jpg" alt=""></li>
<li><img src="img/project6.jpg" alt=""></li>
<li><img src="img/project7.jpg" alt=""></li>
</ul>
</div>
</div>
</body>
</html>
CSS(style.css)
別タブで開く
style.css
@charset "UTF-8";
html {
font-size: 100%;
}
img {
max-width: 100%;
/* 画像の下にできる隙間を削除 */
vertical-align: bottom;
}
ul {
/* リストの先頭にマーカーを表示しない */
list-style: none;
}
.content {
max-width: 1200px;
padding: 0 20px;
margin: 100px auto;
}
.title {
font-size: 1rem;
font-weight: normal;
margin-bottom: 80px;
}
.flex {
display: flex;
}
.flex .left {
width: 40%;
}
/*
align-content: space-between;
均等配置にして上下を揃える
*/
.flex .right {
width: 60%;
display: flex;
align-content: space-between;
flex-wrap: wrap;
}
/*
「width: calc(100%/3);」で横幅を3等分した後、
「padding-left: 12px;」で左側にパディングを設定
*/
.flex .right li {
width: calc(100%/3);
padding-left: 12px;
}
/*-------------------------------------------
SP
-------------------------------------------*/
@media screen and (max-width: 900px) {
/*
左側の画像と右側の画像を縦に並べる
*/
.flex {
flex-direction: column;
}
.flex .left {
width: 100%;
padding-bottom: 12px;
}
.flex .right {
width: 100%;
}
/*
「width: 50%;」で右側の画像は2列に並べる
*/
.flex .right li {
width: 50%;
padding: 0 0 12px 0;
}
/*
奇数番目の画像は右にパディングを設定
*/
.flex .right li:nth-child(odd) {
padding-right: 6px;
}
/*
偶数番目の画像は左にパディングを設定
*/
.flex .right li:nth-child(even) {
padding-left: 6px;
}
}