웹 문서 제작 시 초기화 스타일
<style>
    * {
        margin: 0;
        padding: 0;
    }

    a {
        text-decoration: none; /* 링크 속성 글자 밑줄 없앰 */
    }

    li {
        list-style: none; /* 항목 태그 블릿 아이콘 장식 없앰 */
    }

    img {
        display: block; /* inline 속성을 지니고 있는 img 태그의 오차 간격을 없애기 위한 속성 변경 */
        border: none; /* img 태그의 모든 테두리선은 없음으로 초기화  */
    }

    body {
        font-family: 'Verdana'; /* 글꼴 */
        font-size: 14px; /* 글자 크기 */
        color: black; /* 글자 색상 */
        line-height: 28px; /* 줄 간격 */ }
</style>

1.  시맨틱 태그  semantic-tags

 

👩🏻‍💻  시맨틱 태그 semantic : 이름만 봐도 의미를 알 수 있다는 의미로 사용

👩🏻‍💻  의미 요소를 가진 태그
      - 자신의 컨텐츠를 명확하게 정의
      - 코드의 가독성을 높이고 의미를 명확하게 해주는 장점
      - 컴퓨터의 정보를 이해, 논리적인 추론이 가능한 구조

 

시맨틱 태그 종류

 

1)  <header> 태그 : 헤더 영역을 의미

     - 머리말 의미, 헤더, 로고, 네비게이션, 검색창

     - 주로 맨 위쪽이나 왼쪽에 있으며, 로고를 중심으로 네비게이션 메뉴와 검색 창이 들어간다.

     - 네비게이션 메뉴는 <nav> 태그로 구성


2)  <nav> 태그 : 내비게이션 영역을 나타내는 태그

     - 같은 웹 문서 안에서 다른 위치로 연결하거나 다른 웹 문서로 연결하는 링크를 만든다.

     - 웹 문서의 위치에 영향을 받지 않으므로 헤더나 푸터, 사이드바 안에 포함할 수도 있고, 독립해서 사용 가능

     - <nav> 태그를 여러 개 사용할 경우 각각 id 속성을 지정하면 내비게이션마다 다른 스타일을 적용할 수 있다.


3)  <section> 태그 : 콘텐츠 영역을 나타낸다

    - <section> 태그는 몇 개의 콘텐츠를 묶는 용도로 사용하고, <article> 태그는 블로그의 포스트처럼 독립된 콘텐츠로 쓴다.

    -  콘텐츠를 주제별로 묶을 때 사용하며 내부에는 <h1>~<h6> 제목 태그가 함께 사용

    -  태그 안에는 다른 태그를 넣을 수 있음


4)  <article> 태그 : 독립적인 콘텐츠를 담는다

     문맥의 흐름 중 콘텐츠를 주제별로 묶을 때 사용

    -  아티클 article의 사전적 의미인 신문이나 잡지의 기사처럼 웹에서 실제로 보여 주고 싶은 내용을 넣는다.

         ex.  블로그의 포스트나 뉴스 사이트의 기사처럼 독립된 웹 콘텐츠 항목

    -  문서 안에 <article> 태그를 여러 개 사용할 수 있고, 이 안에 <section> 태그를 넣을 수도 있다.

   


5)  <aside> 태그: 사이드 바 영역을 나타낸다

   -  본문 내용 외에 왼쪽이나 오른쪽, 혹은 아래쪽에 사이드 바를 만든다.

   -  필요할 경우에만 사용 

   -  광고나 일반적인 링크 모음처럼 문서의 메인 내용에 영향을 미치지 않는 내용을 넣을 때 사용


6)  <footer> 태그 : 푸터 영역을 나타낸다

    -  웹 문서에서 맨 아래쪽에 있는 푸터 영역을 만든다.

    -  사이트 제작 정보나 저작권 정보, 연락처 등을 포함

    -  시맨틱 태그를 모두 사용 가능


7)  <main> 태그 : 웹 문서에서 핵심이 되는 내용

     - 메뉴, 사이드 바, 로고처럼 페이지마다 똑같이 들어간 정보는 넣을 수 없고,

        웹 문서마다 다르게 보여 주는 내용으로 구성

     - 웹 문서에서 한 번만 사용 가능


8)  <div> 태그 : 여러 소스를 묶는다

    -  division의 줄임말로 id나 class 속성을 사용해서 문서 구조를 만들거나 스타일을 적용할 때 사용

        ex. <div id="header">, <div class="detail">

    -  영역을 구별하거나 스타일로 문서를 꾸미는 것

 


 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css/reset.css" type="text/css">
    <style>
      header {
          width: 1000px;
          height: 100px;
          margin: 0 auto; /* block 속성일 때 가운데 배치 */
          margin-top: 10px;
          border: 2px solid black;
          overflow: hidden;
          box-sizing: border-box;
      }

      header h1 { /* logo */
          width: 200px;
          line-height: 100px;
          background-color: yellow;
          float: left;
          text-align: center;
      }

      header nav { /* 오른쪽 메뉴 */
          float: right;
          overflow: hidden;
      }

      header nav ul {
          overflow: hidden;
          background-color: antiquewhite;
      }

      header nav ul:nth-of-type(1) li {
          float: left;
          padding-left: 20px;
          background-color: yellow;
          line-height: 30px;
      }

      header nav ul:nth-of-type(2) li {
          float: left;
          padding-left: 20px;
          background-color: orange;
          line-height: 30px;
          margin-top: 40px;
      }

      #main {
          width: 1000px;
          margin: 10px auto;
          overflow: hidden;
      }

      #main section {
          width: 700px;
          float: left;
          overflow: hidden;
      }

      #main section article {
          box-sizing: border-box;
          width: 700px;
          padding: 20px;
          border: 2px solid black;
          margin-bottom: 10px;
          overflow: hidden;
      }

      #main section article > h2 {
          background-color: antiquewhite;
      }

      #main aside {
          box-sizing: border-box;
          width: 280px;
          padding: 20px;
          border: 2px solid black;
          float: right;
          overflow: hidden;
      }

      #main aside div.bannerbox {
          margin-top: 10px;
          margin-bottom: 10px;
          background-color: gray;
      }

      footer {
          box-sizing: border-box;
          width: 1000px;
          height: 50px;
          border: 2px solid black;
          margin: 10px auto;
          line-height: 50px;
          text-align: center;
          background-color: antiquewhite;
      }
    </style>
</head>

<body>
    <!--header(시맨틱 태그)-->
    <header>
        <h1>WEB-logo</h1>
        <!--nav(시맨틱 태그)-->
        <nav>
            <ul>
                <li>menu-1</li>
                <li>menu-1</li>
                <li>menu-1</li>
                <li>menu-1</li>
            </ul>

            <ul>
                <li>menu-2</li>
                <li>menu-2</li>
                <li>menu-2</li>
                <li>menu-2</li>
            </ul>
        </nav>
    </header>

    <!--본문 감싸주는 박스는 일반 선택자 박스로 지정-->
    <div id="main">
        <!--왼쪽 section (시맨틱 태그)-->
        <section>
            <!--article (시맨틱 태그)-->
            <article>
                <h2>Main Article</h2>
                <p>
                    ColorZilla for Google Chrome is an extension that assists web developers and graphic designers with color related tasks - both basic and advanced. ColorZilla includes a Color Picker, Eye Dropper, Gradient Generator and many additional advanced color tools.
                </p>
            </article>
            <!--article (시맨틱 태그)-->
            <article>
                <h2>Main Article</h2>
                <p>
                    ColorZilla for Google Chrome is an extension that assists web developers and graphic designers with color related tasks - both basic and advanced. ColorZilla includes a Color Picker, Eye Dropper, Gradient Generator and many additional advanced color tools.
                </p>
            </article>

            <!--article (시맨틱 태그)-->
            <article>
                <h2>Main Article</h2>
                <p>
                    ColorZilla for Google Chrome is an extension that assists web developers and graphic designers with color related tasks - both basic and advanced. ColorZilla includes a Color Picker, Eye Dropper, Gradient Generator and many additional advanced color tools.
                </p>
            </article>
        </section>

        <!--오른쪽 aside (시맨틱 태그)-->
        <aside>
            <h2>Right aside</h2>
            <p>
                ColorZilla for Google Chrome is an extension that assists web developers and graphic designers with color related tasks - both basic and advanced.
            </p>
            <input type="email" />
            <button>mailto</button>
            <div class="bannerbox">
                <h2>TEXT</h2>
                <p>banner</p>
            </div>
        </aside>

    </div>

    <!--하단 footer(시맨틱 태그)-->
    <footer>
        <p>HTML5 COPYRIGHT</p>
    </footer>
