사이트 예제

 

해당 위치에 마우스 커서를 오버 했을 시 목록이 나타나게 만드는 HTML 코드를 작성해보았다.

아직 기능을 배우기 전이라 완벽하진 않아도 목록 자체가 나타나게끔 하면 된다고 하셨는데...

 

처음에 div 박스를 따로 만들어 리스트를 작성하고 해당 위치로 옮긴 다음 :hover를 이용하여 display:none과 block을 쓰려고 했으나 div 박스 자체에 none을 걸어버리면 hover될 위치도 사라져 해당 기능을 쓸 수 없었다! 그렇다면 선택자를 이용해 Pages 라는 단어에 hover 했을 시 형제 리스트가 나타나게끔 다시 코드를 작성해야 한다는 조언과 함께 새로 작성했다.

 

 

 

.pages:hover ~ #list_box

pages태그에 마우스가 올라왔을 때 형제 속성 중 list_box를 보이게 하라, 라고 입력하자 정상적으로 작동이 되었다...

(원래 쓰던거 그대로 복사 붙여넣기 해서 불필요한 박스가 많이 있지만 지금와서 보니 #list_nav에 display:none 값을 입력하고 #list_box:hover > #list_nav 를 했다면 아마 되지 않았을까 싶다)

 

크롬캡쳐 오류로 깜빡이지만 실제로는 정상 작동 됨


 

https://hcl-yeon.tistory.com/8

 

2024-07-31 :: 008 HTML의 구조 분석 연습 ③

https://themewagon.com/themes/free-bootstrap-4-html5-restaurant-website-template-feane/ Feane - Free Bootstrap 4 HTML5 Restaurant TemplateFeane is a highly flexible free Bootstrap template for the restaurant business. It encompasses tech-savvy features an

hcl-yeon.tistory.com

 

어제는 헤더 부분만 해결했지만 오늘은 사이트 전체를 박싱하고 돔트리를 작성한 후 HTML작업을 진행했다.

마찬가지로 기능 부분은 모두 제외하고 배치와 스타일 부분만 했는데도 오래걸렸다...^-T

 

완성본

 

https://themewagon.com/themes/free-bootstrap-4-html5-restaurant-website-template-feane/

 

Feane - Free Bootstrap 4 HTML5 Restaurant Template

Feane is a highly flexible free Bootstrap template for the restaurant business. It encompasses tech-savvy features and assets to make it user-friendly.

themewagon.com

 


 

HTML문서로 옮길 때 블럭 요소를 예상해서 박싱처리를 해주었다.

nav부분이 background-image와 한 몸처럼 이루어져 있으니 두 요소를 함께 묶어서 해야하지 싶다…

그 외에는 크게 장식이 있는 게 아니라서 nav 부분이라도 완벽하게 재현하는데 힘써보자.

 

 

 

블럭 요소로 묶어낸 것 위주로 태그를 작성하고 스타일을 적용할 때 필요한 ID와 Class를 미리 써두었다.

(사실 먼저 작성한 트리는 실제 적용하면서 많이 달라져서 다시 작성했다, 다음에는 이런 일이 없어야 할텐데)

기능 부분은 아직 배우지 않아서 최대한 사이트의 외관 부분을 비슷하게 작성하는데 집중했다.

 

 

완성본

 

블로그에 이미지를 삽입하다보니 작아져서 잘 티가 안나지만 최대한 비슷... 한 사이트 완성.

처음에 작성했던 문서는 왕창 망했는데 그 부분을 써보면서 정리해보려고 한다.

 

실패본

 

같은 위치 값을 줬는데 맞지 않았던 건...

  • 텍스트 부분을 따로 움직이고 싶어 relative 값을 입력했던 건 좋았으나 문서 자체 내의 위치 값과 무언가 어긋났던 모양이다. 수 차례 시도를 해도 미묘한 차이를 줄일 수 없어 어디서부터 손대면 좋을지 막막한 상태에 이르렀기에 다시 작성하기로 했다.
  • HTML과 CSS를 한 곳에서 작성하다보니 혼란이 일어난 것 같아 파일을 분리해서 작성했다. background-image는 전체 화면에 나타나야 하니 이미지만 제외한 나머지 속성들에게 같은 클래스 값을 부여한 뒤 margin: 0 auto; 값과 최대 너비 값을 따로 지정하여 사이트 중앙에 배치 될 수 있도록 조절했다.
  • 이후 다시 메인 텍스트 부분(div)만 relative 값을 주고 top 위치를 조절했더니 완성본과 같은 상태가 되었다.

 

매우 번거로운 꼼수란...

  • 주먹구구식으로 공백 특수문자를 사용하여 억지로 위치를 조절했다. 그러면 안되는 걸 알지만 정렬에 관한 속성이 하나도 먹히지 않아서 flex 값을 줬다 뺏다 많은 일이 있었다.
  • 한 객체의 값에 최대 너비를 지정하며 보더와 패딩 값을 이용해 적절한 위치를 맞추었다. nav 메뉴들에 속성 값이 듣지 않았던 건 <a>태그만을 이용해 구성했었는데 아마 인라인으로 작성됐기에 너비를 지정할 수 없었기 때문이었던 것 같아 <ul>과 <li>를 이용하여 블럭요소를 준 뒤에 조절하니 손쉽게 되었다.

 

본격적으로 HTML을 사용하여 홈페이지를 제작하는데 있어 필요한 단계를 배우고 연습해보기로 했다.

아래의 사이트는 별도의 회원가입 없이 무료로 풀린 홈페이지 템플릿의 소스를 받아 직접 배치해볼 수 있었다.

 

테마 웨건(theme wagon) 사이트 바로가기 : https://themewagon.com/

 

Home

Download the Best Free & Premium Responsive Bootstrap Templates from a hand-picked collection of over 1000 responsive Bootstrap themes & templates

themewagon.com


 

   1. 박싱처리 (블록요소 미리 나누기)   

 

   먼처 큰 섹션을 나눠서 구분하고 그 안에 배치될 요소가 가질 태그와 속성을 고려해 나눠본다.

개발자마다 다를 순 있겠지만 크게 세로로 쌓아갈지, 가로로 쌓아갈지를 정한다고 한다.

 

 

   2. 돔트리 작성   

 

드로우아이오(draw.io)https://app.diagrams.net/   

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

 

   본격적으로 HTML을 작성하기 전, 나눠둔 섹션을 따라 돔트리(DOM)라는 밑그림 작업을 시작한다.

처음에는 그냥 화면만 보고 따라서 배치하면 되는 것 같았지만 막상 들어가니 생각대로 안되는 경우가 많아 기초가 튼튼해야 한다는 말이 무엇인지 경험으로 알게되었다(...) 특히 이번 돔트리에는 클래스 명과 아이디를 그렇게 세세하게 지정하진 않았는데 엔간하면 각자 지정해 주는 편이 뒤에가서 손이 덜 가는 것 같다.

 

 

 

   3. HTML 작성   

폰트 어썸(font awesome) : https://fontawesome.com/

 

Font Awesome

The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.

fontawesome.com

 

   이제 돔트리를 바탕으로 HTML을 작성해주면 되는데 여기서 폰트 어썸 이라는 사이트를 통해 사이트에 필요한 아이콘들의 코드를 가져와 문서에 붙여넣을 수 있다. 회원가입을 하면 스크립트 코드가 주어지는데 복사하여 문서 내 헤드 부분에 삽입을 해주면 쉽게 페이지를 꾸밀 수 있다. (단, 이 방법은 사이트가 다운되었을 시 제대로 작동하지 않는다는 단점이 있다)

 

 

 

   4. CSS 작성   

돔트리를 기반으로 HTML작성이 끝났다면 홈페이지의 외관을 작성해줘야 한다. 헤드에 스타일을 넣어 바로 꾸며줄 수도 있지만 홈페이지와 같이 양이 늘어나다 보면 CSS의 내용도 HTML 못지 않은 길이가 되기 때문에 CSS파일을 따로 작성해 서로 연결시켜주는 작업이 필요하다.

 

<link rel="stylesheet" href="스타일 시트(CSS) 경로 지정">

 

 

 

background
background-color 요소의 배경 색상을 지정
background-image 요소의 배경에 한 개 이상의 이미지를 삽입
background-repeat 배경 이미지의 반복을 지정
repeat 배경 이미지를 수직, 수평으로 반복 (기본값)
repeat-x 배경 이미지를 수평으로 반복
repeat-y 배경 이미지를 수직으로 반복
no-repeat 반복 없음
background-position 배경 이미지의 위치를 지정
background-attachment 요소가 스크롤 될 때 배경 이미지의 스크롤 여부를 설정
scroll 배경 이미지가 요소를 따라서 같이 스크롤 됨
fixed 배경 이미지가 뷰포트에 고정되어 요소와 같이 스크롤 되지 않음
local 요소 내 스크롤 시 배경 이미지가 함께 스크롤 됨

 

다중 이미지 삽입의 예시

   

   다중 이미지 삽입의 확인을 위해 기본값으로 설정되어 있는 repeat 반복 값을 없애고 크기가 다른 이미지를 삽입해보면 제일 위에 쌓인 순서대로 깔려 삽입되는 것을 확인할 수 있다.


Transitions

※ CSS속성의 전환 효과를 지정 - CSS 속성의 시작과 끝을 지정하여 중간 값을 애니메이션함

transition-property 전환 효과를 사용할 속성의 이름 (쉼표로 구분)
transition-duration 전환 효과의 지속시간을 설정
transition-timing-function 타이밍 함수 지정
transition-delay 전환 효과를 몇 초 뒤에 시작할지 대기시간을 설정

 

Transfrom

※ 요소의 변환 효과(모양의 변형)를 지정

 

 

backface-visibility

    rotate 값이 90도를 넘어갈 경우  요소의 뒷면에서 앞면이 보이게 할 지 설정하는 속성. 기본 값으로 보여지게 설정되어 있으나 만일 숨기고 싶은 경우에는 hidden 값을 주면 된다.

 

transform: perspective( )

    쉽게 말해 가상의 눈을 만들어 관찰자의 거리를 정하는 요소이다. px단위는 관찰자의 눈이 요소로부터 얼마나 떨어져 있는지의 거리를 나타내며 값이 작을수록 요소가 확대되어 나타난다.

 

transform-origin

    관찰자의 눈의 위치를 지정하는 속성이다. X축과 Y축 순서로 작성한다.

padding / margin

※ 박스의 안쪽 여백 / 박스의 바깥쪽 여백

-top, -bottom, -right, -left { padding or margin : 0px 0px 0px 0px; }
위, 아래, 오른쪽, 왼쪽 패딩이나 마진값을 줄 수 있다. 왼쪽부터 위, 오른쪽, 아래, 왼쪽 순으로 패딩이나 마진값을 줄수 있다. 네 값을 모두 주지 않을 경우 위/아래, 오른쪽/왼쪽이 한 쌍이 되어 같은 값을 공유한다. 하나의 값을 줄 경우 네 곳이 같은 값을 가지게 된다.  

 

display

※ 요소가 지닌 속성을 바꾸거나 재배치 할 때 사용

block 블록 요소로 지정함 (div, p, ul, ol, dl, li, h1~h6, address, hr 등)
inline 인라인 요소로 지정함 (label, b, strong, mark, i, span, small, sup, sub, s 등)
inline-block 인라인 블록 요소로 지정함 (input 등)
none 요소의 박스 타입을 없앰 (요소가 사라짐)
flex 부모를 기준으로 자식들을 수평으로 배치함

 

font

※ 글자와 관련된 속성들을 지정함

font-style 글자 기울기 지정
font-size 글자 크기 지정
font-weight 글자 두께(가중치) 지정 - normal : 기본값, 400과 동일함
- bold : 글자 두껍게, 700과 동일함
- bolder : 부모요소보다 더 두껍게
- lighter : 부모요소보다 더 얇게
- 100~900 : normal과 bold이외의 두께를 지정할 때 사용
line-height 줄 높이(간격)을 지정 - normal : 브라우저가 가진 기본 정의를 사용
- 숫자 : 요소 자체 글꼴 크기의 배수로 지정
- 단위 : px, em, cm등 단위로 지정
- % : 요소 자체 글꼴 크기의 비율로 지정
font-family 글꼴(서체) 지정 - serif : 바탕체 계열
- sans-serif : 고딕체 계열
- monospace : 고정너비 글꼴 계열
- cursive : 필기체 계열
- fantasy : 장식 글꼴 계열

 

하나하나 지정하기엔 속성이 너무 많아 번거롭다면 단축 속성을 활용하자.

 

font : [style 값] [weight 값] [size 값] / [height 값] [family 값]

※ 빨간 글씨 부분은 반드시 포함되어야 하는 값이며, 이외의 값은 생략해도 문제없다.


 

position

※ 텍스트, 이미지, 표 등의 요소를 웹 문서에 배치할 때 사용하는 속성

정적 위치 설정 static 기본값, 각종 요소를 HTML 문서에 마크업한 그대로 배치됨
상대 위치 설정 relative 다른 요소의 위치에 영향을 받지 않으며, 자기 자신을 기준으로 이동하여 배치함
절대 위치 설정 absolute relative를 가진 부모요소를 기준으로 이동하여 배치함 (없을 경우 문서 자체가 부모가 됨)
고정 위치 설정 fixed 부모요소가 body로 고정되며, 스크롤을 동작해도 고정된 위치에 그대로 배치됨
sticky 스크롤을 동작하면 부모요소가 가진 범위에서만 고정된 위치에 그대로 배치됨
(top, botoom, right, left 어디에 고정할 지 정해야 함)

 

fixed 예시


sticky 예시

속성 선택자

[속성] 해당 속성이 정의된 모든 태그를 값에 상관 없이 선택함
[속성=값] 정의된 속성과 값이 동일한 태그를 선택함
[속성~=값] 공백으로 구분된 속성값 리스트 중 하나가 주어진 값과 동일한 태그를 선택
[속성|=값] 해당 값과 동일하거나, 주어진 값으로 시작하되 하이픈(-) 기호로 이어지는 값을 가진 태그를 선택
[속성^=값] 속성값이 주어진 값으로 시작하는 태그를 선택
[속성$=값] 속성값이 주어진 값으로 끝나는 태그를 선택
[속성*=값] 속성값에 주어진 값을 부분 문자열로 가지고 있는 태그를 선택

 


 

 

이벤트 가상 선택자

: link {} 웹 문서에서 사용자가 방문하지 않았던 링크를 표시함
: visited {} 웹 문서에서 사용자가 방문한 링크를 표시함
: active {} 웹 문서에서 사용자가 링크를 클릭하는 순간을 표시함
: hover {} 웹 문서에서 사용자가 링크에 마우스 포인터를 올리는 순간을 표시함
: focus {} 해당 요소에 초점이 맞춰졌을 때 적용

 

구조적 가상 선택자

: root 문서의 최상위 태그(html)를 선택함
: nth-child(n) 앞에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함되며 n은 수열을 나타냄)
: nth-last-child(n) 뒤에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함되며 n은 수열을 나타냄)
: nth-of-type(n) 앞에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그만 순서에 포함되며 n은 수열을 나타냄)
: nth-last-of-type(n) 뒤에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그만 순서에 포함되며 n은 수열을 나타냄)
: first-child 지정된 태그가 첫 번째면 선택함 (선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함)
: last-child 지정된 태그가 마지막이라면 선택함 (선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함)
: first-of-type 지정된 태그 중 첫 번째 태그를 선택함 (선택하고자 하는 태그만 순서에 포함)
: last-of-type 지정된 태그 중 마지막 태그를 선택함 (선택하고자 하는 태그만 순서에 포함)
: only-child 지정된 태그가 유일한 자식이면 선택함 (다른 태그가 포함되어 있다면 선택하지 않음)
: only-of-type 지정된 태그가 유일한 타입이면 선택함 (다른 태그가 포함되어 있어도 해당 태그가 유일하면 선택함)
: empty 텍스트 및 공백을 포함하여 자식 요소가 없는 태그를 선택함

 

