コンテンツにスキップ

サイドバー

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
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <title>サイドバー</title>
  </head>
  <body>
    <div class="sidebar">
      <nav>
        <ul class="sidebar__ul">
          <li>
            <a href="#">項目1</a>
          </li>
          <li>
            <a href="#">項目2</a>
          </li>
          <li>
            <a href="#">項目3</a>
          </li>
          <li>
            <a href="#">項目4</a>
          </li>
          <li>
            <a href="#">項目5</a>
          </li>
          <li>
            <a href="#">項目6</a>
          </li>
          <li>
            <a href="#">項目7</a>
          </li>
          <li>
            <a href="#">項目8</a>
          </li>
          <li>
            <a href="#">項目9</a>
          </li>
          <li>
            <a href="#">項目10</a>
          </li>
        </ul>
      </nav>
    </div>
    <div class="content">
      <main>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
        <p>コンテンツ</p>
      </main>
    </div>
  </body>
</html>

CSS

 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
:root {
  --width-sidebar: 200px;
  --screen-width-tablet: 768px;
  --screen-width-phone: 480px;
  --color-border: #7f7f7f;
}

* {
  margin: 0;
  padding: 0;
}

.sidebar {
  position: fixed;
  width: var(--width-sidebar);
  height: 100%;
  overflow: auto;
  border-right: 1px solid var(--color-border);
}

.sidebar__ul {
  /* 縦並びのリストにする */
  display: flex;
  flex-direction: column;

  /* ul要素のスタイリングを消す */
  padding: 0;
  margin: 0;
  list-style: none;

  li {
    a {
      display: block;
      padding: 8px;
    }
  }
}

.content {
  margin-left: var(--width-sidebar);
}

/* 横幅700px以下の場合 */
@media screen and (width <= 768px) {
  /* サイドバーとコンテンツを縦に並べる */
  .sidebar {
    position: relative; /* 常に表示したい場合は position: sticky; top: 0; */
    width: 100%;

    /* 縦の線を横の線にする */
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }

  .content {
    margin-left: 0;
  }

  /* リストを横並びにする */
  .sidebar__ul {
    flex-direction: row;
  }
}

@media screen and (width <= 480px) {
  /* リストを縦並びにする */
  .sidebar__ul {
    flex-direction: column;
  }
}