Wecode- 프리코스 (부트캠프)

프리코스(1) - 8/14 HTML

JBS 12 2023. 9. 26. 14:19

8/14  HTML 

 

Element = 태그 이름, 요소

위아래에 <html></html> 태그가 없으면, 인식을 못하기에 이렇게 해줘야함



Html 기본적 문법

HTML파일에 필요한 최소한의 태그는 아래와 같습니다.

  • <html>
  • <head>
  • <body>
  • 앞뒤로 시작하고 끝나는 태그로 이루어짐 (그러지 않은 것도 있음; 시작과 동시에 끝나는 <img> <br> 끝낼 게 없으니)
  • 태그 안에 내가 쓰고 싶은 거 다 씀
  • 이미지 텍스트 다 넣을 수 있는데 그에 맞는 태그로 알려줘야 
  • 총 150개 태그이지만, 다 암기 안 해도 됨,  적절하게 검색하면 됨 
  • 웹페이지는 평균적으로 32개 태그 사용됨 (가장 빈번하게 사용) 

<html> <head> <body> <title> <meta> <div> <a> <script> <link> <img> <span> <p> <li> <ul> <style> <br> <h2> <input> <h1> <form> <h3> <nav> <footer> <header> <iframe> <button> <strong> <i> (빈도율로 나열)



8/14는

32개 태그 중에 10개 배우고 CSS로 넘어갈 것 

  • <header></header>
  • <h1></h1>
  • <h2></h2>
  • <section></section>
  • <p></p>
  • <li></li>
  • <a hef=””></a>
  • <br>
  • <hr>

 


1. 웹사이트 만들기 

 

<head>

<title>Document</title>

<meta charset="UTF-8" />

</head>

 

  • 이게 한 세트, 단락, 화면을 쪼개서 생각! 
  • <head>태그는 웹사이트 화면에는 안 나옴, <title> 내용만 탭 이름으로 나옴

 

웹사이트 화면에 보이는 파트는 <body>부터만! 

 