기타 가상 선택자

언어 선택자 : lang(ko) HTML lang 속성값이 'ko'로 지정된 태그를 선택함
부정 선택자 : not(x) x가 아닌 태그를 선택함
목적 선택자 : target 태그의 URL이 요청되면 선택함
가상 엘리먼트 선택자 :: first-line 태그의 첫 번째 라인을 선택함
:: first-letter 태그의 첫 번째 문자를 선택함
:: before 태그의 시작 지점에 생성된 태그를 선택함
:: after 태그의 끝 지점에 생성된 태그를 선택함

 

조합 선택자

※ 기존의 여러 선택자를 '복합적' 으로 조합하는 방법

후손 선택자 선택자A  선택자B 선택자B가 선택자 A에 반드시 포함되어 있을 경우에 선택함
자손 선택자 선택자A > 선택자B 부모 선택자A의 직계 자손인 선택자B를 선택함
인접 형제 선택자 선택자A + 선택자B 선택자A 바로 다음에 위치한 선택자 B를 선택함
일반 형제 선택자 선택자A ~ 선택자B 선택자A 뒤에 인접하여 나타나는 모든 선택자 B를 선택함
그룹 선택자 선택자A, 선택자B 선택자A와 선택자B를 모두 선택함

 

선택자 연습용 미니게임 바로가기(CSS Diner) ▶ https://flukeout.github.io/

   선택자 관련 내용의 공부는 CSS Diner 게임으로 복습하는게 괜찮았던 것 같다.

   아래는 오답노트 겸 전 레벨 정답을 적어두도록 하겠다.


 

