実戦練習(HTML/CSS/JS):Navbar


実戦練習


反応型Navbarを作りました
リファレンスサイト
https://www.youtube.com/watch?v=X91jsJyZofw

💡 オーダー

  • レイアウト計画
  • HTML構造
  • の作成
  • CSSスタイル
  • JavaScriptを使用してイベント
  • を処理
  • CSS変数
  • HTML

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Nav bar</title>
        <link rel="stylesheet" href="style.css">
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap" rel="stylesheet">
        <script src="https://kit.fontawesome.com/b17d4fa9e7.js" crossorigin="anonymous"></script>
        <script src="main.js" defer></script>
    </head>
    <body>
        <nav class="navbar">
            <div class="navbar__logo">
                <i class="fab fa-accusoft"></i>
                <a href="">DreamCoding</a>
            </div>
    
            <ul class="navbar__menu">
                <li><a href="">Home</a></li>
                <li><a href="">Gallery</a></li>
                <li><a href="">Wedding</a></li>
                <li><a href="">FAQ</a></li>
                <li><a href="">Booking</a></li>
            </ul>
    
            <ul class="navbar__icons">
                <li><i class="fab fa-twitter"></i></li>
                <li><i class="fab fa-facebook-f"></i></li>
            </ul>
    
            <a href="#" class="navbar__toogleBtn">
                <i class="fas fa-bars"></i>
            </a>
        </nav>
    </body>
    </html>

    CSS

    :root{
        --text-color: #f0f4f5;
        --background-color: #263343;
        --accent-color:#d49466;
    }
    
    body {
        margin: 0px;
        font-family: 'Open sans';
    }
    
    a {
        text-decoration: none;
        color: white;
    }
    
    .navbar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        background:#263343;
        padding: 8px 12px;
    }
    
    .navbar__logo {
        font-size: 24px;
        color: white;
    }
    
    .navbar__logo i {
        color: #d49466;
    }
    
    .navbar__menu {
        display: flex;
        list-style: none;
        padding-left: 0px;
    }
    
    .navbar__menu li {
        padding: 8px 12px;
    
    }
    
    .navbar__menu :hover {
        background: #d49466;
        border-radius: 4px;
    }
    
    .navbar__icons {
        list-style: none;
        color: white;
        display: flex;
        padding-left: 0px;
    }
    
    .navbar__icons li {
        padding: 8px 12px;
    }
    
    .navbar__toogleBtn {
        display: none;
        position: absolute;
        right: 32px;
        font-size: 24px;
        color: #d49466;
    }
    
    @media screen and (max-width: 768px) {
        .navbar {
            flex-direction: column;
            align-items: flex-start;
            padding: 8px 24px;
        }
        
        .navbar__menu {
            display: none;
            flex-direction: column;
            align-items: center;
            width: 100%;
        }
    
        .navbar__menu li {
            width: 100%;
            text-align: center;
        }
    
        .navbar__icons {
            display: none;
            justify-content: center;
            width: 100%;
        }
    
        .navbar__toogleBtn {
            display: block;
        }
    
        .navbar__menu.active,
        .navbar__icons.active {
            display: flex;
        }
    }

    Javascript

    const toggleBtn = document.querySelector('.navbar__toogleBtn');
    const menu = document.querySelector('.navbar__menu');
    const icons = document.querySelector('.navbar__icons');
    
    toggleBtn.addEventListener('click', () => {
        menu.classList.toggle('active')
        icons.classList.toggle('active')
    });

    ▼▼▼完成


    理論と文法を学ぶのはいいが、自分でもっと良い記憶を作り、実力を高めるのに役立つ.次に、反応型のYouTubeサイトを作成します.面白かったけど難しかった…😇