</body>

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it HTML+CSS+자바스크립트 웹 표준의 정석' ]


 

1.  수직 중앙 정렬에 사용하는 방법 

case 1. line-height로 부모 박스의 높이를 지정
case 2. displaydml table-cell 속성 적용 후 vertical-align 사용
case 3. position이 absolute일 경우 top: 50%; transform

 

<head>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        div {
            width: 200px;
            height: 100px;
            border: 2px solid black;
            background-color: lightgoldenrodyellow;
            text-align: center; /* 수평 중앙 정렬 */
        }
        div.line-height {
            line-height: 100px; /* 높이를 line-height로 사용 */
        }
        div.cell {
            display: table-cell;
            vertical-align: middle;
        }
        div.rel {
            position: relative;
        }
        div.rel p {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
        }
    </style>
</head>
<body>
    <div class="line-height">vertical-align</div>
    <div class="cell">vertical-align</div>
    <div class="rel"><p>vertical-align</p></div>
    <!-- line-height를 사용할 경우에는 요소가 한줄이어야 함 -->
    <div class="inline-height">vertical-align vertical-align vertical-align</div>
</body>

출력 결과


 

2. overflow와 scroll

1)  overflow 속성


🚀  내부 요소가 부모 박스의 범위를 벗어날 때 어떻게 처리할 것인지 지정
🚀  콘텐츠가 자주 업데이트 되는 경우 높이가 콘텐츠 양에 따라 자동으로 변경이 되거나 박스의 높이를 고정값으로 할 때 사용

 

hidden : 영역을 벗어나는 부분은 보이지 않음
scroll : 영역을 벗어나는 부분은 스크롤 바가 나타남
visible : 박스를 넘어가도 보여줌
auto : 박스를 넘어가지 않으면 스크롤 바가 나오지 않고, 박스를 넘어갈 때 스크롤 바가 나타남

 

<head>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .contents1 {
            width: 200px;
            height: 200px;
            border: 2px solid black;
            float: left;
            box-sizing: border-box;
            margin: 10px;
        }
        .contents2 {
            width: 200px;
            height: 200px;
            border: 2px solid black;
            float: left;
            box-sizing: border-box;
            margin: 10px;
            margin-left: 30px; /* 왼쪽과 바깥쪽 여백을 30px로 지정함 */
        }
        .contents3 {
            width: 200px;
            overflow: hidden;  /* 박스 높이가 지정되지 않았을 경우 박스 안의 내용만큼 박스 높이도 함께 늘어남 */
            border: 2px solid black;
            float: left;
            box-sizing: border-box;
            margin: 10px;
            margin-left: 30px;
        }
        .contents4 {
            width: 200px;
            height: 200px;
            overflow: hidden; /* 박스 높이가 지정되어있으면 지정된 높이만큼만 보여줌. */
            border: 2px solid black;
            float: left;
            box-sizing: border-box;
            margin: 10px;
            margin-left: 30px;
        }
    </style>
</head>
<body>
<!--박스의 높이에 맞게 텍스트 양을 넣은 예-->
<div class="contents1">
    <h4>콘텐츠의 양이 일정</h4>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown </p>
</div>

<!--박스의 높이보다 텍스트의 양이 많아서 박스 밖으로 흘러넘치는 예-->
<div class="contents2">
    <h4>콘텐츠의 양이 많거나 유동적일때 흘러 넘침</h4>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>
</div>

<!--박스의 높이를 설정하지 않고 overflow:hidden을 지정하여 텍스트만큼 높이도 함께 늘어나는 예-->
<div class="contents3">
    <h4>콘텐츠의 양에 따라서 높이가 늘어남</h4>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>
</div>

<!--박스의 높이를 지정하고 overflow:hidden을 주어서 높이만큼만 보여지도록 한 예-->
<div class="contents4">
    <h4>박스의 지정된 높이만큼만 콘텐츠가 보여짐</h4>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>
</div>
</body>

 

출력 결과

 


 

2) scroll 속성

 

🚀   overflow: scroll 속성 사용
        ▶️  박스(block)의 내부 스크롤 바를 지정하고자 할 때 사용

 

overflow : 영역을 벗어나는 가로, 세로 부분을 스크롤 바로 나타나게 하거나 숨김
overflow-x : 가로 좌표에 대한 스크롤 바를 나타나게 하거나 숨김
overflow-y : 세로 좌표에 대한 스크롤 바를 나타나게 하거나 숨김

 

<head>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .scroll_box1 {
            float: left;
            box-sizing: border-box;
            width: 200px;
            height: 200px;
            border: 2px solid black;
            margin: 10px;
            overflow: scroll; /* 가로 세로 스크롤 바를 모두 보임 */
        }
        .scroll_box2 {
            float: left;
            box-sizing: border-box;
            width: 200px;
            height: 200px;
            border: 2px solid black;
            margin: 10px;
            margin-left: 30px; /* 왼쪽 바깥쪽 여백은 30px로 지정함 */
            overflow-x: scroll; /* 가로 스크롤 바를 표시 */
            overflow-y: hidden; /* 세로 스크롤 바를 숨김 */
        }
        .scroll_box3 {
            float: left;
            box-sizing: border-box;
            width: 200px;
            height: 200px;
            border: 2px solid black;
            margin: 10px;
            margin-left: 30px; /* 왼쪽 바깥쪽 여백은 30px로 지정함 */
            overflow-x: hidden; /* 가로 스크롤 바를 숨김 */
            overflow-y: scroll; /* 세로 스크롤 바를 표시 */
        }
    </style>
</head>
<body>
    <!-- 스크롤 바를 가로, 세로 모두 표시 -->
    <div class="scroll_box1">
        <h4>SCROLL-X,Y</h4>
        <p><img src="../box2/img2/camera02.png" alt="대체이미지"></p>
    </div>
    <!-- 스크롤 바를 가로만 표시 -->
    <div class="scroll_box2">
        <h4>SCROLL-X</h4>
        <p><img src="../box2/img2/camera02.png" alt="대체이미지"></p>
    </div>
    <!-- 스크롤 바를 세로만 표시 -->
    <div class="scroll_box3">
        <h4>SCROLL-Y</h4>
        <p><img src="../box2/img2/camera02.png" alt="대체이미지"></p>
    </div>
</body>

 

출력 결과

 

 

 

 

 

[ 내용 참고: IT 학원 강의 ]


 

1.  CSS 박스 모델

 

1) 블록 레벨 요소와 인라인 레벨 요소

 

🍒  블록 레벨 block-level 요소 

      -  화면의 가로(폭) 길이 (100%)를 차지, 뒤에 오는 요소는 줄 바꿈이 일어나며 

          여러 개의 <div> 태그를 나열하면 수직 방향으로 정렬이 됨

           ▶️  대표적인 태그 : div, p, h1~h6, ul, ol, form, table, blockquote~

