HTML, CSS 환경에서 코딩 할 때 알아두면 좋을 가이드들을 정리하고 있습니다.
HTML
- Syntax
- HTML5 doctype
- Language attribute
- Internet Explorer compatibility mode
- Character encoding
- CSS and JavaScript includes
- Attribute order
- Reducing markup
- Sectioning markup
- Entity Code
Syntax
1 |
|
- Indentation
- 직계 자식 요소는
・ ・
,Space
두칸을 이용하여 들여쓰기 한다.
- 직계 자식 요소는
img
요소의alt
속성은 반드시 의미 있는 단어를 사용한다.- 별다른 의미를 가지지 않는 이미지의 경우
background
속성을 활용한다.
- 별다른 의미를 가지지 않는 이미지의 경우
HTML5 doctype
1 |
- HTML5 표준 사용을 위해 위의 Doctype을 사용한다.
- Doctype 코드는 반드시 문서 첫줄에 명시한다. 코드의 윗부분에는 절대로 아무런 요소도 삽입하지 않는다.
Language attribute
1 | <html lang="ko-KR"> |
- 문서에 쓰이는 주언어를 html 요소에 삽입한다.
- 문서 중간에 다른 언어를 사용하는 경우 해당 언어의 속성을 명시한다.
Internet Explorer compatibility mode
1 | <!--[if IE 6]><html lang="ko-KR" class="ie6"><![endif]--> |
- IE 하위 버전 호환이 필요한 경우 IE 조건부 주석문을 활용하여 각 버전의 클래스를 명시한다.
- IE 호환성 모드에 대한 대응을 위해서 최소 IE 동작 버전을 명시한다.
Character encoding
1 | <meta charset="UTF-8"> |
- 텍스트 언어 인코딩을 UTF-8로 설정하여 모든 유니코드 문자를 표현할 수 있도록 설정하고, 깨지는 한글 문제를 해결한다.
CSS and JavaScript includes
1 | <link rel="stylesheet" href="style.css"> |
link
,style
,script
사용시type
속성을 별도로 입력하지 않는다.
Attribute order
1 | <a class="..." id="..." data-modal="toggle" href="#">Example link</a> |
코드의 가독성 향상을 위해 HTML 태그 속성들을 특정한 순서로 명시한다.
class
id
,name
data-*
src
,for
,type
,href
,value
title
,alt
aria-*
,role
Reducing markup
- 의미 없는
div
,span
요소의 사용을 자제한다. <b>
,<i>
,<u>
,<strike>
,<s>
,<big>
,<small>
,<center>
,<font>
등 표현에 국한된 요소는 사용하지 않는다.
Sectioning markup
1 | <header></header> |
- Sectioning 요소 -
section
,article
,main
,nav
,aside
- 화면의 전체 구조를 마크업 할 때 헤더와 푸터 영역에 Sectioning 요소를 포함하지 않으면
<header>
,<footer>
태그를 사용하고,nav
와 같은 Sectioning요소를 포함할 경우<section>
태그를 활용하여 명시한다. - 헤더와 푸터 영역의 요소를 제외한 요소들은
main
요소 안에 명시한다.
Entity Code
1 | <title>코드 가이드 & 스타일</title> |
- 문서 내에서 특수문자는 반드시 Entity Code를 활용한다.
- 특히
title
영역에서는&
도&
Entity Code로 명시한다.title
이 인코딩 선언 요소보다 앞에 있을 경우에&
가 포함되어 있으면 인코딩이 제대로 이루어지지 않을 수 있다.- 그래서
title
를 인코딩 요소보다 뒤에 써주는 것이 좋다.
- 특히
CSS
Declaration order
1 | .declaration-order { |
다음과 같은 속성의 순서대로 선언한다.
- Positioning
- Box
- Typography
- Visual, Misc
Don’t use @import
1 | <link rel="stylesheet" href="core.css"> |
- CSS 파일을 연결할 때
@import
를 사용하지 않고link
를 활용한다.@import
는 직렬 방식으로 파일을 불러오기 때문에 성능에 영향을 미친다.
Classes
1 | .btn { ... } |
- Class 명칭은 소문자를 사용하고, 단어 사이에는
-
로 구분한다. - 지나친 축약 보다는 의미가 명확히 전달 가능한 이름을 사용한다.
- 인접한 부모 Class를 접두사로 활용한다.
Selectors
1 | /* Bad example */ |
- 선택자를 명시할 때 일반 요소를 지정하기 보다 Class를 지정하여 사용한다.
- 멀티클래스로 클래스를 나누어 사용하기 보다 접두사를 이용하여 독립적인 클래스를 선택자로 명시한다.
- [Scope CSS classes with prefixes]