HTML(5) 스타일 가이드 및 코드 규약

HTML 코드 약속

웹 개발자들은 HTML에서 사용하는 코드 스타일과 문법에 대해 불확실합니다.

2000년에서 2010년 사이, 많은 웹 개발자들이 HTML에서 XHTML로 전환했습니다.

XHTML을 통해 개발자는 반드시 정형화된 코드를 작성해야 했습니다.

HTML5는 코드 검증 시 더 유연합니다.

HTML5를 통해, 당신은 자신만의최상의 관행, 스타일 가이드라인 및 코드 약속

지능적이고 미래를 보장합니다

스타일의 논리적 사용은 다른 사람들이 HTML을 더 쉽게 이해하고 사용할 수 있게 합니다.

미래에는 XML 레이더와 같은 프로그램이 HTML을 읽어야 할 수 있습니다.

정형화된 '약간의 XHTML과 유사한' 문법을 사용하면 더 지능적입니다.

주석:항상 스마트하고 정리되고 깨끗하고 정형화된 스타일을 유지하십시오.

올바른 문서 타입을 사용하십시오

문서의 첫 번째 줄에 항상 문서 타입을 선언하십시오:

!DOCTYPE html

소문자 태그를 일관되게 사용하는 경우 사용할 수 있습니다:

<!doctype html>

소문자 요소 이름을 사용하십시오

HTML5는 요소 이름에 대소문자 혼합을 허용합니다.

저희는 소문자 요소 이름을 사용하는 것을 추천합니다:

  • 대소문자 혼합 이름은 좋지 않습니다
  • 개발자들은 소문자 이름을 사용하는 것을 선호합니다(예를 들어 XHTML에서)
  • 소문자는 더 깨끗하게 보입니다
  • 소문자는 쓰기 쉽습니다

또래불구하고:

<SECTION> 
  <p>This is a paragraph.</p>
</SECTION>

악합니다:

<Section> 
  <p>This is a paragraph.</p>
</SECTION>

적당합니다:

<section> 
  <p>This is a paragraph.</p>
</section>

모든 HTML 요소를 닫기

HTML5에서는 모든 요소를 닫지 않아도 됩니다(예를 들어 <p> 요소).

저희는 모든 HTML 요소를 닫는 것을 권장합니다:

그런 모습은 나쁩니다:

<section>
  <p>This is a paragraph.</p>
  <p>This is a paragraph.</p>
</section>

그런 모습은 좋습니다:

<section>
  <p>This is a paragraph.</p>
  <p>This is a paragraph.</p>
</section>

빈 HTML 요소를 닫기

HTML5에서는 빈 HTML 요소를 닫는 것이 선택적입니다.

이렇게도 허용됩니다:

<meta charset="utf-8">

이렇게도 허용됩니다:

<meta charset="utf-8" />

슬래시(/)는 XHTML과 XML에서 필수적입니다.

XML 소프트웨어가 여러분의 페이지에 접근할 것이라면, 이 습관을 유지하는 것이 좋은 아이디어입니다.

소문자 속성 이름 사용

HTML5는 대소문자 혼합의 속성 이름을 허용합니다.

저희는 소문자 속성 이름을 사용하는 것을 추천합니다:

  • 혼합 속성 이름은 좋지 않습니다
  • 개발자는 소문자 속성 이름을 사용하惯합니다 (예: XHTML에서)
  • 소문자 속성 이름은 상황에 따라 더 깨끗합니다
  • 소문자 속성 이름은 쓰기가 더 쉽습니다

그런 모습은 나쁩니다:

<div CLASS="menu">

그런 모습은 좋습니다:

<div class="menu">

속성 값에 쌍따옴표 추가

HTML5는 쌍따옴표 없는 속성 값을 허용합니다.

저희는 속성 값에 쌍따옴표를 추가하는 것을 추천합니다:

  • 속성 값이 값에 포함되어 있으면 쌍따옴표를 사용해야 합니다
  • 혼합 스타일은 절대로 좋지 않습니다
  • 쌍따옴표로 감싸인 값은 더 읽기 쉽습니다

이 속성 값은 공백이 포함되어 있기 때문에 무효합니다:

<table class=table striped>

이렇게는 유효합니다:

<table class="table striped">

필수 속성

이미지에 항상 사용하세요 alt 이 속성은 이미지가 표시되지 않을 때 중요합니다.

<img src="html5.gif" alt="HTML5" style="width:128px;height:128px">

이미지 크기를 항상 정의하세요. 이렇게 하면 브라우저가 이미지를 로드하기 전에 공간을 예약하여 깜빡이는 현상을 줄입니다.

<img src="html5.gif" alt="HTML5" style="width:128px;height:128px">

공백과 동등호

동등호 양쪽의 공백은 합법적입니다:

<link rel = "stylesheet" href = "styles.css">

하지만 공백을 줄이면 더 읽기 쉽습니다. But space-less is easier to read, and groups entities better together:

<link rel="stylesheet" href="styles.css">

긴 코드 행을 피해주세요.

HTML 편집기를 사용할 때, HTML 코드를 읽기 위해 왼쪽과 오른쪽으로 스크롤을 사용하는 것은 불편합니다.

가능한 한 코드 행이 80개 문자를 초과하지 않도록 해주세요.

공백 행과 들여쓰기

이유 없이 공백 행을 추가하지 마세요.

읽기 편의성을 높이기 위해 대형이나 논리 코드 블록 사이에 공백 행을 추가하세요.

읽기 편의성을 높이기 위해 두 공백을 들여쓰기로 사용하세요. 탭은 사용하지 마세요.

필요없는 공백 행과 들여쓰기를 사용하지 마세요.

불필요한 것:

<body>
  <h1>유명한 도시</h1>
  <h2>Tokyo</h2>
  <p>
    도쿄는 일본의 수도이자 대도쿄 지역의 중심지이며,
    세계에서 가장 인구가 많은 메트로폴리탄 지역이며.
    일본 정부와 제국 궁전의 자리이며,
    일본 제국 왕室的 근거지이자.
  </p>
</body>

보다 나은 방법:

<body>
<h1>유명한 도시</h1>
<h2>Tokyo</h2>
<p>
도쿄는 일본의 수도이자 대도쿄 지역의 중심지이며,
세계에서 가장 인구가 많은 메트로폴리탄 지역이며.
일본 정부와 제국 궁전의 자리이며,
일본 제국 왕室的 근거지이자.
</p>
</body>

표 그림 예제:

<table>
  <tr>
    <th>Name</th>
    <th>Description</th>
  <tr>
  <tr>
    <td>A</td>
    <td>Description of A</td>
  <tr>
  <tr>
    <td>B</td>
    <td>Description of B</td>
  <tr>
</table>

목록 표시 예제:

<ol>
  <li>LondonA</li>
  <li>Paris</li>
  <li>Tokyo</li>
</ol>

<html>와 <body>를 생략하죠?

HTML5 표준에서는 <html> 태그와 <body> 태그를 생략할 수 있습니다.

다음 코드는 HTML5로 확인됩니다:

예시

!DOCTYPE html
<head>
  <title>Page Title</title>
</head>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>

직접 시도해 보세요

우리는 <html>와 <body> 태그를 생략하지 않는 것을 권장합니다.

<html> 요소는 텍스트의 루트 요소입니다. 페이지 언어를 정의하는 데 적합한 위치입니다.

!DOCTYPE html
<html lang="en-US">

접근성 애플리케이션(스크린리더)과 검색 엔진을 위해 선언된 언어는 중요합니다.

<html>나 <body>를 생략하면 DOM 및 XML 소프트웨어가 충돌할 수 있습니다.

<body>를 생략하면 오래된 브라우저(IE9)에서 오류가 발생할 수 있습니다.

<head>를 생략하죠?

HTML5 표준에서는 <head> 태그도 생략할 수 있습니다.

기본적으로, 브라우저는 <body> 이전의 모든 요소를 기본적인 <head> 요소에 추가합니다.

head 태그를 생략하면 HTML의 복잡성을 줄일 수 있습니다:

예시

!DOCTYPE html
<html>
<title>Page Title</title>
<body>
  <h1>This is a heading</h1>
  <p>This is a paragraph.</p>
</body>
</html>

직접 시도해 보세요

주석:웹 개발자에게는 태그를 생략하는 방법은 낯설습니다. 규칙을 설정하는 것은 시간이 걸립니다.

