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같은 더욱 나은 성능을 낼 수 있는 도구들의 이점을 취할수 있다.