<body>
    <div>HTML5-WEB</div>
    <div>HTML5-WEB</div>
    <div>HTML5-WEB</div>
    <div>HTML5-WEB</div>
    <div>HTML5-WEB</div>
</body>

출력 결과


 

🍒  인라인 레벨 inline-level 요소

    -  해당 태그의 컨텐츠 만큼 공간을 차지(폭이 컨텐츠의 양에 비례), 글자와 같이 옆으로 나열되며 나타남
    -  줄 바꿈이 일어나지 않기 때문에 <span></span> 이라고 나열하면 수평 방향으로 정렬
    -  width, height, margin-top, margin-bottom이 적용되지 않음
    -  태그 종류 : a, img, span, sub, sup, i, b, em(글자를 꾸미는 태그 종류), input

<head>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
    <span>SPAN-inline</span>
    <span>SPAN-inline</span>
    <span>SPAN-inline</span>
    <span>SPAN-inline</span>
    <span>SPAN-inline</span>

</body>

출력 결과

 


span에 margin 적용 시 margin-left, margin-right는 적용되어서 나오는 예시
<head>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        span {
            width: 100px;
            height: 100px;
            background-color: aqua;
            margin: 10px;
            float: left;
        }
    </style>
</head>
<body>
    <span> inline 성격의 태그</span>
    <span> inline 성격의 태그</span>
</body>

출력 결과

 


2)  박스 모델의 기본 구성

 

 

 

🍒  박스모델 box model 요소

     -  박스 형태인 요소를 말함

     -  콘텐츠 영역 ▶️ 패딩 padding ▶️ 테두리 border ▶️ 마진 margin 으로 구성

     -  마진이나 패딩은 웹 문서에서 다른 콘텐츠 사이의 간격이나 배치 등을 고려할 때 필요한 개념

 

 

💡  박스의 실제 넓이와 높이 공식
     - 한개의 박스에 margin + border + padding 값이 모두 적용되었다는 가정
     - width 속성과 height 속성은 텍스트가 들어가는 영역(contents)의 넓이와 높이를 지정

* 전체 넓이 : width + 2 * (margin + border + padding)
* 전체 높이 : height + 2 * (margin + border + padding)

 

3) 콘텐츠 영역의 크기를 지정하는 width, height 속성

 

종류 설명
<크기> 너비나 높이의 값을 px이나 em 단위로 지정
<백분율> 박스 모델을 포함하는 부모 요소를 기준으로 너빗값이나 높잇값을 백분율(%) 로 지정
auto 박스 모델의 너빗값과 높잇값이 콘텐츠 양에 따라 자동으로 결정된다. 기본값.

🍒  넓이 / width : 크기 | 백분율 | auto
🍒  높이 / height : 크기 | 백분율 | auto

 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box1 {
            width: 300px; /* 고정 넓이 */
            height: 100px; /* 고정 높이 */
            background-color: blue;
        }
        #box2 {
            width: 50%; /* 가변 넓이 - 현재 브라우저 창 너비의 50%를 유지 */
            height: 100px; /* 고정 높이 */
            background-color: green;
        }
      
    </style>
</head>
<body>
    <div class="box1">BOX-1</div>
    <div id="box2">BOX-2</div>
</body>

 

전체 창 출력
브라우저 창 크기를 줄였을 때

 


 

4) box-sizing 속성

 

🍒  width 속성과 height 속성은 콘텐츠 주변의 여백이나 테두리를 뺀 콘텐츠 영역의 크기를 가리킨다

🍒  웹 문서에 여러 가지 요소를 배치할 때 실제 박스 모델이 차지하는 크기는 콘텐츠와 테두리 사이의 여백, 테두리 두께까지 계산해야 함

 

  💡 box-sizing은 박스 모델의 크기를 쉽게 계산하기 위해 지정하는 속성

종류 설명
boder-box 테두리까지 포함해서 너빗값을 지정
content-box 콘텐츠 영역만 너빗값을 지정. 기본값.
<head>
    <style>
        div {
            width: 300px;
            height: 300px;
            border: 10px solid black; /* 테두리 스타일 */
            padding: 30px; /* 안쪽 여백 공통 지정 */
        }
        .box1 {
            box-sizing: border-box;
            /* 박스의 테두리와 여백을 박스의 넓이와 높이에 포함. 넓이가 300px */
        }
        .box2 {
            box-sizing: content-box;
            /* 기본값과 동일. 넓이: 300 + 20 + 60 = 380px */
        }
    </style>
</head>
<body>
    <div class="box1">01</div>
    <div class="box2">02</div>

</body>

출력 결과


 

5)  box-shadow 속성

 

🍒  사진 주변에 그림자를 추가하는 속성

🍒  수평 거리와 수직 거리는 필수로 지정 ▶️  그림자의 위치는 수평 거리와 수직 거리의 값에 따라 움직이기 때문

box-shadow: <수평거리> <수직거리> <흐림 정도> <번짐 정도> <색상> inset

 

종류 설명
<수평 거리> 그림자가 가로로 얼마나 떨어져 있는지 나타냄.
양수는 오른쪽 / 음수는 왼쪽
<수직 거리> 그림자가 세로로 얼마나 떨어져 있는지 나타냄.
양수는 아래쪽 / 음수는 위쪽
<흐림 정도> 생략하면 0을 기본값으로 하여 진한 그림자를 표시.
값이 커질수록 부드러운 그림자를 표시하며 음수는 사용불가.
<번짐 정도> 양수는 모든 방향으로 그림자가 퍼져 박스보다 그림자가 크게 표시.
음수는 모든 방향으로 그림자가 축소되어 보임.
기본값은 0
<색상> 한 가지만 지정할 수도, 공백으로 구분해서 여러 개 색상 지정 가능
기본값은 검정색
inset 이 키워드를 함께 표시하면 안쪽 그림자로 그린다.

 

2.  테두리 스타일 지정

 

1) 박스 모델의 방향

 

🍒  박스 모델은 상하좌우 4개의 방향이 있어 테두리나 마진, 패딩 등을 지정할 때 한꺼번에 똑같이 지정하거나

      모두 다르게 지정할 수도 있다.

🍒  맨 윗 부분은 top ▶️ 오른쪽은 right ▶️ 아래쪽은 bottom ▶️ 왼쪽은 left  (시계 방향)

       

 


 

2) 테두리 스타일을 지정하는 border-style 속성

 

종류 설명
none 기본값. 테두리가 없다.
hidden 테두리를 감춘다. 표에서 border-collapse: collapse일 경우 다른 테두리도 표시되지 않는다.
solid 테두리를 실선으로 표시
dotted 테두리를 도트형태의 점선으로 표시
dashed 테두리를 직선형태의 점선으로 표시
double 테두리를 이중선으로 표시. 두 선 사이의 간격이 border-width값이 된다.
groove 테두리를 창에 조각한 것처럼 표시. 홈이 파인 듯 입체 느낌이 난다.
inset 표에서 border-collapse: seperate일 경우 전체 박스 테두리가 창에 박혀 있는 것처럼 표시
표에서 border-collapse: collapse일 경우 groove와 똑같이 표시
outset 표에서 border-collapse: seperate일 경우 전체 박스 테두리가 창에서 튀어나온 것처럼 표시
표에서 border-collapse: collapse일 경우 ridge와 똑같이 표시
ridge 테두리를 창에서 튀어나온 것처럼 표시
<style>
    #box1 { border-style:solid; }  /* 실선 */
	#box2 { border-style:dotted; }  /* 점선 */
    #box3 { border-style:dashed; }  /* 짧은 직선 */
</style>


 

3) 테두리 두께를 지정하는 border-width 속성

 

border-width: <크기> | thin | medium | thick

 

🍒  속성 값이 1개  ▶️  4개 방향 테두리 모두 같은 값 적용

