1.  웹 문서의 레이아웃

1) display 속성

 

🐰  display 속성은 주로 웹 문서의 내비게이션을 만들면서 메뉴 항목을 가로로 배치할 때 많이 사용한다.

종류 설명
block 인라인 레벨 요소를 블록 레벨 요소로 만든다.
inline 블록 레벨 요소를 인라인 레벨 요소로 만든다.
inline-block 인라인 레벨 요소와 블록 레벨 요소의 속성을 모두 가지고 있으며 마진과 패딩을 지정할 수 있다.
none 해당 요소를 화면에 표시 x

 

display: block 사용 예
<head>
    <style>
        .transform {
            display: block; /* 속성 변경 */
        }
    </style>
</head>
<body>
    <!-- span 태그의 기본 속성에 의한 배치 -->
    <span>SPAN 01</span>
    <span>SPAN 02</span>
    <span>SPAN 03</span>
    <!-- span 태그의 변경된 속성에 의한 배치 -->
    <span class="transform">SPAN 04</span>
    <span class="transform">SPAN 05</span>
    <span class="transform">SPAN 06</span>

</body>

출력 결과


display: inline 사용 예
<head>
    <style>
        li {
            border: 2px solid black; 
        }
        .v_menu {
            list-style: none; /* 목록 항목의 스타일 기호를 없앰 */
        }
        .h_menu {
            display: inline;
        }
    </style>
</head>
<body>
    <ul>
        <li class="v_menu">세로메뉴01</li>
        <li class="v_menu">세로메뉴02</li>
        <li class="v_menu">세로메뉴03</li>
        <li class="v_menu">세로메뉴04</li>
    </ul>

    <ul>
        <li class="h_menu">네이버</li>
        <li class="h_menu">다음</li>
        <li class="h_menu">쿠팡</li>
        <li class="h_menu">구글</li>
    </ul>
</body>

출력 결과


display: inline-block 사용 예

 

  -  inline의 경우 한줄로 배치할 수 있지만, 넓이와 높이, 마진과 같은 정확한 값이 필요한 경우에는 적용이 힘듦
  -  inline 속성의 특성은 내부 콘텐츠만큼만 공간을 차지하고 있어서 넓이와 높이의 스타일이 적용이 안됨
  -  inline-block을 사용하면 해당 요소들을 가로로 배치할 수 있고 각 요소의 넓이와 높이 등 정확한 수치를 지정할 수 있음

<head>
    <style>
        li {
            border: 2px solid black;
        }
        .menu1 {
            display: inline; 
            background-color: yellowgreen;
            width: 150px;
            height: 40px; /* 넓이, 높이를 지정하였으나 inline 속성이기에 넓이, 높이가 적용되지 않음 */
        }
        .menu2 {
            display: inline-block; 
            background-color: orange;
            width: 150px;
            height: 40px; 
        }
    </style>
</head>
<body>
    <ul>
        <li class="menu1">inline</li>
        <li class="menu1">inline</li>
        <li class="menu1">inline</li>
        <li class="menu1">inline</li>
    </ul>

    <ul>
        <li class="menu2">inline-block</li>
        <li class="menu2">inline-block</li>
        <li class="menu2">inline-block</li>
        <li class="menu2">inline-block</li>
    </ul>
</body>

출력 결과


display: none 사용 예


   -  해당 요소와 공간을 모두 표시하지 않음
   -  비슷한 속성 중에 visibility: hidden; 이 있는데, visibility 속성은 화면에는 요소가 보이지 않으나 공간은 그대로 유지

        사용 예)
        팝업창(레이어 방식) 닫기.
        반응형 웹의 경우 모바일에서는 보이지만 PC에서는 보이지 않게 하려면 display: none 속성을 사용

<head>
    <style>
        .camera02 {
            display: none; /* 해당 요소의 공간과 내용을 없앰 */
           /* visibility: hidden; */
        }
    </style>
</head>
<body>
    <img src="img2/camera04.png" class="camera01" alt="camera04.png">
    <img src="img2/camera05.png" class="camera02" alt="camera05.png">
    <img src="img2/camera06.png" class="camera03" alt="camera06.png">
</body>

출력 결과

 


2) 왼쪽이나 오른쪽으로 배치하는 float 속성

 

🐰  html 초기 형태는  table 태그가 레이아웃을 잡는 용도로 사용
🐰  html4 부터는 레이아웃 용도로 table 태그 대신 div에 float 속성을 부여하는 방향으로 사용
🐰  html5 이후 부터 display 속성에 flex, grid 추가 하여 레이아웃에 사용

 

    💡 float 속성
      · float의 사전적 의미는 '떠오르다', '떠다니다'
      · 웹 페이지에서는 float을 왼쪽이나 오른쪽에 배치할 때 사용하며 배치를 하지 않을 경우 'none'으로 표현
      · 삽화 사용뿐 아니라, 레이아웃(block)을 나열할 때 많이 사용

 

left : 문서의 왼쪽으로 배치. 블록 박스를 왼쪽으로부터 나열하고 싶을 때 사용.
right : 문서의 오른쪽으로 배치. 블록 박스를 오른쪽으로부터 나열하고 싶을 때 사용.
none : 배치하지 않음. 정렬하지 않음
 ➡️  left와 right를 통해 나열 속성을 지정하면 display 개념은 무시됨. (none은 제외)

 

<head>
    <style>
        .camera {
            float: left;
        }
    </style>
</head>
<body>
    <img src="img/camera01.png" class="camera" alt="camera01">
    <h2>TITLE-1</h2>
    <p>
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    </p>
</body>

출력 결과

 

<head>
    <style>
      div {
        width: 300px;
        height: 300px;
        border: 2px solid black;
      }

      .box1 {
        float: left;
      }

      .box2 {
        float: left;
      }
      .box3 {
        float: right;
      }
    </style>
</head>
<body>
    <div class="box1">01</div>
    <div class="box2">02</div>
    <div class="box3">03</div>
</body>

출력 결과

 


 

3) float 속성을 해제하는 clear 속성

 


🐰  float 속성으로 박스를 배치하면 이어지는 요소들도 동일한 속성이 적용
🐰  float 속성이 더 이상 필요하지 않다면 기존 속성을 해체하기 위한 clear 속성을 사용

  🥕  clear : float 나열에 대한 값을 지우고, 문서의 흐름을 제거하기 위해 사용하는 태그

  clear: left  ▶️  왼쪽으로 붙는 float 정렬을 취소
  clear: right  ▶️  오른쪽으로 붙는 float 정렬을 취소
  clear: both  ▶️  왼쪽, 오른쪽으로 붙는 float 정렬을 취소
  clear: none  ▶️  clear 속성을 설정하지 않은 것과 같음

 

<head>
    <style>
        div {
            width: 300px;
            height: 300px;
            border: 2px solid black;
        }
        .box1 {
            float: left;
        }
        .box2 {
            float: left;
        }
        .box3 {
            float: left;
        }
        .clear {
            clear: both;
        }
    </style>
</head>
<body>
    <div class="box1">01</div>
    <div class="box2">02</div>
    <div class="box3">03</div>
    <div class="clear">04</div>
    <div>05</div>
    <div>06</div>
    <div>07</div>
</body>

 

출력 결과

 

display : inline-block 과 float : left 속성의 다른점

 

 - inline-block은 가로로 배치하면서도 기본 마진과 패딩을 가지고 있지만,

    float: left는 가로로 배치될 때 요소에 기본 마진과 패딩이 없고 clear 속성으로 플로팅을 해제해야 함

 


2.  여백을 조절하는 속성

 

1) 요소 주변의 여백을 설정하는 margin 속성

margin: <크기>|<백분율>|auto

 

 

🐰  마진 margin은 요소 주변의 여백을 의미

🐰  top ▶️ right ▶️ bottom ▶️ left 순으로 적용

 

 

 

 

 

 


 

2) margin 속성을 사용하여 웹 문서를 가운데 정렬하기

 

🐰  웹 문서 전체를 화면 중앙에 배치할 때 margin 속성을 사용

🐰  margin-left 와 margin-right 의 속성값을 auto로 지정

       ➡️  CSS는 웹 브라우저 화면의 너비에서 요소 너빗값을 뺀 나머지 영역을 좌우 마진으로 자동 계산

       ➡️  block 속성을 가진 박스의 넓이가 지정되어 있을 때 margin:0 auto를 통해 가운데 배치가 가능하며

            margin: auto auto 라고 입력하면 브라우저의 위아래는 자동 인식이 되지 않지만 좌우는 자동으로 가운데 배치가 가능

<head>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .banner {
            width: 740px;
            height: 120px;
            background-color: burlywood;
            float: left;
        }
        .login {
            width: 333px;
            height: 120px;
            background-color: beige;
            float: left;
            margin-left: 8px;
            /* 로그인 박스 기준에서 간격을 주고자 왼쪽 바깥쪽 여백을 지정하였으며,
            배너 박스 기준일 때 바깥쪽 여백은 margin-right가 됨. */
        }

        .main {
            width: 1081px; /* 배너 박스와 로그인 박스를 더한 값 */
            height: 120px; /* 두 개 박스의 고정 높이 */
            margin: 100px auto;
            /* margin 값이 2개일 때 top bottom, left right로 지정 */
        }
    </style>
<body>
    <div class="main">
        <div class="banner">배너영역</div>
        <div class="login">로그인</div>
    </div>
</body>

출력 결과

 

안쪽 박스에 border가 추가 되면 박스의 넓이와 높이에 영향을 주게 되어서 박스들이 밑으로 밀려나는 현상이 나타남
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .banner {
            width: 740px;
            height: 120px;
            background-color: burlywood;
            float: left;
            border: 2px solid black;
        }
        .login {
            width: 333px;
            height: 120px;
            background-color: beige;
            float: left;
            margin-left: 8px;
            border: 2px solid black;
        }
        /*
        배너 영역 박스 넓이 : 740 + 2 + 2 = 744px
        로그인 박스 넓이 : 333 + 8 + 2 + 2 = 345px
        부모 박스의 넓이 : 744 + 345 = 1089px
        부모 박스의 높이 : 120 + 2 + 2 = 124px
         */
        .main {
            width: 1081px; /* 배너 박스와 로그인 박스를 더한 값 */
            height: 120px; /* 두 개 박스의 고정 높이 */
            margin: auto auto /* margin 값이 2개일 때 top bottom, left right로 지정 */
        }
    </style>
<body>
    <div class="main">
        <div class="banner">배너영역</div>
        <div class="login">로그인</div>
    </div>
</body>

출력 결과

 


 

3) 마진 중첩 이해하기

 

🐰  박스 모델들을 세로로 배치할 경우 각 마진과 마진이 서로 만나면 마진값이 큰 쪽으로 겹쳐지는 문제가 발생

       ▶️ 이런 현상을 마진 중첩 margin overlap 또는 마진 상쇄 margin collapse 라고 함

       ▶️ 오른쪽 마진과 왼쪽 마진이 만날 경우에는 중첩되지 않음

 


 

4) 콘텐츠와 테두리 사이의 여백을 설정하는 padding 속성

 

 

 

🐰  패딩 padding 이란 콘텐츠 영역과 테두리 사이의 여백을 말함

🐰  4개 방향의 패딩을 한꺼번에 지정할 수도 있고, 예약어를 사용해서 특정 방향에만 지정할 수도 있다.

 

 

 

 

 

 

 

 

 

 

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


 

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