이미지와 미디어

웹 페이지에는 텍스트가 많이 담기지만, 그것만은 아닙니다. 사진, 다이어그램, 삽화, 비디오 클립, 소리도 모두 콘텐츠이며, HTML에는 각각을 위한 요소들이 있습니다. 이 장에서는 페이지에 미디어를 올리는 마크업에 관해 다룹니다. 이미지 파일을 지정하는 방법, 볼 수 없는 사람들을 위해 설명하는 방법, 그리고 누구의 데이터도 낭비하지 않으면서 올바른 파일을 올바른 화면에 제공하는 방법입니다.
이미지 요소
페이지에 사진을 올릴 때는 **이미지 요소**를 사용하며, <img>로 표기합니다. 콘텐츠가 없고 닫는 태그도 없습니다. 대신 속성을 통해 두 가지를 지정합니다. 어떤 파일을 보여줄지, 그리고 그 사진이 무엇인지입니다.
<img src="golden-retriever.jpg" alt="A golden retriever sitting in tall grass">src는 소스(source)로, 이미지 파일의 경로 또는 웹 주소입니다. alt는 대체 텍스트(alternative text)로, 사진에 대한 짧은 설명입니다. 이미지를 불러올 수 없거나 누군가가 화면 읽기 프로그램으로 페이지를 듣고 있다면, alt 텍스트가 그 역할을 합니다. 따라서 전화 통화 중에 친구에게 사진을 설명하듯이 작성하세요.
src는 보여줄 파일이고, alt는 사진을 단어로 설명합니다. alt를 전화 통화 중에 누군가에게 사진에 무엇이 있는지 말하듯이 작성하세요. 가장 많이 건너뛰는 부분이며, 가장 중요한 부분입니다. 반응형 이미지
노트북에서 선명하게 보이는 사진은 휴대폰에서 필요한 것보다 훨씬 클 수 있습니다. 그 전체 크기 파일을 작은 화면으로 보내는 것은 방문자의 데이터를 낭비하고 페이지를 느리게 합니다. HTML을 사용하면 같은 사진의 몇 가지 버전을 제공하고 브라우저가 맞는 것을 선택하도록 할 수 있습니다.
시작할 때 모든 이미지에 이것이 필요한 것은 아닙니다. 합리적인 파일이 있는 하나의 <img>로도 충분합니다. 하지만 이 개념이 존재한다는 것을 아는 것이 도움이 됩니다. 같은 사진이 여러 크기로 올 수 있고, 브라우저가 선택합니다.
<img src="beach-800.jpg" alt="Waves rolling onto a quiet beach at sunset"><img>로도 충분합니다. 페이지가 모바일에서 무거워지기 시작할 때를 위해 이 옵션이 있습니다. 비디오와 오디오
HTML은 플러그인 없이 비디오와 소리를 재생할 수 있습니다. 클립의 경우 <video> 요소를 사용하고, 소리의 경우 <audio>를 사용합니다. controls 속성을 추가하면 브라우저가 재생 버튼, 타임라인, 볼륨 제어를 무료로 제공합니다.
<video src="tutorial.mp4" controls></video>
<audio src="podcast-episode.mp3" controls></audio>이미지와 달리 이들은 닫는 태그를 가지고 있습니다. 열기와 닫기 태그 사이에 폴백 텍스트 또는 추가 설정을 넣을 수 있기 때문입니다. 초기 단계에서 기억할 가장 중요한 것은 항상 controls을 포함해야 한다는 것입니다. 그렇지 않으면 방문자가 재생을 누를 방법이 없습니다.
<video>는 클립을 재생하고 <audio>는 소리를 재생하며, 플러그인이 필요하지 않습니다. controls를 추가하세요. 그렇지 않으면 재생 버튼이 없고 방문자가 막힙니다. 둘 다 닫는 태그를 가지고 있으므로, 이미지와 달리 안에 설정과 폴백 텍스트를 넣을 수 있습니다. 크기 조정, 지연 로딩 및 성능
이미지가 로드될 때, 페이지의 나머지 부분을 이동할 수 있습니다. 문단을 읽고 있는데, 사진이 위에서 로드 완료되면, 갑자기 텍스트가 아래로 점프합니다. 그 점프는 짜증나며, 이를 방지할 수 있습니다. width와 height로 미리 이미지의 크기를 브라우저에 알려주세요.
<img src="team-lunch.jpg" alt="The team sharing lunch on the office balcony"
width="800" height="600">그 숫자로 브라우저가 이미지가 도착하기 전에 올바른 공간을 예약하므로, 도착할 때 아무것도 점프하지 않습니다. 파일의 실제 픽셀 크기를 제공하고, CSS는 여전히 화면에서 크기를 조정할 수 있습니다.
width와 height를 제공하면 사진이 로드될 때 페이지가 점프하는 것을 중지합니다. 파일의 실제 픽셀 크기를 사용하세요. CSS는 여전히 화면에서 축소할 수 있습니다. 이 한 가지 습관이 가장 짜증나는 로딩 결함을 수정합니다. 
