第3章 - 0011 mod-media-0002を作ろう

この節について

この節では2つ目のmediaモジュールを作成します。
今回もModifierクラスは無く、少し多めのElementクラスがあるだけです。

今回も基本に忠実にBlockクラスとElementクラスでモジュールを作成していきましょう。

Block名を決める

今回のBlock名は mod-media-0002 にします。

scssファイルの作成

ファイル名の命名規則は _Block名.scss です。

先ほど決めたBlock名の先頭にアンダースコア(_)を足したものがファイル名になりますので src/scss/modules/_mod-media-0002.scss を作成します。

モジュールの作成

今回も完成形のコードだけを載せておこうと思います。

ざっくり丸ごとコピー&ペーストするのも良いと思いますし、付与されているクラス名を一つひとつ確認しながら進めるのも良いと思います。
それぞれの習熟度に合わせて進めてください。

section要素を5回繰り返しているので、そこは単純にコピー&ペーストをしてください。

以下の通りHTMLを記述します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<div class="mod-media-0002">
<div class="mod-media-0002__inner">
<section class="mod-media-0002__item">
<a href="#" class="mod-media-0002__item-inner">
<div class="mod-media-0002__text-area">
<h2 class="mod-media-0002__heading">
<span class="mod-media-0002__main-heading">記事タイトル</span>
<span class="mod-media-0002__sub-heading">ブログタイトル</span>
</h2>
<p class="mod-media-0002__main-text">
あああああいいいいいうううううえええええおおおおおかかかかかきききききくくくくくけけけけけこここここさささささしししししすすすすすせせせせせそそそそそ
</p>
<div class="mod-media-0002__sub-text">
13時間前
</div>
</div>
<div class="mod-media-0002__image-area">
<img src="../images/sample-0001.png" alt="" class="mod-media-0002__image">
</div>
</a>
</section>
<section class="mod-media-0002__item">
<a href="#" class="mod-media-0002__item-inner">
<div class="mod-media-0002__text-area">
<h2 class="mod-media-0002__heading">
<span class="mod-media-0002__main-heading">記事タイトル</span>
<span class="mod-media-0002__sub-heading">ブログタイトル</span>
</h2>
<p class="mod-media-0002__main-text">
あああああいいいいいうううううえええええおおおおおかかかかかきききききくくくくくけけけけけこここここさささささしししししすすすすすせせせせせそそそそそ
</p>
<div class="mod-media-0002__sub-text">
13時間前
</div>
</div>
<div class="mod-media-0002__image-area">
<img src="../images/sample-0001.png" alt="" class="mod-media-0002__image">
</div>
</a>
</section>
<section class="mod-media-0002__item">
<a href="#" class="mod-media-0002__item-inner">
<div class="mod-media-0002__text-area">
<h2 class="mod-media-0002__heading">
<span class="mod-media-0002__main-heading">記事タイトル</span>
<span class="mod-media-0002__sub-heading">ブログタイトル</span>
</h2>
<p class="mod-media-0002__main-text">
あああああいいいいいうううううえええええおおおおおかかかかかきききききくくくくくけけけけけこここここさささささしししししすすすすすせせせせせそそそそそ
</p>
<div class="mod-media-0002__sub-text">
13時間前
</div>
</div>
<div class="mod-media-0002__image-area">
<img src="../images/sample-0001.png" alt="" class="mod-media-0002__image">
</div>
</a>
</section>
<section class="mod-media-0002__item">
<a href="#" class="mod-media-0002__item-inner">
<div class="mod-media-0002__text-area">
<h2 class="mod-media-0002__heading">
<span class="mod-media-0002__main-heading">記事タイトル</span>
<span class="mod-media-0002__sub-heading">ブログタイトル</span>
</h2>
<p class="mod-media-0002__main-text">
あああああいいいいいうううううえええええおおおおおかかかかかきききききくくくくくけけけけけこここここさささささしししししすすすすすせせせせせそそそそそ
</p>
<div class="mod-media-0002__sub-text">
13時間前
</div>
</div>
<div class="mod-media-0002__image-area">
<img src="../images/sample-0001.png" alt="" class="mod-media-0002__image">
</div>
</a>
</section>
<section class="mod-media-0002__item">
<a href="#" class="mod-media-0002__item-inner">
<div class="mod-media-0002__text-area">
<h2 class="mod-media-0002__heading">
<span class="mod-media-0002__main-heading">記事タイトル</span>
<span class="mod-media-0002__sub-heading">ブログタイトル</span>
</h2>
<p class="mod-media-0002__main-text">
あああああいいいいいうううううえええええおおおおおかかかかかきききききくくくくくけけけけけこここここさささささしししししすすすすすせせせせせそそそそそ
</p>
<div class="mod-media-0002__sub-text">
13時間前
</div>
</div>
<div class="mod-media-0002__image-area">
<img src="../images/sample-0001.png" alt="" class="mod-media-0002__image">
</div>
</a>
</section>
</div>
</div>

以下の通りscssを記述します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
.mod-media-0002 {
.mod-media-0002__inner {
display: flex;
flex-wrap: wrap;
margin-left: -16px;
@media #{$g__is-md} {
display: block;
margin-left: 0;
}
}
.mod-media-0002__item {
max-width: 20%;
flex: 0 0 20%;
padding-left: 16px;
box-sizing: border-box;
@media #{$g__is-md} {
max-width: 100%;
margin-left: 0;
padding-left: 0;
}
& + .mod-media-0002__item {
@media #{$g__is-md} {
margin-top: 16px;
}
}
}
.mod-media-0002__item-inner {
display: flex;
flex-direction: column-reverse;
padding: 8px 0;
text-decoration: none;
@media #{$g__is-md} {
flex-direction: row-reverse;
}
}
.mod-media-0002__text-area {
flex: 0 0 auto;
padding-left: 0;
@media #{$g__is-md} {
max-width: 80%;
flex: 0 0 80%;
padding-left: 8px;
box-sizing: border-box;
}
}
.mod-media-0002__image-area {
height: 120px;
overflow: hidden;
background: #f7f7f7;
@media #{$g__is-md} {
height: 104px;
}
}
.mod-media-0002__heading-area {
}
.mod-media-0002__main-heading {
display: block;
font-size: 20px;
font-weight: 700;
color: #222222;
@media #{$g__is-md} {
font-size: 20px;
}
}
.mod-media-0002__sub-heading {
display: block;
font-size: 18px;
font-weight: 700;
color: #555555;
@media #{$g__is-md} {
font-size: 18px;
}
}
.mod-media-0002__main-text-area {
margin-top: 8px;
font-size: 16px;
overflow: hidden;
width: 100%;
}
.mod-media-0002__main-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: #222222;
}
.mod-media-0002__sub-text {
font-size: 12px;
color: #555555;
}
.mod-media-0002__image {
object-fit: cover;
height: 100%;
width: 100%;
@media #{$g__is-md} {
object-fit: contain;
}
}
}

この節のおわりに

今回もElementクラスの数が多いだけで基本的な構成になりました。
少し退屈した方もいると思いますし、良い練習になったという方もいると思います。

表示確認

public/html/module-list.html をブラウザで開いて確認してみてください。

続きはこちら

とてもやさしいCSS設計チュートリアルの目次へ戻る