Level1   plate

  • 쉽다, <plate> 태그를 선택하는 문제.

Level2   bento

  • 접시와 도시락이 나란히 있다, 여기서 도시락을 고르는 문제. 1레벨과 동일하다.

Level3   #fancy

  • 접시 두개 중 장식이 된 접시를 고르는 문제. 장식된 접시는 fancy라는 ID값을 가지고 있으니 #으로 해당 ID값을 입력하면 된다.

Level4   plate apple

  • 반드시 접시 위에 있는 사과만 선택해야 하기 때문에 후손 선택자를 이용하면 된다.

Level5   plate#fancy pickle 또는 #fancy pickle

  • 반드시 꾸며진 접시 위에 있는 피클을 선택해야 하기 때문에 후손 선택자를 이용하면 되는데 '꾸며진 접시' 값을 입력해도 되고, 해당 ID는 고유의 값이기 때문에 '꾸며진' 값만 주어도 문제 없다.

Level6 .small

  • 클래스 값을 입력하는 문제, 사과들 중에서도 '작은' 클래스를 가진 사과만 선택하면 되기 때문에 .을 찍고 선택하고자 하는 클래스 명을 입력하면 된다.

Level7 orange.small

  • 오렌지들 중에서도 작은 오렌지만 골라야 하는 문제, <orange> 태그와 함께 해당 클래스 명도 공백없이 입력해주면 small 클래스 값을 가진 오렌지만 선택할 수 있다.

