teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

疑似要素を使うよう修正

2020/09/17 01:51

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -9,10 +9,12 @@
9
9
 
10
10
  リスト項目を横に並べたいだけなら、ul要素のスタイルに`display: flex;`を指定し、li要素のスタイルには`flex: auto;`を指定するだけです。
11
11
 
12
- ほかmenu要素の中にul要素は入れられないし、対応してるブラウザーも少ないので、`<div class="menu"></div>`で代替べきでう。
12
+ どうやら、「項目先頭に画像を表示しつつリスト項目の中内容を表示した」らしいので、`list-style-image`を使わず、before疑似要素画像を表示るよう修正ました。dit.さん、ありがとございます
13
13
 
14
+ そのほか、menu要素の中にul要素は入れられないし、対応しているブラウザーも少ないので、ナビゲーションにするならばnav要素に代えるべきでしょう。
15
+
14
16
  ```HTML
15
- <div class="menu">
17
+ <nav>
16
18
  <ul>
17
19
  <li>1番目</li>
18
20
  <li>2番目</li>
@@ -20,26 +22,39 @@
20
22
  <li>4番目</li>
21
23
  <li>5番目</li>
22
24
  </ul>
23
- </div>
25
+ </nav>
24
26
  ```
25
27
 
26
28
  ```CSS
27
- .menu {
29
+ nav {
28
30
  height: 62px;
29
31
  }
30
32
 
31
- .menu ul {
33
+ nav ul {
32
34
  display: flex;
33
- list-style-image: url(../images/740ver2.png);
34
35
  height: 62px;
36
+ padding-left: 0;
35
37
  }
36
38
 
37
- .menu ul li {
39
+ nav ul li {
40
+ border: 1px solid red; /* 確認用 */
38
41
  flex: auto;
42
+ display: flex;
43
+ align-items: center;
39
- border: 1px solid red; /* 確認用 */
44
+ justify-content: center;
40
45
  }
41
46
 
47
+ nav ul li:before {
48
+ content: "";
49
+ display: inline-block;
50
+ width: 55px; /* 画像のサイズに合わせる */
51
+ height: 62px; /* 画像のサイズに合わせる */
52
+ background-image: url(../images/740ver2.png);
53
+ background-size: contain;
54
+ vertical-align: middle;
55
+ }
56
+
42
- .menu ul li:hover {
57
+ nav ul li:hover {
43
58
  background-color: #ebe5ff;
44
59
  }
45
60
  ```