🍒  속성 값이 2개  ▶️  첫 번째 값은 top, bottom 테두리 / 두 번째 값은 left, right 테두리 적용

🍒  속성 값이 3개  ▶️  top, right, bottom 순으로 적용 / left 값은 마주보는 right 속성값과 똑같이 적용

🍒  속성 값이 4개  ▶️  top, right, bottom, left 순으로 적용


 

4) 테두리 색상을 지정하는 border-color 속성

 

🍒  테두리 색상을 지정

      ➡️  border-color 사용해서 4개 방향의 테두리 색상 한꺼번에 지정

      ➡️  border-top-color 처럼 테두리 방향을 넣어주면 색상을 하나씩 지정 가능


 

5) 테두리 스타일 묶어 지정하는 border 속성

 

🍒  테두리 스타일과 두께, 색상의 속성을 따로 사용하면 소스 길이가 길어짐

       ▶️  3가지를 한꺼번에 표현하는 방법이 border 속성을 사용하는 것 ( 속성 값 순서는 상관 없다 )

<style>
    * {
        margin: 0;
        padding: 0;
    }
    .box1 {
        width: 300px; /* 고정 넓이 */
        height: 100px; /* 고정 높이 */
        border: green 2px solid; /* 테두리 굵기는 2px, 테두리 스타일 solid, 테두리 색상 green */
    }
    .box2 {
        width: 300px;
        height: 100px;
        border: red dashed;
        border-width: 1px 5px 10px 12px; /* 12시 부터 시계 방향으로 */
    }
    .box3 {
        width: 300px;
        height: 100px;
        border: blue 1px dotted;
        border-bottom-width: 5px; /* 아래 테두리만 따로 지정 */
    }
    .box4 {
        width: 300px;
        height: 100px;
        border: pink dashed;
        border-width: 5px 10px; /* (12시 6시) (3시 9시) */
    }
     </style>
</head>
<body>
    <div class="box1">BOX-1</div>
    <div class="box2">BOX-2</div>
    <div class="box3">BOX-3</div>
    <div class="box4">BOX-4</div>
</body>


 

6) 둥근 테두리를 만드는 border-radius 속성

 

border-radius: <크기> | <백분율>

 

🍒  border-radius 속성을 사용하면 꼭짓점 부분에 원이 있다고 가정해서 둥글게 처리

      ▶️  이 때 원의 반지름을 이용하면 둥근 정도를 나타낼 수 있다

🍒  라운드 지정하는 순서는 top-left, top-right, bottom-right, bottom-left
🍒  원 형태로 만들고 싶다면 border-radius 반지름값을 너비나 높이의 50%로 지정하면 된다.

 

 

<head>  
    <style>
        div {
            width: 300px;
            height: 100px;
            border: green 10px solid;
            margin: 10px;
        }
        .box1 {
            border-radius: 30px ; /* 전체 모서리를 30px로 라운드 지정 */
        }
        .box2 {
            border-radius: 10px 20px 30px 40px;
            /* top-left: 10px, top-right: 20px; bottom-right: 30px, bottom-left: 40px 라운드 지정 */
        }
        .box3 {
            border-radius: 10px 40px;
            /* top-left: 10px, top-right: 40px; bottom-right: 10px, bottom-left: 40px 라운드 지정 */
        }
        .box4 {
            width: 100px; height: 100px; border-radius: 100px; /* 원모양 */
        }
      
    </style>
</head>
<body>
    <div class="box1">BOX-1</div>
    <div class="box2">BOX-2</div>
    <div class="box3">BOX-3</div>
    <div class="box4">BOX-4</div>
</body>

 

출력 결과

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it HTML+CSS+자바스크립트 웹 표준의 정석' ]


 

1. CSS 란?

👩🏻‍💻  CSS (style)각 요소들이 어떻게 보이는가를 정의하는데 사용되는 스타일 시트 언어로 홈페이지의 스타일 즉 디자인 요소를 담당

 

1) 스타일

 

a.  스타일 형식

[기본구조]
선택자(Selector) { 속성(property) : 값(value); }
(* 스타일은 기본적으로는 마지막에 작성된 순서대로 표현되어짐!)

 

  ✏️  맨 앞의 선택자는 스타일을 어느 태그에 적용할 것인지 알려 주는 것

  ✏️  속성과 값이 하나의 쌍으로 이루어진 것을 스타일 규칙이라 하며, 세미콜론(;)으로 구분해 스타일 규칙을 여러 개 지정할 수 있다.

 

b. 스타일의 주석 표기

<style>
    /* style 안에 작성하는 주석방법! */
</style>

 

  ✏️  /* */ 안에 한 줄 또는 여러 줄 들어갈 수 있다.


💡 CSS 소스 경량화 

    -  CSS 소스는 네트워크를 이용해 파일로 내려받으므로 되도록 파일 크기가 작은 것이 좋다.

    -  즉, 줄 바꿈, 공백등을 제거하고 꼭 필요한 정보만 남겨 파일을 작게 만드는 것을 'CSS 소스 경량화(minify)' 라고 한다. 

 

 


2) 스타일 시트

 

📁  스타일 규칙을 한눈에 확인하고 필요할 때마다 수정하기도 쉽도록 한군데 묶어 놓은 것을 '스타일 시트'라고 한다.

 

스타일 시트 갈래

 

a.  브라우저 기본 스타일

  ·  CSS를 사용하지 않은 웹 문서라 하더라도 웹 브라우저에 표시할 때는 기본 스타일을 사용

 

b. 사용자 스타일

 

💡  인라인 스타일(Inline style)

    -  HTML 요소 내부에 style 속성을 사용하여 CSS 스타일을 적용하는 방법

</h2 style="color:green">

 

 

💡  내부 스타일 시트(Internal style sheet)

    - <style>태그를 사용하여 CSS 스타일을 적용하는 방법

<head>
  <style>
       body { background-color: lightyellow; }
  </style>
</head>

 


💡  외부 스타일 시트(External style sheet)
    -  외부에 작성된 .CSS문서 즉 스타일 시트 파일을 연결하여 적용하는 방법

<head>
    <link rel="stylesheet" href="외부 스타일 시트 파일 경로">
</head>

 

    ⚡️  외부 스타일 시트 작성
         1. html 파일이 있는 디렉토리에 css 라는 이름의 디렉토리를 생성
         2. css 디렉토리에 main.css 파일 생성
         3. html 파일의 <style> 태그 안의 부분을 복사해서 main.css에 붙여넣기
               ▶️  <style> 태그는 포함하지 않음
         4. html 파일의 <style> 태그 삭제
         5. <link> 태그로 css 파일을 연결

     ⚡️  외부 스타일 시트의 단점
           - 캐쉬 때문에 바로 적용이 안 되는 경우가 있음


 

<!-- main.css 파일 -->
.de {
    color: #09F;
}
<head>
    <meta charset="UTF-8">
    <title>CSS 지정 방식</title>
        <link rel="stylesheet" href="./css/main.css" />
</head>

<body>
    <p class="de">
        디지털 디자인 이란 ?<br>
        우선 '디지털(Digital)' 그리고 '디지털 스토리텔링(Digital Storytelling)'이란 말에 대해 생각해보자.
    </p>

</body>

출력 결과

 


2.  CSS 기본 선택자 

1)  클래스 선택자  class selector

.클래스명 { 스타일 규칙 }

 

👩🏻‍💻  클래스 이름을 사용해서 다른 선택자와 구별하는데, 클래스 이름 앞에 마침표(.)를 붙여야 한다. 

👩🏻‍💻  클래스 스타일을 적용할 때는 태그 안에 class="클래스명" 처럼 class 속성을 사용해서 지정