Level8 bento orange.small

  • 도시락 위에 있는 오렌지들 중에서도 작은 클래스를 가진 오렌지를 고르는 문제, 후손 선택자를 이용하면 간단하다.

Level9 plate, bento

  • <plate>와 <bento>만 선택하면 된다. 그룹 선택자를 통해 해결하자.

Level10 *

  • 모든 오브젝트가 흔들거리고 있다, *을 써서 모두 선택하면 된다.

Level11 plate *

  • 큰 사과, 작은 오렌지, 그리고 피클이 선택해달라 시위하고 있다. 공통점을 찾아 보자면 모두 접시 위에 있으므로 부모인 접시 위에 있는 모든 채소를 선택하면 되겠다. 다만 종류가 다양하니 후손 선택자로 공백에 유의하며 모든 객체 선택인 *을 써주면 된다.

Level12 plate+apple

  • 같은 형제인 값이 다른 사과 둘의 공통점을 보아하니 모두 접시 옆에 위치해 있다. 인접 형제 선택자로 옆의 사과만 골라내면 된다.

Level13 bento~pickle

  • 많은 피클 중에서 도시락 옆에 위치한 피클 두 개만 골라내야 한다. 해당 태그는 어디에 속한 태그가 아닌 도시락과 같은 형제이니 일반 형제 선택자를 사용하면 된다. 그 뒤로 나열된 피클들은 모두 접시라는 부모를 가지고 있기 때문에 같은 형제가 아니라서 선택되지 않는다.

Level14 plate>apple

  • 접시 위에 있는 사과가 한 개 뿐이라고 일반적인 후손 선택자를 쓰면 왼쪽에 위치한 사과도 함께 흔들리게 된다. 후손 선택자는 말 그대로 자손의 후손도 포함되기 때문에 여기서 쓸 수 없고, 자손 선택자를 써서 골라줘야 한다.

Level15 orange:first-child

  • 오렌지 세 개가 접시에 나란히 올라 있는데 그 중에서 첫 번째를 골라야 한다. first-child 선택자를 쓰면 되지만 이 방법은 만약 다른 접시에도 오렌지가 있다면 그 아이도 함께 선택되니 유의하자.

Level16 plate *:only-child

  • 접시 위에 외동인 사과와 피클이 있다. 하지만 옆 집에 사는 도시락에도 피클이 외동으로 있으니 단순 그룹 선택자로 하나하나 지정하는 방법은 안되고, 후손 선택자를 사용해 포괄적으로 지정하면 된다. 접시 위에 있는 후손이 외동일 경우에 선택해달라는 의미이다.
<div> ~ </div>
블록 레벨 요소

웹 브라우저 전체 공간에 대해 블록(block) 형식으로 분할됨
마크업 할 때 단락이 바뀌며, 텍스트 및 인라인 요소를 포함해 일부 블록 요소를 자식으로 포함 가능
블록 요소는 vertical-align / text-align 이 적용되지 않음
<span> ~ </span>
인라인 레벨 요소
웹 브라우저 일부 영역만 인라인(inline) 형식으로 분할됨
마크업 할 때 단락이 바뀌지 않고 이어서 출력되며, 블록 요소를 자식 요소로 포함할 수 없음
대부분 텍스트로 이루어져 있으며 크기값을 설정할 수 없음  (height / width 안됨)

 

 

 


