HTML, CSS 및 Javascript를 사용하는 반응형 Navbar
13402 단어 webdevcssjavascriptbeginners
그래서 오늘은 HTML CSS와 바닐라 자바스크립트를 사용하여 반응형 내비게이션 바를 만들어 보겠습니다.
참고: 모바일 우선 설계입니다.
비디오를 선호하는 경우. 나는 또한 비디오를 만들었습니다. 여기에서 볼 수 있습니다.
시작합시다 🎉🎉
파트 1: HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="styles.css" />
<title>responsive navbar</title>
</head>
<body>
<header>
<nav class="nav">
<a href="/" class="logo">logo</a>
<div class="hamburger">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
<div class="nav__link hide">
<a href="#">home</a>
<a href="#">about</a>
<a href="#">contact</a>
<a href="#">blog</a>
</div>
</nav>
</header>
</body>
<script src="./script.js"></script>
</html>
위에서 우리는 햄버거로 navbar의 마크업을 얻었습니다.
CSS와 javascript 파일도 연결했습니다.
CSS로 이 마크업의 스타일을 지정하는 방법을 살펴보겠습니다.
부분: CSS 2개
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: sans-serif;
}
a {
text-decoration: none;
color: black;
font-size: 1.2rem;
font-weight: bold;
text-transform: uppercase;
}
여기에서 일부 기본 스타일을 제거하고 일부 스타일을 a 태그에 추가했습니다.
/* nav styles */
.nav {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 20px;
}
.logo {
font-size: 1.8rem;
color: rgb(5, 5, 116);
padding-left: 20px;
}
.hamburger {
padding-right: 20px;
cursor: pointer;
}
.hamburger .line {
display: block;
width: 40px;
height: 5px;
margin-bottom: 10px;
background-color: black;
}
.nav__link {
position: fixed;
width: 94%;
top: 5rem;
left: 18px;
background-color: lightblue;
}
.nav__link a {
display: block;
text-align: center;
padding: 10px 0;
}
.nav__link a:hover {
background-color: lightcoral;
}
.hide {
display: none;
}
메인 디자인입니다. 여기서 우리는 navbar에 햄버거와 로고의 스타일을 지정했습니다.
모바일 디자인이 완성되었습니다.
이제 데스크탑 디자인을 살펴보겠습니다.
@media screen and (min-width: 600px) {
.nav__link {
display: block;
position: static;
width: auto;
margin-right: 20px;
background: none;
}
.nav__link a {
display: inline-block;
padding: 15px 20px;
}
.hamburger {
display: none;
}
}
데스크톱 디자인에서는 절대 위치를 제거하고 디스플레이 블록으로 만들었습니다.
그리고 nav__link에 display inline-block을 추가하여 링크가 서로 옆에 있도록 했습니다.
마지막으로 .hamburger에 display none을 추가했습니다.
마지막으로 한 가지가 남았습니다. 이제 햄버거를 클릭 가능하게 만들어야 합니다.
파트 3: 자바스크립트
const hamburger = document.querySelector('.hamburger');
const navLink = document.querySelector('.nav__link');
hamburger.addEventListener('click', () => {
navLink.classList.toggle('hide');
});
여기에서 햄버거에 클릭 이벤트를 추가하고 navLink에 classList.toggle을 추가했습니다.
classList.toggle이 하는 일은 주어진 클래스를 사용할 수 있으면 클래스를 제거하고 사용할 수 없으면 추가하는 것입니다.
소스 코드: https://github.com/Coderamrin/responsive-navbar-css-js
실시간 미리보기: https://coderamrin.github.io/responsive-navbar-css-js/
결론
읽어 주셔서 감사합니다.
마음에 드셨다면 팔로우 잊지마세요
또한 프로그래밍 튜토리얼과 비디오를 공유하는 YouTube 채널을 시작했습니다. 잘 들린다면 다음을 확인하십시오.
좋은 시간 되세요 :D
Reference
이 문제에 관하여(HTML, CSS 및 Javascript를 사용하는 반응형 Navbar), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coderamrin/responsive-navbar-using-html-css-and-javascript-1jo4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)