👩🏻‍💻  요소 하나에 클래스 스타일을 2개 이상 적용할 수 있다.  

       ▶️ 이 때 공백으로 구분해서 스타일 이름을 적으면 된다.

<head>
    <meta charset="UTF-8">
    <title>CSS 지정 방식</title>
    <style>
        .de {
            color: #09F;
        }
    </style>
</head>

<body>
    <p class="de">
        디지털 디자인 이란 ?<br>
        우선 '디지털(Digital)' 그리고 '디지털 스토리텔링(Digital Storytelling)'이란 말에 대해 생각해보자.
    </p>
</body>

출력 결과


 

2) 전체 선택자  universal selector

* { 속성: 값... }


 👩🏻‍💻  html내에 등장하는 모든 형태를 선택 (초기화, 기본 설정값) 가급적 사용안하는 것이 좋음.

         ➡️ reset.css 치면 나오는 글 참고해서 작성하는 것이 좋다.

<style>
    * {
         margin: 0; /* 바깥여백 */
         padding: 0; /* 안쪽여백 */
      }
</style>
</head>
<body>
    <h4>Artwork Concept Drawing</h4>
    <h1>아트웍 컨셉 드로잉</h1>
    <p>
        편집 포트폴리오에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

 

출력 결과

 


3)  타입 선택자 type selector 

태그명 { 스타일 규칙 }


👩🏻‍💻  특정 태그를 사용한 모든 요소에 스타일을 적용하는 선택자로, html 화면 내에서 하나의 이름으로 한 번만 사용권장
       ➡️  주로 큰 단락, 부모에서 사용

👩🏻‍💻  여러 태그들을 한 번에 선택해 스타일 속성을 적용할 때 쉼표 사용

 

  💡  태그(tag)와 요소(element)

      -  태그는 말 그대로 태그 자체를 가리키는 반면, 요소는 태그를 적용한 것을 가리킴

      -  즉 요소는 태그 안에 적힌 문자들을 지칭

<style>
        * {
            margin: 0; /* 바깥여백 */
            padding: 0; /* 안쪽여백 */
        }

        body {
            background: #000000; /* 배경색 지정. #000 -> 검정색 */
            color: white; /* 글자색 */
        }
</style>
</head>
<body>
    <h4>Artwork Concept Drawing</h4>
    <h1>아트웍 컨셉 드로잉</h1>
    <p>
        편집 포트폴리오에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

출력 결과


 

태그 선택자와 클래스 선택자를 함께 사용하면 더 정확하게 태그를 선택할 수 있음 
   ex. 태그명.클래스명
<head>
    <style>
        li.select {
            color: red;
        }
    </style>
</head>
<body>
    <h1 class="select">Lorem ipsum</h1>
    <ul>
        <li class="select">Lorem ipsum</li>
        <li>Lorem ipsum</li>
        <li>Lorem ipsum</li>
        <li>Lorem ipsum</li>
    </ul>
</body>

 

출력 결과

 

 


4) id 선택자  id selector

#아이디명 { 스타일 규칙 }

 

👩🏻‍💻  id 선택자도 클래스 선택자와 마찬가지로 특정 부분에 스타일을 적용할 때 사용
👩🏻‍💻  마침표(.) 대신 # 기호를 사용한다는 점만 제외하면 클래스 선택자와 사용법은 동일
👩🏻‍💻  주로 큰 단락, 부모에서 사용. 자바 스크립트에서 사용.

<head>
    <meta charset="UTF-8">
    <title>스타일시트</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #title1 {color: #666666;}
        #title2 {color: blue;}
        #title3 {color: orange;}
        #title4 {color: red;}
        #title5 {color: gray;}
        #title6 {color: green;}
    </style>
</head>
<body>
    <h1 id="title1">웹디자인</h1>
    <h2 id="title2">스마트폰 웹디자인</h2>
    <h3 id="title3">웹기획</h3>
    <h4 id="title4">웹프로그래밍</h4>
    <h5 id="title5">웹퍼블리쉬</h5>
    <h6 id="title6" style="color:red;">제이쿼리</h6>
</body>

출력 결과

 


id는 고유값이어야 하지만, 스타일시트에서는 id 속성 중복이 문제가 되지 않음
하지만 자바스크립트는 id 속성이 중복될 경우에 문제가 발생
    예) getElementById(), getElementsByClassName()

id 속성은 중복되지 않게 사용해야 함
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #rint { color: red;}
    </style>
</head>
<body>
    <h1 id="rint">CSS3 Selector Basic</h1>
    <h2 id="rint">CSS3 Selector Basic</h2>
    <h3 id="rint">CSS3 Selector Basic</h3>
</body>

출력 결과

 


5) 그룹 선택자

선택자1, 선택자2 { 스타일 규칙 }

 

👩🏻‍💻  여러 선택자에서 같은 스타일 규칙을 사용하는 경우 쉼표(,)로 구분해 여러 선택자 나열 후 스타일 규칙을 한 번만 정의

 


 

3. 캐스케이딩 스타일 시트

 

🚀  캐스케이딩 cascading 은 CSS 의 'C'에 해당하며, 스타일 시트에서 우선순위가 위에서 아래로 적용된다는 의미로 사용

🚀  CSS에서는 웹 요소에 둘 이상의 스타일을 적용할 때 우선순위에 따라 적용할 스타일을 결정

 

스타일 충돌하지 않게 하는 방법 : 스타일 우선순위 적용 / 스타일 상속

 

 

1) 스타일 우선순위

 

👾  어떤 스타일을 먼저 적용할 것인지 결정하는 규칙

👾  웹 브라우저 내용을 표시할 때 사용자 스타일, 제작자 스타일, 웹 브라우저 기본 스타일 순으로 우선 적용

👾  중요도가 같은 스타일인 경우 필요한 요소에만 적용할 스타일 일수록 우선순위가 높아진다.

a. ! important : 스타일에 강제 스타일 적용 시 사용 ex) background-color: yellow !important;
b. 인라인 스타일  ex) <h2 style="color:green">
c. id 스타일  ex) #id { color: #000; }
d. 클래스 스타일  ex) .class { color:#000; }
e. 타입 스타일  ex) h1 { color:#fff; }

 

<head>  
    <style>

        * {
            margin: 0;
            padding: 0;
        }

        p {
            font-style: italic; /* 글자 스타일 */
            color: red !important /* 글자 색상. 중요 스타일은 !important 붙임 */
        }

        p {
            color: orange; /* 글자 색상 */
        }
    </style>
</head>
<body>
    <h1>디자인스킬업</h1>
    <p style="color:blue;">
        2D 그래픽은 모든 그래픽에서 기본이라 할 수 있습니다. 그래픽 작업에서 높은 비중을 차지합니다.
    </p>
</body>

출력 결과


💡 소스코드의 작성 순서

    -  스타일 시트에서 중요도와 적용범위가 같아면 그 다음은 스타일을 정의한 소스 순서로 우선순위가 정해진다.

        ➡️  나중에 작성한 스타일이 먼저 작성한 스타일을 덮어쓴다.

<head>
     <style>
        * {
            margin: 0; /* 바깥여백 */
            padding: 0; /* 안쪽여백 */
        }
        body {
            background: #000000; /* 배경색 지정. #000 -> 검정색 */
            color: white; /* 글자색 */
        }
        body {
            background: #999; /* 동일한 속성에 값을 지정하는 경우 나중의 것이 적용됨 */
            font-family: '돋움'; /* 기본 글꼴 돋움 */
            font-size: 10px; /* 글자 크기 10px */
        }
        body {
            line-height: 30px; /* 줄 간격 30px */
        }
        a {
            text-decoration: none; /* a 속성을 가진 링크에 어떤 꾸밈도 하지 않음 */
            color: yellow; /* 링크를 지정한 글자의 색상을 노란색으로 지정 */
        }
        .color1 {
            color:green;
        }
    </style>
</head>

<body>
    <h4>Artwork Concept Drawing</h4>
    <h1 class="color1">아트웍 컨셉 드로잉</h1>
    <p class="color1">
        편집 <a href="#">포트폴리오</a>에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

출력 결과


 

2) 스타일 상속

 

