메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

UI TOP메뉴 사이드바 만들기

데브카페
Devcafe (토론 | 기여)님의 2025년 5월 26일 (월) 13:13 판 (새 문서: == 탑메뉴 만들기 == <source lang=js> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Top Menu Example</title> <style> body { margin: 0; font-family: Arial, sans-serif; } .top-menu { display: flex; justify-content: flex-end; background-color: #2c3e50; padding: 10px 20px; position: fixed; top: 0; width: 100%; z-index: 1000; } .menu-group { position: relative;...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
== 탑메뉴 만들기 ==
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Top Menu Example</title>
  <style>
    body {
      margin: 0;
      font-family: Arial, sans-serif;
    }

    .top-menu {
      display: flex;
      justify-content: flex-end;
      background-color: #2c3e50;
      padding: 10px 20px;
      position: fixed;
      top: 0;
      width: 100%;
      z-index: 1000;
    }

    .menu-group {
      position: relative;
      margin-left: 20px;
    }

    .menu-link {
      color: #ecf0f1;
      font-size: 16px;
      text-decoration: none;
      padding: 8px;
      display: inline-block;
    }

    .menu-link:hover {
      background-color: #34495e;
      border-radius: 5px;
    }

    .dropdown {
      display: none;
      position: absolute;
      right: 0;
      top: 40px;
      background-color: #fff;
      border: 1px solid #ccc;
      min-width: 150px;
      box-shadow: 0px 2px 5px rgba(0,0,0,0.2);
      z-index: 999;
    }

    .dropdown a {
      display: block;
      padding: 10px;
      color: #2c3e50;
      text-decoration: none;
    }

    .dropdown a:hover {
      background-color: #f1f1f1;
    }

    .menu-group:hover .dropdown {
      display: block;
    }

    .main {
      margin-top: 60px;
      padding: 20px;
    }
  </style>
</head>
<body>

  <div class="top-menu">
    <div class="menu-group">
      <a class="menu-link" href="#">User ▾</a>
      <div class="dropdown">
        <a href="/login.html">Login</a>
        <a href="/register.html">Register</a>
        <a href="/profile.html">Profile</a>
      </div>
    </div>
    <div class="menu-group">
      <a class="menu-link" href="#">Settings ▾</a>
      <div class="dropdown">
        <a href="/preferences.html">Preferences</a>
        <a href="/notifications.html">Notifications</a>
        <a href="/privacy.html">Privacy</a>
      </div>
    </div>
    <div class="menu-group">
      <a class="menu-link" href="#">Help ▾</a>
      <div class="dropdown">
        <a href="/docs.html">Documentation</a>
        <a href="/support.html">Support</a>
      </div>
    </div>
  </div>

  <div class="main">
    <h1>Welcome</h1>
    <p>This is your main content area. The top menu stays fixed at the top.</p>
  </div>

</body>
</html>

탑메뉴 + 접히는 사이드 바

<!DOCTYPE html>
<html>
<head>
<title>Top Menu (Sub-menu) & 접히는 메뉴 Sidebar</title>
<style>
body {
    font-family: sans-serif;
    margin: 0;
    padding: 0;
    display: flex;
}

/* Top Menu 스타일 */
.top-menu {
    background-color: #333;
    color: white;
    padding: 15px;
    display: flex;
    justify-content: space-around; /* 3개 메뉴 균등 배치 */
    align-items: center;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 100;
}

.top-menu-item {
    position: relative;
}

.top-menu-link {
    color: white;
    text-decoration: none;
    padding: 10px 15px;
    display: block;
}

.top-menu-link:hover {
    background-color: #555;
}

.sub-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #444;
    position: absolute;
    top: 100%;
    left: 0;
    width: 150px;
    border: 1px solid #555;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    display: none; /* 초기 숨김 */
    z-index: 101;
}

.top-menu-item:hover .sub-menu {
    display: block; /* 호버 시 표시 */
}

.sub-menu li a {
    color: white;
    padding: 10px 15px;
    text-decoration: none;
    display: block;
}

.sub-menu li a:hover {
    background-color: #666;
}

.toggle-button {
    background: none;
    border: none;
    color: white;
    font-size: 1.2em;
    cursor: pointer;
    padding: 5px 10px;
    position: absolute;
    left: 10px; /* 왼쪽 상단에 위치 */
    top: 15px;
}

.top-menu-title {
    font-size: 1.5em;
    margin: 0 auto; /* 가운데 정렬 */
}

/* Sidebar 스타일 */
.sidebar {
    background-color: #f4f4f4;
    width: 250px;
    height: 100vh;
    position: fixed;
    top: 60px; /* Top menu 높이만큼 아래로 */
    left: 0;
    overflow-x: hidden;
    padding-top: 20px;
    transition: 0.3s;
}

.sidebar.collapsed {
    width: 0;
}

.sidebar-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sidebar-menu-item {
    border-bottom: 1px solid #ddd;
}

.sidebar-menu-item:last-child {
    border-bottom: none;
}

.sidebar-menu-link {
    display: block;
    padding: 15px 25px;
    text-decoration: none;
    color: #333;
    transition: 0.3s;
}

.sidebar-menu-link:hover {
    background-color: #ddd;
}

/* Content 스타일 */
.content {
    flex-grow: 1;
    padding: 20px;
    margin-top: 60px; /* Top menu 높이만큼 아래로 */
    margin-left: 250px; /* Sidebar 기본 너비만큼 오른쪽으로 */
    transition: margin-left 0.3s;
}

.content.collapsed {
    margin-left: 0;
}
</style>
</head>
<body>

<div class="top-menu">
    <button class="toggle-button" onclick="toggleSidebar()">☰</button>
    <h1 class="top-menu-title">나의 웹사이트</h1>
    <div class="top-menu-item">
        <a href="#" class="top-menu-link">메뉴 1</a>
        <ul class="sub-menu">
            <li><a href="#">서브 메뉴 1-1</a></li>
            <li><a href="#">서브 메뉴 1-2</a></li>
        </ul>
    </div>
    <div class="top-menu-item">
        <a href="#" class="top-menu-link">메뉴 2</a>
        <ul class="sub-menu">
            <li><a href="#">서브 메뉴 2-1</a></li>
            <li><a href="#">서브 메뉴 2-2</a></li>
            <li><a href="#">서브 메뉴 2-3</a></li>
        </ul>
    </div>
    <div class="top-menu-item">
        <a href="#" class="top-menu-link">메뉴 3</a>
        <ul class="sub-menu">
            <li><a href="#">서브 메뉴 3-1</a></li>
        </ul>
    </div>
</div>

<div class="sidebar" id="sidebar">
    <ul class="sidebar-menu">
        <li class="sidebar-menu-item">
            <a href="#" class="sidebar-menu-link">메뉴 A</a>
        </li>
        <li class="sidebar-menu-item">
            <a href="#" class="sidebar-menu-link">메뉴 B</a>
        </li>
        <li class="sidebar-menu-item">
            <a href="#" class="sidebar-menu-link">메뉴 C</a>
        </li>
        <li class="sidebar-menu-item">
            <a href="#" class="sidebar-menu-link">메뉴 D</a>
        </li>
    </ul>
</div>

<div class="content" id="content">
    <h2>본문 내용</h2>
    <p>이곳은 실제 웹사이트의 내용이 표시될 영역입니다. 왼쪽 사이드바를 접거나 펼쳐서 레이아웃 변화를 확인할 수 있습니다.</p>
    <p>추가적인 내용...</p>
</div>

<script>
function toggleSidebar() {
    const sidebar = document.getElementById("sidebar");
    const content = document.getElementById("content");
    sidebar.classList.toggle("collapsed");
    content.classList.toggle("collapsed");
}
</script>

</body>
</html>

Comments