CSS

  • 스타일 시트의 표준안으로 웹 문서에 글꼴, 색상, 정렬과 각 요소의 배치 등 디자인 요소를 적용하는데 사용
  • 문서 작성과 디자인을 분리하여 관리함으로써 수정에 용이
  • 하나의 요소에 인라인 스타일 시트가 중복 정의된 경우에는 제일 마지막(적용될 태그와 가장 인접한) 값이 적용되며, 이를 무시하고 강제로 적용할 때는 !important 를 표시하여 사용
전체 선택자 * { 속성선언; } 모든 태그에 스타일을 적용
타입 선택자 태그 { 속성선언; } 지정한 태그에 스타일을 적용
클래스(class) 선택자 .클래스 이름 { 속성선언; } 지정한 클래스에 스타일을 적용
아이디(id) 선택자 #아이디 { 속성선언; } 지정한 아이디에 스타일을 적용
속성 선택자 [속성] or [속성=값] { 속성선언; } 지정한 속성 또는 값이 있는 태그에 스타일을 적용

 

서식 적용의 예시

 

 

   HTML에서 기본적으로 지원하는 태그 이외에 사용자가 임의적으로 생성한 태그 또한 쓸 수 있다. 하지만 태그에 속성값을 넣는 것 말고는 주어진 효과가 없어서 구분을 지어 나열했을 시에 한줄로 입력이 되는 것을 확인할 수 있었다.

 

글로벌 속성의 종류

