CodeGym /Javaコース /Frontend SELF JA /複雑なレイアウトの作成

複雑なレイアウトの作成

Frontend SELF JA
レベル 22 , レッスン 4
使用可能

10.1 二カラムレイアウト

ウェブページで複雑なレイアウトを作成するには、さまざまな配置方法とその組み合わせを深く理解する必要があるんだ。 この講義では、CSSのFlexboxやGrid、伝統的なポジショニングなど、いくつかの技法を使った複雑なレイアウトの実例を見ていくよ。

固定ナビゲーション付きのブログレイアウト

このレイアウトにはヘッダー、固定ナビゲーションバー、メインコンテンツとサイドバーが含まれているよ。

例:

CSS
    
      body {
        margin: 0;
        font-family: Arial, sans-serif;
      }

      .header {
        background-color: #333;
        color: white;
        padding: 20px;
        text-align: center;
      }

      .navbar {
        position: fixed;
        top: 0;
        width: 100%;
        background-color: #444;
        color: white;
        padding: 10px;
        box-sizing: border-box;
        z-index: 1000;
      }

      .container {
        display: flex;
        margin-top: 60px; /* 固定されたナビゲーションの高さ */
      }

      .main-content {
        flex: 3;
        padding: 20px;
      }

      .sidebar {
        flex: 1;
        padding: 20px;
        background-color: #f4f4f4;
      }

      .footer {
        background-color: #333;
        color: white;
        padding: 20px;
        text-align: center;
        position: relative;
        margin-top: auto;
      }
    
  
HTML
    
      <div class="header">My Blog</div>
      <div class="navbar">Navigation</div>
      <div class="container">
        <div class="main-content">
          <h1>Main Content</h1>
          <p>ここにブログのメインコンテンツがあります。</p>
        </div>

        <div class="sidebar">
          <h2>Sidebar</h2>
          <p>リンクやその他のコンテンツ。</p>
        </div>
      </div>
      <div class="footer">Footer</div>
    
  

この例では、固定ナビゲーションバーはposition: fixedのおかげでページをスクロールしてもそのままの位置に留まるんだ。 メインコンテンツとサイドバーはFlexboxを使って2つのカラムに配置されているよ。

10.2 シングルページサイト

固定されたヘッダーとフッターを持つシングルページサイト

このレイアウトにはヘッダー、メインコンテンツ、フッターが含まれているんだ。ヘッダーとフッターはページをスクロールしても見えるよ。

例:

CSS
    
      body {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        margin: 0;
        font-family: Arial, sans-serif;
      }

      .header {
        background-color: #333;
        color: white;
        padding: 20px;
        text-align: center;
        position: sticky;
        top: 0;
        z-index: 1000;
      }

      .main {
        flex: 1;
        padding: 20px;
        background-color: #f4f4f4;
      }

      .footer {
        background-color: #333;
        color: white;
        padding: 20px;
        text-align: center;
        position: sticky;
        bottom: 0;
        z-index: 1000;
      }
    
  
HTML
    
      <div class="header">Sticky Header</div>
      <div class="main">
        <h1>Main Content</h1>
        <p>ここにページのメインコンテンツがあります。スクロールしてスティッキーヘッダーとフッターを観察してみてね。</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque luctus lectus eu tortor vehicula, et convallis lacus varius. Integer at orci in nisl faucibus placerat.</p>
      </div>
      <div class="footer">Sticky Footer</div>
    
  

この例では、ヘッダーとフッターはposition: stickyのおかげでページをスクロールしても視界に残るんだ。

10.3 多層ナビゲーションバー

このレイアウトには入れ子リストと擬似クラスを使った多層ナビゲーションパネルが含まれていて、 ドロップダウンメニューを作成することができるんだ。

例:

CSS
    
      body {
        margin: 0;
        font-family: Arial, sans-serif;
      }

      .navbar {
        background-color: #333;
        overflow: hidden;
      }

      .navbar ul {
        list-style-type: none;
        padding: 0;
        margin: 0;
        position: relative;
      }

      .navbar li {
        float: left;
      }

      .navbar li a {
        display: block;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
      }

      .navbar li a:hover {
        background-color: #111;
      }

      .navbar li ul {
        display: none;
        position: absolute;
        background-color: #333;
      }

      .navbar li:hover ul {
        display: block;
      }

      .navbar li ul li {
        float: none;
      }

      .navbar li ul li a {
        padding: 14px 16px;
      }
    
  
HTML
    
      <div class="navbar">
        <ul>
          <li><a href="#">Home</a></li>
          <li><a href="#">Services</a>
            <ul>
              <li><a href="#">Web Design</a></li>
              <li><a href="#">SEO</a></li>
              <li><a href="#">Marketing</a></li>
            </ul>
          </li>
          <li><a href="#">About</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </div>
    
  
1
Опрос
ドキュメントフロー,  22 уровень,  4 лекция
недоступен
ドキュメントフロー
ドキュメントフロー
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION