본문 바로가기
TIL

2024.03.08 13일차 HTML

by Song.dev 2024. 3. 8.

블록요소와 인라인요소

블록 요소 (Block Element) - 영역을 만드는 것

  • 블록 요소는 마크업시 자동으로 줄바꿈이 일어나는 요소를 말합니다.
  • 블록 요소 안에는 또 다른 블록 요소, 인라인 요소를 포함O (블록/인라인 모두 블록 자식 가능)
  • 사용 가능한 최대 가로 너비를 점유하며 가로, 세로의 크기를 지정할 수 있습니다.
  • 대표적으로 <div>, <h1~6>, <p> 등 거의 대부분의 태그가 블록 요소 성질을 갖고 있습니다.

→ 수직으로 쌓인다 (태그를 같은 줄에 써도) → width, height에 따라 바뀔 수 있고 수직 배치 유지

인라인 요소 (Inline Element) - 텍스트를 만드는 것

  • 인라인 요소는 마크업시 자동으로 줄바꿈이 일어나지 않는 요소를 말합니다.
  • 인라인 요소 안에는 텍스트와 인라인 요소를 포함할 수 있고, 블록 요소를 포함할 수 없음
  • 필요한 만큼의 너비를 사용하며, 가로 세로 크기를 지정할 수 없습니다.
  • 대표적으로, <span> , <a>, <strong> 등이 있습니다.

→ 텍스트가 있는 만큼만 점유 = 필요한 만큼만 → 가로세로 지정이 안 됨!!!!!!!!!! → 이미지를 넣으면 이미지 만큼만 가로세로 변경

→ 인라인은 display: block; 속성을 지정하면 블록처럼 쓸 수 있음   (display: inline 디폴트값)
     반대로 블록은 display:block 디폴트 값

 

  // 블록요소 
  // h1+div+p     +tab (에밋 문법)
  <h1></h1>
  <div></div>
  <p></p>
  
  // 인라인 요소
  // span+em+a    +tab (에밋 문법)
  <span></span><em></em><a href=""></a>
  
  
  //fz2e +tab -> font-size 2배(에밋 문법)

 

에밋 문법

빠른 코딩을 도와주는 플러그인으로 정해진 문자를 활용하여 tab 하면 적용 가능

 

  • h$*6 : $*6 연속적인 숫자 1~6
  • h${Hello}*6 : 
  • h${Hello$}*6 : 텍스트 Hello1~Hello6
  <!--h$*6-->
  <h1></h1>
  <h2></h2>
  <h3></h3>
  <h4></h4>
  <h5></h5>
  <h6></h6>
  
  <!--h${Hello}*6-->
  <h1>Hello</h1>
  <h2>Hello</h2>
  <h3>Hello</h3>
  <h4>Hello</h4>
  <h5>Hello</h5>
  <h6>Hello</h6>  
  
  <!-- h${Hello$}*6 -->
  <h1>Hello1</h1>
  <h2>Hello2</h2>
  <h3>Hello3</h3>
  <h4>Hello4</h4>
  <h5>Hello5</h5>
  <h6>Hello6</h6>

 

각 태그의 주의사항

  • 각 항목(li)의 정렬된 목록(ol)이나 정렬되지 않은 목록(ul)을 설정하여 사용합니다.
  • ol 과 ul은 자식태그로 li만 사용 가능. ↔ li 의 부모는 ol, ul
  • li는 단독으로 사용 불가
  • 항목의 순서를 바꿨을 때 의미도 바뀐다면 <ol>을 사용하세요. 그렇지 않으면 <ul> 사용
  • <b>, <mark>, <em>, <strong> 모두 구조적 강조이지 서식을 꾸미지 않음
  • <br>, <pre> 를 통해 문단을 구분할 수 있음
  • <a href="https://www.google.com" target="_blank">구글 링크</a>
    —> target 속성 '_blank'를 사용하면 새 탭에서 링크 열림
  // a 태그 활용
  <div id="github">깃허브 링크</div>
  <a href="../1. 요소 성질/1.블록요소.html">
    블록요소 공부하기
  </a>
  
  <a href="tel:+821072709984">문의전화</a>
  <a href="email:kitsnr08@gmail.com">메일</a>
  
  <a href="#top">안녕하세요로 이동</a>   --> 페이지에서 #top으로 이동
                                        --> 일반적으로 맨 위로 가기 버튼 기능
  
  
  <script>
    github.onclick = e => {
      window.location.href = 'https://www.github.com';
    };
  </script>

 

img

// 로컬은 상대경로로 사용 (보안을 위해..)
<img src="../../mymelody.png" alt="">

// 이미지 주소복사 -> url

→ inline-block 요소 (인라인처럼 수평배치 + 블록처럼 너비높이 조절 가능)

iframe

  • 현재 문서 안에 다른 HTML 페이지를 삽입합니다.

유튜브에서 소스코드 복사하면 웹페이지에 임베드 할 수 있음

 <iframe src="" frameborder="0"></iframe>

 

 

표  table

→ 게시판에서 많이 쓰는 형태

 

*  table>tr*3>td*4            (3행 4열)

*  tr>td*4                          (1행 추가)

 

<table> 테이블 생성 <--- 가로로 두 열을 병합 하면 colspan="2"
<tbody> <tr>의 부모   ↑ 세로로
<tr> 테이블의 행   | 여러 행을 병합하면
<th> 테이블 머리글   | rowspan="4"
<td> 테이블의 셀 데이터  
  • rowspan : 여러 row를 하나로 병합하는 속성
  • colspan : 여러 column을 하나로 병합하는 속성
    // 열 병합
    <tr>
      <th colspan="5">안녕안녕</th>
    </tr>
    
    // 행 병합
    <td rowspan="3"></td>

 

*    셀 병합 시 처음으로 rowspan, colspan 속성을 사용한 td를 제외하고

      병합되는 셀에 해당하는 td는 작성하지 않아야 함

**  table 자식 tr → tr의 부모는?

       table 아님! 실제로는 tbody > tr      ( table>tbody>tr>td )

 

 


 

정리

  1. HTML 태그들은 구조적 맥락에 따라 사용한다
    즉, 어떤 서식, 스타일을 위해 사용하지 않는다.
  2. 블록과 인라인 특성도 CSS를 통해 변경할 수 있다.
  3. img, iframe, table 관련 태그 주의사항을 알고 사용할 수 있다.

* 로렘입숨

   웹디자인, 타이포 등의 작업을 하면서 필요한 대량의 텍스트를 무작위 생성

   일종의 모형, 그리킹 Greeking
 

 

** VSCode 단축키

alt+shift+↓ : 코드라인 복붙 

alt + ↓, ↑ : 코드라인 위치 이동

 

+ 상단의 File > preferences (기본설정) > 바로가기 키 (keyboard shortcut) 으로 커스텀 설정할 수 있음