accesskey="단축키" 공백으로 구분하여 여러 개의 단축키를 지정
class="클래스 명" 공백으로 구분하여 여러 개의 클래스 명을 지정 (여러개의 태그에 중복 가능)
contrteditable="편집 가능 여부" 편집할 수 있는 경우 true, 편집할 수 없는 경우 공백(" ")이나 false로 지정
contextmenu="menu 요소의 id 속성값" 메뉴 요소의 id 속성값을 지정
dir="텍스트표시 방향"  왼쪽 정렬인 경우 ltr, 오른쪽 정렬인 경우 rtl 로 지정
draggable="드래그 사용 여부" 드래그 할 수 있는 경우 true, 드래그 할 수 없는 경우 false로 지정
dropzone="드롭한 아이템 처리 방법" - copy : 드래그한 데이터가 이 장소에 복사
- move : 드래그한 데이터가 이동
- link : 오리지널 데이터와 드롭된 곳 사이에 통로를 만듦
hidden="hidden" 웹 문서에 표시하지 않음 
id="고유 이름" 해당 태그를 유일하게 식별하는 기능으로 동일 문서 내 같은 이름 사용 금지
lang="언어 코드" 한국어(ko), 영어(en), 프랑스어(tr), 일본어(ja) 등 언어 속성값 지정
spellcheck="철자 체크 여부" 철자 체크 사용 여부를 결정
style="CSS 선언" 세미콜론(;)으로 구분하면 여러 개의 CSS 선언이 가능
tabindex="이동 순서"  

<section> ~ </section> 본문의 구역을 나누는 데 사용됨, 하위 컨텐츠들을 모아둔 그룹
<article> ~ </article> 하위 컨텐츠를 담당함
<p> ~ </p> 빈 줄을 만들어 다음 단락으로 넘어감
<b> ~ </b> 해당 텍스트를 볼드체(굵음) 으로 표시
<strong> ~ </strong> 해당 텍스트를 강조하여 굵게 표시 (볼드체와 유사함)
<i> ~ </i> 해당 텍스트를 이태릭체(기울임) 로 표시
<em> ~ </em> 해당 텍스트를 강조하여 기울인 채 표시 (이태릭체와 유사함)
<ins> ~ </ins> 해당 텍스트에 밑줄을 표시
<del> ~ </del> 해당 텍스트에 취소선을 표시
<sub> ~ </sub> 해당 텍스트를 아랫첨자로 표시
<sup> ~ </sup> 해당 텍스트를 윗첨자로 표시
<mark> ~ </mark> 해당 텍스트에 하이라이트를 표시

 

 

<a href="URL">

<a> ~ </a> 다른 사이트 혹은 같은 문서 내 다른 위치로 이동할 때 사용
href 연결하고자 하는 웹 사이트의 URL이나 경로를 지정함
target 링크를 클릭했을 때 웹 사이트가 열리는 곳을 지정함

_blank : 새로운 웹 브라우저에서 창 열기
_self : 현재 웹 브라우저에서 창 열기 (기본값)
_parent : 부모 웹 브라우저에서 창 열기
_top : 웹 브라우저 전체 영역에 창 열기
id (name)  페이지 내 요소 위치 지정을 위해 임의로 값을 입력

 

<table> 태그

<table> ~ </table>
<tr> ~ </tr> 적용된 갯수만큼 행을 생성
<td> ~ </td> 적용된 갯수만큼 열을 생성
<th> ~ </th> 표의 머리에서 셀 제목 글자를 강조 (볼드체 및 가운데 정렬)
<caption> ~ </caption> 표의 머리에 제목을 삽입
rowspan 셀을 세로로 병합, 속성값으로 병합하려는 행의 수만큼 지정
colspan 셀을 가로로 병합, 속성값으로 병합하려는 열의 수만큼 지정

 

<img> 태그

<img> ~ </img> 웹 문서에 이미지 삽입을 위한 태그
src 이미지 파일이 저장된 경로 지정
alt 이미지를 윕 브라우저에 불러내지 못했을 경우 표시되는 대체 텍스트 지정
width 이미지의 가로 길이를 픽셀 단위로 지정 (% 사용 시, 브라우저 크기의 비율에 맞춰 반영됨)
height 이미지의 세로 길이를 픽셀 단위로 지정 (% 사용 시, 브라우저 크기의 비율에 맞춰 반영됨)
ex. style="height:60px" 또는 height=40%
style 이미지의 스타일을 픽셀 단위로 지정
border 이미지 경계선의 두께를 픽셀 단위로 지정

 

