실전연습(HTML/CSS/JS) : Nav bar
28610 단어 CSSJacaScript실전연습htmlCSS
✏️ 실전연습
반응형 Navbar를 만들어봤습니다.
💡 순서
- 레이아웃 구조의 계획
- 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')
});
✏️ 완성
이론과 문법을 배우는 것도 좋지만, 역시 직접 아웃풋을 만들어봐야 더 기억에도 남고 실력 향상에 도움이 됩니다. 다음은 유튜브 사이트를 반응형으로 만들어볼 계획 입니다. 재미있긴 한데 아직 어렵다..😇
Author And Source
이 문제에 관하여(실전연습(HTML/CSS/JS) : Nav bar), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leesegho/실전연습HTMLCSSJS-Nav-bar저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)