👾  웹 문서에서 사용하는 여러 태그는 서로 포함 관계

       ▶️ 이 때 포함하는 태그를 부모 요소, 포함된 태그를 자식요소
👾  '스타일 상속' : 부모 태그에 특정 값을 적용 시 아래, 즉 하위 요소에도 그 속성들이 그대로 적용
       ▶️  예를 들어 정렬 text-align, color, font-size...

       ▶️   body 태그는 웹 문서에서 사용한 모든 태그의 부모요소

<head>
    <meta charset="UTF-8">
    <title>스타일시트</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
       
        body {
            font-family: '돋움'; /* 글꼴 */
            color: red; /* 글자 색상 */
        }
    </style>
</head>
<body>
    <h1>디자인과정</h1>
    <ul>
        <li>웹학과</li>
        <li>편집디자인학과</li>
        <li>CG학과</li>
        <li>모션영상학과</li>
        <li>건축인테리어학과</li>
        <li>기계학과</li>
    </ul>
</body>

출력 결과

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it HTML+CSS+자바스크립트 웹 표준의 정석' ]

 


 

1.  이미지 태그

1) 이미지 삽입 <img> 태그

<!-- 기본형 -->
<img src="이미지 파일 경로" alt="대체용 텍스트">

 

👩🏻‍🚀  src 속성은 이미지 파일의 경로를 지정하여 웹 브라우저에 알려 주는 역할

👩🏻‍🚀  alt 속성에는 화면 낭독기 등에서 이미지를 대신해서 읽어 줄 텍스트를 입력

 

💡  웹에서 사용하는 대표적인 이미지 파일 형식

종류 설명
GIF
(graphic interchange format)
표시할 수 있는 색상 수는 최대 256가지. 작은 이미지에 주로 사용
JPG/JPEG
(joint photographic experts group)
GIF 보다 색상과 명암을 다양하게 표현 가능. 이미지 수정하고 저장하는 작업 반복 시 화질이 떨어질 수 있다.
PNG
(portable network graphics)
네트워크용으로 개발된 파일 형식. 색상을 다양하게 표현하면서도 투명한 배경도 만들 수 있어 웹에서 가장 많이 사용

 

💡  src 속성

    ·  파일 경로를 정확하게 입력하지 않으면 이미지가 화면에 나타나지 않는다.

    ·  웹 문서 파일의 위치를 기준으로 파일의 경로가 정해진다.

    ·  웹 문서 파일과 이미지 파일이 같은 경로에 있다면 src 속성에 이미지 파일의 이름만 적으면 된다

        ▶️  하위 폴더에 이미지 파일이 있다면 src 속성에 하위 폴더와 함계 이미지 파일 이름을 적어야 한다.

 

💡  alt 속성

    ·  alt 속성을 지정하면 인터넷이 불안정하거나 이미지 파일 경로를 잘못 넣었을 때 이미지 대신 텍스트가 표시

    ·  메뉴를 이미지로 삽입하는 경우와 같이 내용을 강조하기 위해 이미지로 처리할 때

        alt 속성안에 들어갈 텍스트는 이미지를 부연설명 하는 것이 아닌 이미지 안에 포함된 텍스트를 알려줘야 한다.

 

💡  이미지 크기 조절 width, heigh 속성

    ·  웹 브라우저 창에서 보이는 이미지 크기만 조절하고 싶을 때 사용

    ·  width는 너비, height는 높이를 지정. 둘 중 하나만 지정해도 나머지 속성 비율은 자동으로 계산하여 나타낸다.

 

💡  이미지 크기 표현 단위

종류 설명
% 웹 브라우저 창의 너비와 높이를 기준으로 이미지 크기를 결정
px 이미지의 너비나 높이를 해당 픽셀 크기만큼 표시
<body>
    <!--
    이미지를 나타내주는 태그. 단독 태그.
    글자와 같이 나열되는 성격(inline 속성)

    <img src="이미지 파일의 1)경로 또는 2)url" alt="대체문자">
    alt: 주석문, 이미지가 안보일 때를 대비한 대체문자, html5 기본 규칙!

    이미지의 확장자(대표)
        jpg -> 가장 대표적인 이미지 표현방식, 이미지의 색상을 가장 잘 표현할 수 있는 확장자!
        gif -> 투명한 배경이 가능한, 색상이 256개의 표현만 가능~ 화질이 떨어져 보임 / 움짤, 움직이는 이미지
        png -> 이미지의 색상을 유지하며 투명한 배경을 나타낼 수 있는 확장자!

    이미지 파일의 경로 : * 작성하는 문서(html)의 기점으로부터.
    -->
    <!-- 경로에 맞게 불러온 이미지 -->
    <img src="./img/camera01.png" alt="카메라1"><br>

    <!-- 경로에 맞지 않게 불러온 이미지 -->
    <img src="../img/camera02.png" alt="카메라2"><br>

    <!-- 넓이 옵션을 적용한 이미지 (원 사이즈보다 크게 적용하면 이미지가 흐릿해짐) -->
    <img src="img/camera03.png" alt="카메라3" width="600"><br>

</body>

 


 

  📍 웹 페이지의 이미지 주소 복사로 가져온 경우

<body>
    <!-- 이미지태그를 url로 연결하는 방법 -->
    <img src="https://image.istarbucks.co.kr/upload/store/skuimg/2021/04/[30]_20210415144252425.jpg">
</body>

 

  📍 figure 와 figcaption

<body>
    <!-- figure : 이미지, 사진, 삽화 같은 콘텐츠를 넣을 때 사용 -->
    <figure>
        <img src="img/camera01.png" alt="카메라1">
        <!-- figure 요소에 캡션을 넣을 때 사용하는 태그로 figure 안에서 사용, 제일 처음이나 마지막에 배치! -->
        <figcaption>카메라를 올바르게 촬영하는 방법</figcaption>
    </figure>
</body>

 


 

2.  하이퍼링크 삽입

1) 링크를 삽입하는 <a> 태그와 href 속성

<!-- 기본형식 -->
<a href="링크할 주소">텍스트 또는 이미지</a>

 

  👾  한 번이라도 클릭한 링크는 자주색으로 변경

 

a. 텍스트 링크 만들기

 

👩🏻‍🚀  텍스트 링크는 <a>와 </a> 태그 사이에 링크로 만들 텍스트를 입력하고,

      href 속성에는 텍스트를 클릭하면 연결할 문서의 경로와 파일명을 넣으면 된다.

 

b. 이미지 링크 만들기

 

👩🏻‍🚀  <a>와 </a> 태그 사이에 <img> 태그를 넣어 만든다.

 

c. 링크를 새 탭에서 열어주는 target 속성

 

👩🏻‍🚀  target 속성에 _blank를 지정하면 링크를 클릭했을 때 연결된 문서가 새 탭에서 열린다.

<body>
    <!-- a 태그 : 웹페이지의 연결, url연결 시 사용
    1) 다른 페이지의 전환 (메뉴 표현) 2) 글자와 같이 나열되는 성격!(inline 속성)
    링크연결 시 기본 스타일 (글자색, 밑줄, 손모양의 커서) / 브라우저 내에서 바로 전환

    href = h + ref : h : hypertext, ref : reference
    -->
    <!-- 링크 target 값의 종류 -->
    <p>
        <!--target 값을 지정하지 않으면 _self와 같음 -->
        <a href="https://www.naver.com">네이버(none)</a>
    </p>

    <p>
        <!-- 현재 페이지에서 바로 페이지로 이동 -->
        <a href="https://www.daum.net" target="_self">다음(_self)</a>
    </p>

    <p>
        <!-- 현재 페이지는 그대로 두고 새로운 브라우저 창이나 탭을 열어 이동 -->
        <a href ="https://www.starbucks.co.kr/" target="_blank">스타벅스(_blank)</a>
    </p>

</body>


 

<body>
    <!-- 다양한 링크의 형태 -->
    <p>
        <!-- 같은 도메인이라도 http://와 https:// 의 홈페이지 주소가 다른 경우도 있음. 주의할 것
        -->
        <a href="https://www.naver.com">네이버</a>
    </p>

    <p>
        <!-- 같은 폴더 내의 html 페이지로의 이동 -->
        <a href="./04.html">메인페이지로</a>
    </p>

    <p>
        <!-- 아웃룩 메일 계정으로 연결할 때 -->
        <a href="mailto:webmaster@koreaedugroup.com">관리자</a>
    </p>

    <p>
        <!-- 빈 링크 또는 임시 링크로 표시 -->
        <a href="#">임시링크</a>
    </p>

    <!-- 빈 링크의 경우 문서의 탑으로 이동하는 성격이 있음 -->
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <a href="#">임시링크</a><br>
    <a href="#none">임시링크 2</a>

</body>

 


 📍 링크 속성 변경

<style>
    a { /* 태그를 먼저 선택 후 속성명과 속성을 입력 */
        text-decoration: none; /* 텍스트 꾸미기 : 밑줄 사용 안함 */
        color: black; /* 텍스트의 색상을 검정색으로 */
    }
</style>

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it 한권으로 끝내는 웹 기본 교과서']


 

1.  HTML ?

 

👩🏻‍💻  HyperText Markup Language ; 웹 문서를 만드는 언어, 하이퍼텍스트란 문서를 서로 연결해 주는 링크를 의미

    ⚡️  엑셀, 워드 파일과 달리 웹 문서는 내용을 작성하는 프로그램과 그 내용을 확인하는 프로그램이 다르다.

 

1) 기본 구조

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title>기본 문서</title>
  </head>
  <body>
    <h1>프론트엔드 웹 개발</h1>
    <hr>
    <p>HTML</p>
  </body>
</html>

 

 

a.  <!DOCTYPE html> : 현재 문서가 HTML5 언어로 작성한 웹 문서라는 뜻

 

b.  <html>~</html> : 웹 문서의 시작과 끝을 나타내는 태그, 웹 브라우저가 <html> 태그를 만나면

                                           </html>까지 소스를 읽어 화면에 표시한다.

 

c.  <head>~</head>웹 브라우저가 웹 문서를 해석하는 데 필요한 정보를 입력하는 부분

         - <meta> 태그 : 화면에 글자를 표시할 때 어떤 인코딩을 사용할지 지정.

                                         이 외에 웹 사이트의 키워드나 간단한 설명, 제작자 등의 정보를 지정

<meta name="keywords" content="html의 구조">
<meta name="description" content="html의 구조를 알아봅시다.">
<meta name="author" content="Kyunghee Ko">

 

         - <title> 태그 : 웹 브라우저의 제목 표시줄에 표시

 

d.  <body>~</boody> : 실제로 웹 브라우저 화면에 나타나는 내용

 


2. 텍스트 입력하기

 

1) 제목을 나타내는 <hn> 태그

 

🍒  웹 문서에서 제목은 다른 텍스트보다 크고 진하게 표시

🍒  heading을 줄인말, n의 자리에 1~6의 숫자가 들어가며 크기별로 표시할 수 있다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>제목 글자 태그</title>
</head>
<body>
<!-- 주석 -->
<!-- 주석문은 실행 결과에 아무런 영향을 주지 않으며, 코드 내에서 수정 및 보완을 위해 표시하여 사용. -->
<!-- 프로그래밍의 주석과 다르게 사용자가 주석을 볼 수 있으니, 민감한 내용은 적으면 안됨. -->
<!-- 주석 기호와 주석 내용 사이에는 반드시 공백 한 칸이 있어야 가독성이 좋음 -->
<!-- 공식적으로 주석의 종료는 없음. 하지만 종료 역할을 하는 태그가 있어야 코드의 시작과 끝을 알 수 있음
관습적으로 주석의 종료는 주석의 시작과 동일한 내용이고, 앞에 "//"를 붙여줌 -->
<!-- 주석 -->

<!-- 블럭 형태의 글자 태그 -> 박스처럼 작성한 순서대로 위에서 아래로 쌓이는 형태
01. 제목 태그
h1 ~ h6 : 숫자가 뒤로 갈수록 글자 사이즈가 줄어듦, 타이틀에 사용, 볼드체
-->

<h1>Header-1</h1>
<h2>Header-2</h2>
<h3>Header-3</h3>
<h4>Header-4</h4>
<h5>Header-5</h5>
<h6>Header-6</h6>

<!-- 다른 태그로도 제목 표현이 가능하나 span 태그는 단순한 텍스트가 들어가는 용도.
html5에서는 표현 뿐만 아니라 '문서 구조'도 중요하니 제목이면 h 태그를 사용 할 것. -->
<span style="font-weight: bold; font-size: 32px;">Header-1 by span</span>
</body>
</html>


 

2)  텍스트 단락을 만드는 <p> 태그, 줄을 바꾸는 <br> 태그

 

🍒  <p>와 </p> 태그 사이에 텍스트를 입력하면 텍스트 앞뒤로 빈 줄이 생기면서 텍스트 단락이 만들어 진다.

🍒  주의할 점은 편집기에서 줄을 바꾸더라도 웹 브라우저에서는 한 줄로 표시된다.

       but, 텍스트 단락의 내용이 길어서 웹 브라우저에 한 줄로 표시할 수 없을 경우 자동으로 줄이 바뀐다.

       ➡️  <br> 태그를 사용하면 원하는 위치에서 줄 바꿈 가능, 닫는 태그가 필요 없다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!-- p: 단락, 본문에서 단락을 구분하거나 나타낼 때 주로 글자를 담아서 표현 -->
    <!-- p 태그는 레이아웃에 사용하지 말고 본문글의 내용의 단락을 나눌 때 사용할 것 -->
    <h1>Header-1</h1>

    <p>
        Lorem
        Ipsum is simply dummy text of dummy text of the printing and typesetting industry. <br>
        Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
        when an unknown printer took a galley of type and scrambled it to make a type specimen book.
        It has survived not only five centuries, but also the leap into electronic typesetting,
        remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets
        containing Lorem Ipsum passages, and more recently with desktop publishing software
        like Aldus PageMaker including versions of Lorem Ipsum.
    </p>
    <p>
        It is a long established fact that a reader will be distracted by the readable content of a page
        when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution
        of letters, as opposed to using 'Content here, content here', making it look like readable English.
        Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text,
        and a search for 'lorem ipsum' will uncover many web sites still in their infancy.
        Various versions have evolved over the years, sometimes by accident, sometimes on purpose
        (injected humour and the like).
    </p>
</body>
</html>

 

<body>
<!-- br : 본문 작성시 줄을 바꿔야 하는 경우에 사용
    닫는 태그가 없다. <br>, <br/> 모두 사용 가능 -->
<h1>Header-1</h1>
<p>
    Lorem Ipsum is simply dummy text of the <br><br><br><br><br><br><br><br><br><br><br><br> printing and

    typesetting industry.
</p>
<p>
    when an unknown printer took a galley of type <br/> and scrambled it to make a type specimen book.
</p>
</body>


 

3)  인용할 때 쓰는 <blockquote> 태그

 

🍒  인용문을 인식할 수 있도록 <blockquote>와 </blockquote> 태그로 감싸주어야 한다.

