HTML은 여는 태그와 닫는태그를 같이 쓰이며, 사이에는 컨텐츠가 들어간다.
<tagname>contents</tagname>
HTML tags are not case sensitive: <P>
means the same as <p>
.
The HTML5 standard does not require lowercase tags, but W3C recommends lowercase in HTML4, and demands lowercase for stricter document types like XHTML.
HTML 태그 속성들은 코드의 가독성 향상을 위해 특정 순서로 놓는 것이 좋다.
class
는 컴포넌트의 재사용성을 높여주기 때문에 가장 먼저 오게 하는 것이 좋다. id
는 좀 더 구체적이고 제한적으로 쓰이므로 두 번째로 오게 하는 것이 좋다.
예) :
<a class="link" id="page" data-modal="toggle" href="#">
샘플 링크
</a>
<input class="input_control" type="text">
<img src="http://www.naver.com" alt="태그 속성 이미지" />
불리언 태그 속성은 굳이 속성값을 넣을 필요가 없다.
XHTML에서는 속성값이 지정이 필요햇지만 HTML5에서는 그런 제약이 없다.
예:
<input type="text" disabled>
<input type="checkbox" value="1" checked >
<select>
<option value="1" checked>1</option>
</select>
문서의 정상적인 흐름에서 엘리먼트들을 없앨 수 있고, 박스 모델 관련 스타일들을 재정의 할 수 있기 때문이다. 또한 css를 읽어오면서 먼저 위치를 잡아주고, 영역을 잡은 후 꾸며 주는 것이 좋기 때문에 이렇게 사용하는 것이 좋다.
.declaration-order {
/* Positioning */
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 100;
/* Box-model */
display: block;
float: right;
width: 100px;
height: 100px;
/* Typography */
font: normal 13px "Helvetica Neue", sans-serif;
line-height: 1.5;
color: #333;
text-align: center;
/* Visual */
background-color: #f5f5f5;
border: 1px solid #e5e5e5;
border-radius: 3px;
/* 기타 */
opacity: 1;
}
@import
사용 금지<link>
에 비해 @import
는 상대적으로 느리고 추가 페이지 요청을 필요로 하기 때문에 결과적으로 예측 할 수 없는 문제를 일으킬 수 있다. @import
의 사용을 피하는 대신 다른 방법을 사용하는게 낫다.
<link>
엘리먼트를 사용.가급적이면 관련 규칙들이 모여 있는 곳에 미디어 쿼리들을 최대한 가까이 모아 둔다.
미디어 쿼리들을 별도의 스타일시트에 묶어 놓는다든가 문서의 맨 마지막에 놓는 것은 좋지 않다. 이럴 경우, 오히려 나중에 까먹기 딱 좋다.
.element { ... }
.element-avatar { ... }
.element-selected { ... }
@media (min-width: 480px) {
.element { ...}
.element-avatar { ... }
.element-selected { ... }
}
모든 가능한 속성값들을 명시적으로 설정해야만 하는 경우에는 축약형 선언문을 사용하지 않는 것이 좋다.
축약형 속성들을 남용하게 되면 불필요하게 재정의하는 경우가 많아 원하지 않는 부작용이 발생한다.
MDN 발행한 축약형 속성
-
)을 사용한다. 밑줄(_
)과 camelCase는 사용하지 않 것이 좋다. 하이픈은 관련 클라스에서 자연스로운 브레이클 제공한다.
(예: .btn
과 .btn-danger
).btn
정도의 button을 위해서는 괜찮지만 .b
를 쓰게 되면 아무런 의미가 없다./* 안좋은 예 */
.t { ... }
.red { ... }
.header { ... }
/* 좋은 예 */
.tweet { ... }
.important { ... }
.tweet-header { ... }