티스토리 뷰

728x90

[수업 목표]

  1. 웹 브라우저의 기본 원리에 대해서 이해한다
  2. HTML, CSS의 기초 지식을 이해하고 뼈대를 생성할 수 있다
  3. 부트스트랩을 활용하여 웹을 다양하게 구현할 수 있다

 

 

 

1. 데일리모토 프로젝트 설명

✅ 웹페이지 구조

 

  1.   1) 네비게이션바 (navbar) : 홈페이지 상단에 위치하며 주로 메뉴 항목이 포함되어 있다. 사용자가 웹사이트 내에서 이동하고자 하는 다른 페이지로 연결되어 있다.
  2. 본문 (main) : 주요 컨텐츠가 포함되는 영역. 웹사이트의 내용이 위치하며 텍스트, 이미지, 동영상 등 다양한 형태의 정보가 포함되어 있다.
  3. 푸터 (footer) : 홈페이지 하단에 위치하고 추가정보와 부가적인 링크를 포함한다. 연락처 정보, 저작권 정보, 개인정보 처리 방침 등이 이에 포함된다.

 

 

✅ 프로젝트 환경 설정

 

 

 

  • body 코드 안에 배경으로 url을 넣어주고 위치와 글씨도 화이트 색상으로 바꾸어준다.

 

 

  • body 밑에 nav.navbar를 쓴 뒤 tab을 누르면 코드 수식이 완성된다.

 

 

 

  • navbar 코드 사이에 날씨 수식을 넣으면서 [단축키 : Alt+위쪽 화살표]를 누르면 날씨가 수식 안으로 들어간다.
  • 15,16에 navbar의 CSS 수식을 넣어 정렬을 한다.

 

 

  • justify-content를 넣고 space-between을 넣으면 위의 로고 세개가 서로 떨어진다.
  • space-between는 두개의 아이템을 양쪽 끝으로 일정한 간격으로 떨어트리는 것이라서 달 모양과 날씨를 묶어서 오른쪽으로 보내려면 div로 박스에 묶듯이 묶어주면 된다.

 

 

 

 

  • 날씨의 글씨가 그림과의 세로 센터가 맞지 않아서 align-items: center을 넣고, 끝쪽에 조금 붙은 것 같아서 margin-right: 30px; 로 30픽셀만큼 안쪽으로 들어오게끔 수정하였다.

 

 

  • flex-direction: column; /* Flex 안의 아이템들을 세로 방향으로 배치합니다. */
  • justify-content: center; /* 주축 방향으로 가운데 정렬합니다. */
  • align-items: center; /* 교차축 방향으로 가운데 정렬합니다. */
  • height: 100vh; 박스를 화면 전체 높이 만큼 크기를 늘려서 조절한다.
  • text-align: center; 다시 가운데 정렬을 한다.

 

 

 

 

  • 아래를 정렬해본다. position: fixed;를 하면 스크롤을 내렸다가 올려도 위치가 픽스되어 움직이지 않는다.

 

 

  • width: 100%; 가로 길이가 100인만큼 늘어난다. 여백을 기준으로 가운데 정렬을 하기 위해서
  • text-align: center; 글씨를 가운데 정렬
  • font-weight: bold; 글씨체를 두껍게 꾸며주기
  • padding: 20px 0; padding이 칸 안에서 글자사이 간격을 말하며 위아래가 20픽셀, 좌우가 0으로 한다.

 

 

 

 

 

  • src 앞에 class="logo"로 파일?을 만들어 준 뒤 조정한다. 바로 상위 파일인 navbar의 세부내용을 수정 정리한다. align-items: center; 를 넣어주면 스파르타 로고도 줄에서 가운데 정렬이 되어 보인다.
  • <!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" />
        <title>Document</title>
        <style>
            body {
                background-position: center;
                background-size: cover;
                color: white;
              }
              .navbar {
                display: flex;
                justify-content: space-between;
                align-items: center;
              }
              .weather {
                display: flex;
                align-items: center;
                margin-right: 30px;
              }
              .container {
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                height: 100vh;
                text-align: center;
              }
              .footer {
                position: fixed;
                left: 0;
                bottom: 0;
                width: 100%; /*가로 길이가 100만큼 늘어난다
                여백을 기준으로 가운데 정렬을 하기 위해서*/
                text-align: center;
                font-weight: bold; /*글씨체 두껍게 꾸며주기*/
                padding: 20px 0; /*padding이 칸 안에서 글자사이 간격을
                위아래가 20픽셀, 좌우가 0으로 한다*/
            }
            .greeting {
                margin-bottom: 50px;
            }
            .motto {
                margin-bottom: 100px;
            }
            .logo {
                height: 32px;
                margin-left: 30px;
            }
        </style>
      </head>
      <body>
        <nav class="navbar">
           <div class="weather">
               <img src="https://ssl.gstatic.com/onebox/weather/64/partly_cloudy.png" id="weather-icon">
               <p>날씨 맑음, 20ºC</p>
           </div>
        </nav>
        <!-- main -->
        <div class="container">
            <div class="greeting">
                <h1>Hello, My name!</h1>
                <h1>12:30</h1>
            </div>
            <div class="motto">
                <h3>My life's motto</h3>
                <h2>웃으면 행복해집니다.</h2>
            </div>
        </div>
        <!-- footer -->
        <div class="footer">
            <p>- 작자 미상 -</p>
            <p>멋진 명언입니다. 아이스크림을 먹으면 행복해져요.</p>
        </div>
      </body>
    </html>

 

 

 

 

 

 

