개발일지

개발일지 17일차

index.ys 2023. 3. 24. 01:10

탭메뉴구조

- 탭메뉴는 1개의 영역에 여러가지 컨텐츠가 들어가는 구조

대표적인 탭메뉴로 네이버의 뉴스탭이 있다. 정해진영역에 탭메뉴를 이용해 여러가지 컨텐츠를 나타낼 수 있다.

<!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" />
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>Document</title>
    <style>
      .tab-link {
        display: inline-block;
        cursor: pointer;
      }
      .tab-link-2 {
        display: inline-block;
        cursor: pointer;
      }
      .tab-content {
        display: none;
      }
      .tab-content.on {
        display: block;
      }
      .tab-content-2 {
        display: none;
      }
      .tab-content-2.on {
        display: block;
      }
    </style>
  </head>
  <body>
    <a class="tab-link on" data-type="tab-1">첫번째 탭</a>
    <a class="tab-link" data-type="tab-2">두번째 탭</a>
    <a class="tab-link" data-type="tab-3">세법째 탭</a>

    <hr />

    <div id="tab-1" class="tab-content on">첫번째 탭 내용</div>
    <div id="tab-2" class="tab-content">두번째 탭 내용</div>
    <div id="tab-3" class="tab-content">
      세번째 탭 내용

      <div>
        <a class="tab-link-2 on" data-type="tab-3-1">3-1 탭</a>
        <a class="tab-link-2" data-type="tab-3-2">3-2 탭</a>
        <a class="tab-link-2" data-type="tab-3-3">3-3 탭</a>
      </div>
      <div id="tab-3-1" class="tab-content-2 on">첫번째 탭 내용</div>
      <div id="tab-3-2" class="tab-content-2">두번째 탭 내용</div>
      <div id="tab-3-3" class="tab-content-2">세번째 탭 내용</div>
    </div>

    <script>
      $('.tab-link').click(function () {
        var tab_id = $(this).attr('data-type');
        $('.tab-link').removeClass('on');
        $('.tab-content').removeClass('on');
        $(this).addClass('on');
        $('#' + tab_id).addClass('on');
      });

      $('.tab-link-2').click(function () {
        var tab_id = $(this).attr('data-type');
        $('.tab-link-2').removeClass('on');
        $('.tab-content-2').removeClass('on');
        $(this).addClass('on');
        $('#' + tab_id).addClass('on');
      });
    </script>
  </body>
</html>

탭메뉴의 스크립트 구조

반응형(responsive) 웹

- css의 미디어쿼리 속성을 이용하여 1개의 웹사이트를 pc,태블릿,모바일등 해상도가 다른 여러기기를 기기의 디스플에이에 맞춰 화면이 자동을 조정되게 하는 속성

기본구문

- max-width: 800px: 해상도가 800px 이하일때 미디어쿼리 속성 적용.

- min-width: 760px: 해상도가 760px 이상일때 미디어쿼리 속성 적용

@media (max-width: 800px) {
  
}

예시) 넷플릭스

넷플릭스 웹사이트는 @media (min-width:740px)구문을 이용하여 해상도가 740px 이상일때와 이하일때 다른속성을 적용하는 css를 나눠서 사용한다.

오늘 느낀점:프로그래밍언어에 대한 이해도를 올리기 위해서 특정한 작업이나 서비스를 목표로 잡고 목표한 프로젝트를 만들어가면서 모르는부분을 찾고 고민하는 순간 실력을 올릴 수 있다 ex)특정 웹 사이트 코딩하기 코딩할 때는 키보드를 먼저 누르기전에 기능들을 어떻게 구현할 것 인지 먼저 노트에 정리하고 정리한 내용을 바탕으로 구현한 기능들을 하나씩 만들어가는 방법으로 한다.