🍒  다른 텍스트보다 약간 들여 쓰기 된다.

<body>
    <!-- blockquote : 태그는 긴 인용문을 나타낼 때 사용하며, 들여쓰기를 한 것으로 표현 -->
    <blockquote>
        - 존 레논 (John Lennon) - <br>
        그룹 비틀스의 리더로 작가, 그래픽 아티스트, 솔로 가수로도 활동했다.
    </blockquote>

</body>

들여쓰기가 된 결과

 


 

4) 텍스트 굵기 강조 <strong>, <b>

 

🍒  <strong>~</strong> : 경고, 주의사항과 같이 중요한 내용을 강조할 때

🍒  <b>~<b> : 단순히 글자를 굵게 표현하고 싶을 때

 


 

5) 기울인 텍스트 입력 <em>, <i>

 

🍒  <em>~</em> : emphasis의 줄임말로 문장에서 흐름상 특정 부분을 강조하고 싶을 때 사용

🍒  <i>~</i> : italic의 줄임말로 마음속의 생각이나 용어, 관용구 등에 강조할 때 사용

 


 

6) 글자 스타일 적용 <span>

 

🍒  <span>~</span> : 글자를 꾸밀 때 사용. 스타일의 선택자와 함께 주로 사용.
                                            스타일을 안주면 아무런 효과가 없다. 인라인 태그 중에 사용 빈도가 제일 높다 

<body>
<!-- 글자와 같은 성격을 가진 글자 태그(inline) : 옆으로 쌓이는 태그 -->
<!-- 거의 모든 인라인 속성의 태그는 블럭 속성 안에서 사용 된다. -->

    <p>
        <!-- strong : 경고, 주의사항과 같이 중요한 내용을 강조할 때 -->
        <strong>굵게</strong>

        <!-- b : 글자를 굵게 표현하고 싶을 때 : 내용이 아니라 표현만 할 때 -->
        <b>굵게</b><br>
    </p>
    <p>
        <!-- 주위 텍스트에 비해서 강조된 부분이나 저자의 생각 강조 -->
        <em>기울이기</em>

        <!-- i : 이탤릭체를 표현하고 싶을 때 : 내용이 아니라 표현만 할 때 -->
        <i>기울이기</i><br>
    </p>
    <p>
        <!-- span : 글자를 꾸밀 때 사용. 스타일의 선택자와 함께 주로 사용.
        스타일을 안주면 아무런 효과가 없다. 인라인 태그 중에 사용 빈도가 제일 높다 -->
        <span>글자내용</span><br>
        <span>글자</span>내용<br>
        <span style="font-weight: bold;">글자</span>내용<br>
    </p>
</body>

 


 

7)  수평줄 태그 <hr> 

 

🍒  <hr> : 수평줄을 나타내는 태그, 닫는 태그 x

<body>
    <h1>Header-1</h1>
    <hr>
    <p>
        Lorem Ipsum is simply dummy text of the <br> printing and typesetting industry.
    </p>
    <hr>
    <p>
        when an unknown printer took a galley of type <br/> and scrambled it to make a type specimen book.
    </p>
</body>

 


 

8) 기타 태그

 

🍒  <q>~</q> : 따옴표로 감싼 인용 문구 표현. 짧은 부분 인용할 때 사용

🍒  <mark>~</mark> : 노란 형광펜 효과. 중요한 부분 강조할 때 사용

🍒  <del>~</del> : 문서에서 삭제된 텍스트나 지워야 할 부분 강조. 취소선, 중간줄 표시

🍒  <ins>~</ins> : 문서에 나타난 텍스트에 강조하거나 밑줄 표현시 사용

🍒  <ruby>~</ruby> : 동아시아 국가들의 주석(발음) 내용을 표시하기 위해 사용

🍒  <sub>~</sub> : 글자의 아래로 붙는 아래 첨자

🍒  <sup>~</sup> : 글자의 위로 붙는 위 첨자

 

<p>
    <q>장마</q>기간입니다.<br>

    <mark>형광펜 표시</mark> <br>
</p>


<p>
    <del>지울 것</del><br>

    <ins>밑줄 표현</ins><br>
</p>

<p>
    <ruby>
        漢子<rt>한자</rt>
    </ruby>
    <br>
    글자의 위로 붙는 <sup>위첨자</sup><br>
    글자의 아래로 붙는 <sub>아래첨자</sub>
</p>

 


 

3. 목록 만들기

1) 순서 없는 목록을 만드는 태그

 

🍒  unordered list의 약자인 <ul>과 </ul> 태그를 목록 앞 뒤에 붙인 후 list의 약자인 <li>와 </li> 태그를 삽입한다.

🍒  항목 앞에 작은 원이나 사각형을 붙여서 구분하는데 이런 작은 그림을 불릿 bullet 이라고 한다.

<body>
    <!-- 순서가 없는 목록 태그 예문 -->
    <!-- ul : unordered list의 약자 -->
    <!-- li : list item의 약자 -->
<ul>
    <li>짜장면 </li>
    <li>짬뽕</li>
    <li>울면</li>
    <li>야끼우동</li>
</ul>

</body>


 

2) 순서가 있는 목록을 만드는 태그

 

🍒  ordered list의 약자인 <ol>과 list의 약자인 <li> 태그를 사용해 만든다.

🍒  ol의 type 속성을 사용하면 숫자 이외에도 영문자나 로마 숫자등으로 순서를 나타낼 수 있다.

종류 설명
type = "1" 숫자(기본값)
type = "a" 영문 소문자
type = "A" 영문 대문자
type = "i" 로마 숫자 소문자
type = "I" 로마 숫자 대문자

 

🍒  'start' 속성을 사용해서 시작 번호를 바꿀 수도 있다.

<body>
    <!-- 순서가 있는 항목 예문 -->
    <!-- ol : ordered list의 약자 -->
    <ol type="A">
        <li>짜장면 </li>
        <li>짬뽕</li>
        <li>울면</li>
        <li>야끼우동</li>
    </ol>

    <ol start="3">
        <li>짜장면 </li>
        <li>짬뽕</li>
        <li>울면</li>
        <li>야끼우동</li>
    </ol>
</body>


 

3) 설명 목록을 만드는 <dl>, <dt>, <dd> 태그

 

🍒  설명 목록 description list 란 이름과 값 형태로 된 목록을 말한다.

🍒  이름(단어명)을 지정하는 <dt> 태그, 태그와 값(설명) 부분을 지정하는 <dd> 태그로 구성

🍒  <dl>과 </dl> 태그 사이에 한 쌍의 <dt>, <dd> 태그를 넣는다.

        ▶️  <dt> 태그 하나에 <dd> 태그를 여러 개 사용할 수도 있다.

<body>
    <!-- 제목 -->
    <h2>SBS아카데이컴퓨터아트학원</h2>

<!-- dl : definition list : 정의 목록 -->
<!-- dt : definition term : 정의 용어 : 용어의 제목 -->
<!-- dd : definition description : 정의 설명 : 용어의 설명 -->

<!-- 정의 목록 전체 선언 -->
<dl>
    <!-- 정의될 항목 -->
    <dt>강남지정</dt>
    <!-- 항목에 대한 설명 -->
    <dd>주소:서울특별시 서초구 서초대로 77길3 아라타워 5층</dd>
    <dd>전화:02)530-8555</dd>
</dl>

<dl>
    <!-- 정의될 항목 -->
    <dt>신촌지점</dt>
    <!-- 항목에 대한 설명 -->
    <dd>주소:서울특별시 서대문구 신촌로 183 유인빌딩 5층</dd>
    <dd>전화:02)312-9660</dd>
</dl>

</body>

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it 한권으로 끝내는 웹 기본 교과서']

+ Recent posts