<audio>, <video> 태그

<audio> ~ </audio> 웹 문서에 오디오 파일을 삽입하는 태그
<video> ~ </video> 웹 문서에 비디오 파일을 삽입하는 태그
<source> ~ </source> 여러 형식의 미디어 파일을 동시에 제공할 때 사용
src 오디오/비디오 파일이 저장된 경로 지정
controls 재생 제어기 표시
loop 반복 재생
autoplay 웹 문서가 열림과 동시에 자동으로 재생 (브라우저에서 이 기능을 막아둠)
muted 음소거 상태로 재생되게 함
preload 오디오/비디오 파일 사용 여부와 관계없이 미리 다운로드 함
poster 비디오 파일 재생 전, 또는 다운로드 하지 않은 상태에서 표시될 이미지의 URL을 표시

 

<form> 태그

<form> ~ </form> 웹 양식을 만드는 데 사용하는 태그 (데이터 전달 가능)
<input> ~ </input> 텍스트를 나타낼 수 있는 입력 필드를 나타내는 태그
<textarea> ~ </textarea> 텍스트를 여러 줄에 걸쳐 자유롭게 입력 가능한 텍스트 상자를 생성
<fieldset> ~ </fieldset> 입력 폼이 여러 개 존재할 때, 경계선을 둘러 하나의 그룹으로 만들 때 사용
<select> ~ </select> 펼침 목록에서 한 가지만 선택할 수 있도록 지원하는 태그
<datalist> ~ </datalist> 펼침 목록에서 텍스트 입력 시 자동완성 기능을 제공하는 태그
<option> ~ </option> 드롭 다운 리스트에서 사용되는 하나의 옵션 값을 지정하기 위한 태그
multiple 다중 선택을 위한 속성
action 사용자가 입력한 데이터를 받아 처리하기 위한 웹 프로그램의 페이지 지정
name 폼의 이름을 결정
required null 값을 허용하지 않을 때 쓰는 속성
maxlength / minlength 글자 수의 최댓값/최솟값을 적용할 때 쓰는 속성
placeholder 특정 내용을 미리 표기할 때 쓰는 속성
readonly 읽기 전용 속성
max / min 숫자의 최댓값/최솟값을 적용할 때 쓰는 속성
type 폼의 모양과 기능 결정 - text : 텍스트를 받음
- password : 비밀번호를 받음
- number : 숫자만 받음
- color : 색상을 받음
- radio : 여러 항목 중 단일 선택을 위해 사용
- checkbox : 여러 항목 중 중복 선택을 위해 사용
- button : 클릭 가능한 버튼을 만듦
- reset : 웹 문서 초기화
- submit : action 주소로 전송
- date : 년-월-일 단위로 원하는 날짜 입력
- month : 년-월 단위로 원하는 날짜 입력
- week : 년-주 단위로 원하는 주일을 입력
- time : 시간만 입력
- range : 특정 범위의 숫자를 선택할 때 사용
- email : 이메일 형식에 맞게 입력되지 않으면 경고창을 띄움
- url : 주소 형식에 맞게 입력되지 않으면 경고창을 띄움
method 웹 서버와 클라이언트 간의 통신 방법을 지정 GET 방식

- URL 뒤에 파라미터를 붙여 데이터를 전송
- 사용자가 입력한 값이 데이터와 결합되어 문자열 형식으로 전송
- 서버로 보낼 수 있는 글자 수는 2,048자
- URL에 데이터 값이 그대로 노출되기 때문에 보안에 취약함
POST 방식

- HTTP Request 헤더에 파라미터를 붙여 데이터를 전송
- 서버로 보낼 수 있는 글자 수에 한계 없음
- 보안에 강하나 처리가 복잡해 느리고 무겁다는 단점이 있음

 

+ Recent posts