-   웹사이트 만들기 전, 쪼개서 생각/

     단락, 화면을 쪼개서 생각! 

     헤드/ 메뉴/ 전체 파트 (전체파트 내용에서도 설명, 이미지, 나의 개인정보

아이콘과 텍스트도 모두 태그로 쪼개져 있다! 

 

 

왼쪽 side-bar 위 header, 가운데 main contents( body) 

 

  • 물건을 하나하나 박스에 넣으면 박스가 낭비 됨 → 태그 하나하나를 박스에 담으면 성능이 나빠짐, 세세하게 나눌 필요 없다
  • Body 안에도 header,설명, 오른쪽 사이드바, 이미지, 타이틀, 



먼저 

바디 

  1. Developer Code Kim 작성
  2. Let’s start with wecode 작성 
  3. 소개글
  4. 이미지 
  5. Email, Instagram

 

메뉴  

  1. Home
  2. About me 
  3. Career 
  4. Projects 

이런식으로 하고 나서,태그 넣기 



- 같은 태그에 있으면 줄 띄어도 한 줄에 나옴! 

- 태그로 분리해 놓아야 함



<header></header> : 제목, 주제 (사용하기 나름) 

  • 다른 개발자와 웹브라우저에게 이거 중요하다고 알려주는 역할
  • 직접 이 안에 텍스트 넣기도 하고, 다른 태그를 넣어서 감싸는 역할 하기도 



<section></section> 

  • 나눠 주는 역할 

 

태그끼리 들여쓰기를 indent 들여쓰기 보고 어디부터 어디까지인지 한세트인지 알 수

 

<img src= “링크 주소" alt=”이미지제대로 작동하지 않을때 뭐라고 적어줄래?"> 

<a> 태그

  • a는 tag 이름이고
  • href는 <a> 태그의 attribute(속성) 이름이며
  • https://wecode.com 는 href 속성에 대한 attribute 값이고
  • "위코드로 이동"은 content(내용)입니다.

위코드로 이동

Target : 어디에서 열지 설정

  • “_self”: 이전창

<a href="https://wecode.com" target=”_self”>Click</a> 

  • “_blank”: 새로운 창

<a href="https://wecode.com" target=”_blank”>Click</a> 

 


2. Ol, Ul, li

ol>li*3 + tab 키 누르면 자동으로 

 

<ol>

    <li></li>

    <li></li>

     <li></li>

 

→ 

    1. 

    2. 
    3. 


<ol type =”i”>

     <li>1</li>

     <li>2</li>

     <li>3</li>

</ol> 

 

→ 

    i. 1

   ii. 2

   iii. 3


   <ol type =”i” reversed>

          <li>1</li>

          <li>2</li>

          <li>3</li>

   </ol> 

→ 

   iii. 3

   ii. 2

   i. 1




ul>li*3 + tab 키 누르면 자동으로 

   → 

        <ul>

       <li></li>

       <li></li>

       <li></li>

 

→ 

  •  
  •  
  •  

 

<ul> 만 있다고 해서 목차 나오지 않음

<ul> + <li> 

<ol>+<li> 있어야 

  1. ㅇ.



<li> list tag만 있는 게 아니라, <ul> <ol>로 감싸는 이유는 목차 구분해주기 위해서 

 

<hr> 태그는: 구분선!  단순히 분리하기 위해서 

 

<a> 태그는 링크 걸 때 → Instagram



Semantic Tags  

  • 그냥 띄어쓰기 해도 되는데, 굳이 <h1> 태그 쓰는 이유 → 검색 잘 되라고 넣어 주는 것
  • 이거 중요한 거야 그니까 이거 위에 띄어줘 (h1에 쓴 텍스트)

2-1. HTML Attributes

 2-1-1. id

id는 각 태그에 이름을 주는 속성입니다. 

이름은 이름인데, 주민등록 번호와 같이 한국에 단 하나밖에 없어 대상을 식별할 수 있는 고유한 값이어야 합니다. 

 

따라서 웹 페이지에 해당 id 이름은 오직 하나만 가질 수 있습니다.

 즉, 중복된 id 이름이 있으면 안된다는 말입니다.

 

아래와 같이 profile이라는 id를 가진 태그는 단 하나만 있을 수 있습니다. 

다른 태그에 profile이라는 id는 더이상 사용할 수 없습니다.

<div id="profile">

 

id는 해당 요소에만 넣고 싶은 디자인을 적용할 때 사용합니다. 

 

예를 들면 <p> 태그에 글씨 크기를 20px로 적용하면, index.html에 있는 모든 <p> 태그의 글씨가 커집니다. 이런 것을 원한것이 아니라면 id가 profile인 요소에만 글씨 크기를 20px로 적용할 수 있습니다. JavaScript 코드에서도 유용하게 사용합니다. id 이름으로 요소를 찾아서 제목을 유동적으로 바꿀 수도 있고, 새로운 데이터로 내용을 변경할 수도 있습니다.

 

  • id 이름을 준다고 딱히 변하는 것은 없습니다. 단지 tag가 이름을 얻은 것 뿐입니다.

2-1-2. class

class도 태그에 이름을 주는 속성입니다. id와 비슷한 역할이지만, 

class는 여러 태그에 중복된 이름을 부여할 수 있습니다. 

 

예를 들어 '이철수'라는 이름을 가진 사람이 여러 명 이듯이 

여러 tag에 중복된 class 이름을 줄 수 있습니다.

 

<div class="content-wrap"></div>

<p class="content-wrap"></p>


2-2. 여러 속성 추가하기

하나의 태그에 2개 이상의 속성을 부여할 수 있습니다. 

 

여러 속성을 주고 싶으면 

한 칸 띄어쓰기 후 추가하면 됩니다. 

 

속성의 순서는 상관없이 쓰고 싶은대로 쓰시면 됩니다.

 

<div id="profile" class="content-wrap"></div>

  • 이와 같이 하나의 태그에 idclass 모두 가질 수 있습니다.

 

<img src="./hi.png" alt="내사진" >

<p></p> 문단

<b></b> bold

 

<div> </div> 줄바꿈

<span> </span> 줄바꿈 없음

 

2-2-1. Input tag  

한 페이지 안에 굉장히 많은 input 있을 수 있기에 id 를 통해 고유한 식별자를 줌 

 

Input types 검색 시 기능 나옴

<input id=”input_name type=”text”> 입력창 나오고

<input id=”input_name type=”button”>

<input id=”input_name type=”checkbox”>

<input id=”input_name type=”color”> 사용자에게 color 입력 받을 수 있도록 color picker 나오고

<input id=”input_name type=”file”> file picker 나오고

<input id=”input_name type=”password”>  패스워드 치면 안 보이는 칸 나오고

  • 개발자가 화면에 쓴 순서대로 보임, 

<h3>

<h2>

<h1> 순으로 써도, 

중요하다고 해서 h1이 먼저 나오지 않음

  • h3, h2, h1 거꾸로 쓰지 않는다. (에러는 나지 않지만)
  • 그리고 h1 다음에는 h2를 쓴다. (순서대로)

글씨 크기 더 작게 쓰고 싶다고 해서 갑자기 h4를 쓰지 않는다. 

에러는 나지 않지만. 

Div  = division 


Block vs inline 

  • 한 칸 다 차지 하는 건 block element : <header>, <footer>, <p>, <li>, <table>, <div>, <h1>
  • 옆(좌우측)에 다른 요소를 붙여넣을 수 없다는 뜻
  • 내가 차지하는 만큼만 Inline level element : <span>, <a>, <img>, button

이렇게 inline, block 성질을 생각하면서 HTML 태그를 선택해야할까요?

물론 대부분 inline, block 성질에 의해 태그가 결정되지만,

아무 태그나 사용해도 결국은 CSS를 통해 얼마든지 성질을 바꿀 수 있습니다.

 

 block <p> 태그를 inline으로

inline 성질을 갖도록 하는 CSS property는 displayfloat 이 있습니다.

.inlineP { display: inline-block;}

.floatLeft { float: left;}

.floatRight { float: right;}

해당 property에 위와 같은 값을 부여하면,요소 옆에 요소가 위치하는 inline 성질로 변하게 됩니다.

 

Inline 태그 <span>block 으로

.blockSpan { display: block;}


None

 HTML은 존재하는데 화면에 보이지 않습니다.

hide 클래스에 부여한 스타일 때문에, 

hide 라는 클래스를 제거하면 요소가 다시 보일 것 

 

.hide {display: none;}

 

display: none; 이라는 값을 주면, 해당 요소는 화면에서 보이지 않습니다.

어차피 안 보일 요소는 왜 작성하는 것 일까요?

여러 이유중 하나는 interactive한 웹을 구현할 수 있기 때문입니다.

 

display: none; 이라는 값을 주면, 해당 요소는 화면에서 보이지 않습니다.

어차피 안 보일 요소는 왜 작성하는 것 일까요?

여러 이유중 하나는 interactive한 웹을 구현할 수 있기 때문입니다.

 

원래는 해당 영역이 display: none; 으로 보이지 않다가, 텍스트를 입력하는 순간,

JavaScript가 검색 목록 요소에 다른 클래스로 교체할 것입니다.

아마 그 새로운 클래스에는 display: block; 이라는 값이 있었을 것입니다.

 

이렇게 클래스 이름에 따라 요소에 display: none display: block 이 있었다가 없었다가 하면서

요소를 보이게 / 안 보이게 할 수 있는 것입니다.

정말 많이 쓰이는 기법

 

 

아무 의미 없는 태그를 넣진 않는다

<span> <div> <span> 



div는 최하위 < span < p (문장형)

이 셋 사이에서는 의미 나뉘진 않고 

 

Main / section / article / content —> 글에서 



제목이 .html로 끝나야 함. —> 

 

이미지 주소는 웹사이트에 올려져야 생기는데, 일반 이미지 파일은 

주소가 없음. 

1. ./image(1).png 로 

2. 야매 (notion이 돈주고 aws를 이용하고 있기에)

notion에 이미지 올리면 주소가 생김, 그걸 코딩에 넣으면 됨

 

Img 에 이미지 안 나올 때 뜨는 문구 —> alt (너무 중요해서 꼭 써주기)

이미지 텍스트도 읽어져서, Seo 최적화 관점에서 꼭! / 

시각장애인들 사용하는 화면 음성으로 읽어주는 도구가 읽어주지 못함. 

개발자는 어려움 있는 사람들도 잘 사용하도록 배려할 의무 있기에. 

—> 잘 돼 있는게 아마존 쇼핑몰. alt가 더거의 다 있어서, 시각 장애인들 아마존 쇼핑 이용 불편 없다고. 



프론트엔드는 CSS 잘하면 좋음, 경쟁력 있기에. CSS 잘하는 프론트 적기에. 

CSS 하면서 덜 고통스럽다면 프론트.