Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

HTML과 CSS로 로그인 폼이 포함된 반응형 내비게이션 메뉴 만드는 방법

반응형 웹 디자인에서 내비게이션 바는 화면 크기에 맞춰 레이아웃이 자동으로 조정되어야 합니다. 아래 예제는 HTML과 CSS만을 사용해 로그인 폼이 포함된 반응형 내비게이션 메뉴를 구현한 것입니다. 데스크톱 화면에서는 메뉴 링크와 로그인 입력란이 한 줄에 배치되고, 화면이 좁아지면 세로로 정렬되도록 동작합니다.

예제 코드

다음은 로그인 폼이 포함된 반응형 내비게이션 메뉴의 전체 코드입니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
    margin: 0px;
    margin-top: 10px;
    padding: 0px;
}
nav {
    width: 100%;
    background-color: rgb(39, 39, 39);
    overflow: auto;
    height: auto;
}
.links {
    display: inline-block;
    text-align: center;
    padding: 14px;
    color: rgb(178, 137, 253);
    text-decoration: none;
    font-size: 17px;
}
.links:hover {
    background-color: rgb(100, 100, 100);
}
form {
    float: right;
    margin-top: 8px;
}
form input{
    display: inline-block;
    padding: 6px;
    font-size: 17px;
    margin-right: 8px;
    border:none;
}
.selected {
    background-color: rgb(0, 18, 43);
}
@media screen and (max-width: 977px) {
.links {
    display: block;
}
form {
    display: block;
    color:white;
}
form input{
    margin-right: 0px;
    display: block;
    width: 100vw;
    margin: 0px;
    border-bottom: 2px solid rgb(178, 137, 253);
    text-align: center;
}
}
</style>
</head>
<body>
    <nav>
        <a class="links selected" href="#">
            Home
        </a>
        <a class="links" href="#">
            Login
        </a>
        <a class="links" href="#">
            Register
        </a>
        <a class="links" href="#">
            Contact Us
        </a>
        <a class="links" href="#">
            More Info
        </a>
        <form>
            <input type="text" placeholder="UserName..." />
            <input type="password" placeholder="Password...">
        </form>
    </nav>
</body>
</html>

코드 설명

  • nav 요소에는 어두운 배경색과 overflow: auto 속성을 적용해 내용이 넘칠 경우 자동으로 조절되도록 했습니다.
  • .links 클래스는 display: inline-block으로 설정되어 데스크톱 환경에서는 메뉴 항목들이 가로로 나열됩니다. 마우스를 올리면(:hover) 배경색이 변경되어 시각적인 피드백을 제공합니다.
  • formfloat: right로 오른쪽에 배치되어 아이디(UserName)와 비밀번호(Password) 입력란을 표시합니다.
  • @media screen and (max-width: 977px) 미디어 쿼리를 사용해 화면 너비가 977px 이하로 줄어들면 링크와 입력 필드가 display: block으로 전환되어 세로로 쌓입니다.
  • 모바일 환경에서는 입력 필드가 width: 100vw로 확장되고 하단에 보라색 테두리가 추가되어 작은 화면에서도 입력하기 편리합니다.

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

HTML과 CSS로 로그인 폼이 포함된 반응형 내비게이션 메뉴 만드는 방법

브라우저 창 크기를 977px 이하로 줄이면 미디어 쿼리가 작동하여 nav 내부의 콘텐츠가 다음과 같이 세로로 재배치됩니다.

HTML과 CSS로 로그인 폼이 포함된 반응형 내비게이션 메뉴 만드는 방법