메타데이터

<title> 요소는 HTML5에서 필수입니다. 가능한 한 의미 있는 제목을 만들어 주십시오.

<title>HTML5 문법 및 코드 스타일</title>

적절한 해석 및 올바른搜索引擎 인덱싱을 위해, 문서에서 언어와 문자编码의 정의는 가능한 빨리 하십시오:

!DOCTYPE html
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>HTML5 문법 및 코드 스타일</title>
</head>

HTML 주석

단단 주석은 단一行에 작성되어야 하며, <!-- 뒤에 공백을 추가하고, --> 앞에 공백을 추가합니다:

<!-- This is a comment -->

긴 주석은 여러 행을 건너뜀으로써 <!--와-->로 독립된 행에 작성되어야 합니다:

<!-- 
  This is a long comment example. This is a long comment example. This is a long comment example.
  This is a long comment example. This is a long comment example. This is a long comment example.
-->

두 칸 공백으로 인덱싱된 긴 주석은 더 쉽게 관찰됩니다.

스타일 시트

스타일 시트를 링크할 때 간단한 문법을 사용하십시오 (type 속성은 필수가 아닙니다):

<link rel="stylesheet" href="styles.css">

단단 규칙은 이렇게 한 행으로 압축할 수 있습니다:

p.into {font-family:"Verdana"; font-size:16em;}

긴 규칙은 여러 행으로 나누어야 합니다:

body {
  background-color: lightgrey;
  font-family: "Arial Black", Helvetica, sans-serif;
  font-size: 16em;
  color: black;
}
  • 개방 괄호와 선택자가 같은 행에 위치합니다
  • 개방 괄호 앞에 공백을 사용합니다
  • 두 문자의 인덱스를 사용한 인덱스를 사용합니다
  • 각 속성과 그 값 사이에冒號 한 칸 공백을 사용합니다
  • 각 쉼표나 세미콜론 뒤에 공백을 사용합니다
  • 각 속성 값 쌍(최종 쌍 포함) 뒤에 세미콜론을 사용합니다
  • 값이 공백을 포함할 때만 값을 둘러싸는 것을 사용합니다
  • 닫는 괄호를 새 행에 위치시키고, 이전에 공백을 사용하지 마십시오
  • 각 행에 80자를 초과하지 않도록 합니다

주석:쉼표나 세미콜론 뒤에 공백을 추가하는 것은 모든 작성 스타일의 일반 규칙입니다。

HTML에서 자바스크립트를 로드합니다

외부 스크립트를 로드할 때 간단한 문법을 사용하십시오(type 속성은 필수가 아닙니다):

<script src="myscript.js">

JavaScript를 통해 HTML 요소에 접근

혼잡한 HTML 스타일의 결과는 JavaScript 오류가 발생할 수 있습니다

이 두 개의 JavaScript 문장은 다른 결과를 생성합니다:

var obj = getElementById("Demo")
var obj = getElementById("demo")

직접 시도해 보세요

가능한 경우, HTML에서(JavaScript와 함께)동일한 이름 규약을 사용하십시오

JavaScript 스타일 가이드에 방문하십시오

소문자 파일명을 사용하십시오

대부분의 웹 서버(Apache, Unix)는 파일명의 대소문자에 대한 감수성이 있습니다:

london.jpg로 London.jpg에 접근할 수 없습니다

기타 웹 서버(マイ크로소프트, IIS)는 대소문자에 대한 감수성이 없습니다:

london.jpg 또는 London.jpg로 London.jpg에 접근할 수 있습니다

혼합 대소문자를 사용할 경우, 극도의 일관성을 유지해야 합니다。

대소문자에 대한 감수성이 없는 서버에서 대소문자에 대한 감수성이 있는 서버로 전환하면, 이러한 작은 오류가 웹사이트를 파괴할 수 있습니다。

이러한 문제를 피하기 위해 항상 소문자 파일명을 사용하십시오(가능한 경우)。

파일 확장자

HTML 파일명은 확장자를 사용해야 합니다 .html(而不是 .htm)。

CSS 파일은 확장자를 사용해야 합니다 .css

JavaScript 파일은 확장자를 사용해야 합니다 .js