✅ 구글 폰트 사용하기

 

 

 

 

 

  • ' * ' 표시는 모든 코드에 부여한다는 의미이고 그 안의 내용은 폰트를 다 poppins로 적용된다는 말이다.
  • 여기서 꿀팁! 긴 style 코드를 줄여볼 수 있다. CSS파일 분리! link:css 탭을 누르면 자동완성으로 <link rel="stylesheet"  href = "style.css">로 나온다. 그 때 새파일로 'style.css'를 만들어 준다.  그 후 스타일의 긴 부분을 잘라낸 후  'style.css'에 복사 붙여 넣기를 하면 그대로 코드가 복사되어 실행된다.

 

 

✅ 부트스트랩

 

 

 

 

  • 부트스트랩 사이트에서 'navbar'를 검색한 후 코드를 복사해서 붙이면 위 그림과 같다.
  • <!doctype html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>스파르타코딩클럽 | 부트스트랩 연습하기</title>
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
      </head>
      <body>
        <h1>이걸로 시작해보죠!</h1>
        <button type="button" class="btn btn-primary">Primary</button>
        <!-- navbar -->
        <nav class="navbar navbar-expand-lg bg-body-tertiary">
            <div class="container-fluid">
              <a class="navbar-brand" href="#">Navbar</a>
              <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
              </button>
              <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                  <li class="nav-item">
                    <a class="nav-link active" aria-current="page" href="#">Home</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                  </li>
                  <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                      Dropdown
                    </a>
                    <ul class="dropdown-menu">
                      <li><a class="dropdown-item" href="#">Action</a></li>
                      <li><a class="dropdown-item" href="#">Another action</a></li>
                      <li><hr class="dropdown-divider"></li>
                      <li><a class="dropdown-item" href="#">Something else here</a></li>
                    </ul>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link disabled" aria-disabled="true">Disabled</a>
                  </li>
                </ul>
                <form class="d-flex" role="search">
                  <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
                  <button class="btn btn-outline-success" type="submit">Search</button>
                </form>
              </div>
            </div>
          </nav>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
      </body>
    </html>

 

 

 

  • 자주 쓰는 코드로는 'card'는 인스타그램 같은 폼이고 'forms'는 위의 사진과 같은 폼이다.
  • flex, color 등 다양한 코드를 부트스트랩에서 가져와 쓸 수 있다.

 

 

반응형
반응형
TAG
more
최근에 올라온 글