Semantic elements = elements with a meaning
Semantic element
는 이것의 의미를 브라우저와 개발자 모두에게 명확히 설명한다.
non-semantic elements
에는 <div>
와 <span>
가 있고 내용에 대해 아무것도 짐작할 수 없다.
semantic element
에는 <form>
, <table>
, 그리고 <article>
가 있다. 이름만 보아도 어떤 내용이 들어갈지 명확히 보여준다.
많은 웹사이트에서 <div id="nav">
, <div class="header">
, <div id="footer">
와 같은 HTML 코드를 볼 수 있다. 이 코드들은 navigation, header, footer를 나타낸다.
HTML에서는 이 다른 부분들을 정의하기 위한 semantic elements
가 있다.
<article>
<aside>
<details>
<figcaption>
<figure>
<footer>
<header>
<main>
<mark>
<nav>
<section>
<summary>
<time>
"사이트에 이미지를 넣는 방법은 두 가지가 있습니다. <img>
태그를 사용하는 것과 <div>
태그에 background-image
속성을 추가하는 것. 두 가지 방법의 차이점과 각각 어떠한 경우에 사용하면 좋은지 설명해보세요."
우선 가장 큰 차이점은 <img>
태그는 inline
요소이고 <div>
태그는 block
요소이다.
<img>
태그를 쓰면 좋은 경우:background images
를 인덱스하지 않는다. <img>
태그가 아닌 경우 이미지 검색결과는 이미지 스프라이트로 채워지게 될 것이다.<img>
태그는 alt
와 타이틀 속성을 더할 수 있어서 스크린리더와 검색 엔진에 반응할 수 있다.<img>
태그를 사용하면, HTML이 파스되면서 requests가 되기 때문에, 태그 전에 오는 어떤 내용이든 사용자가 읽을 수 있는 정보가 되므로 성능면에서 좋은점이다. Inline images
(img or picture) 는 pictrefill
이나 lazy loading
같은 더욱 나은 성능을 낼 수 있는 도구들의 이점을 취할수 있다.