The resulting responsive image features in HTML 5.1
user's viewing environment에 맞춘 이미지를 제공하는 것
⇒ 반응형 이미지는 다음과 같이 작동한다.
srcset
을 사용하면 개발자가 브라우저에서 선택할 이미지 소스 옵션 목록을 지정할 수 있다.
→ 기기의 폭에 따라 다른 이미지 표시
srcset
의 값은 쉼표로 구분된 옵션 목록이며, 해당 목록의 각 항목은 두 부분으로 구성된다.
w
: 픽셀 수
이미지 자신이 픽셀 수를 브라우저에게 전달한다.
브라우저는 전달 받은 정보를 바탕으로 어떤 이미지를 표시할지 선택한다.
브라우저는 자신의 화면 너비와 이미지 폭을 비교하고
자신의 브라우저에 부족하지 않은 픽셀 수 중, 최소의 픽셀을 가진 이미지를 선택한다.
<img src="image-URL" alt="" srcset="image-URL #x, image-URL #x"
<img src="/images/turkey-200px.jpg" alt=""
srcset="/images/turkey-400px.jpg 2x,
/images/turkey-600px.jpg 3x" >
<img src="/images/turkey-200px.jpg" alt=""
srcset="/images/turkey-400px.jpg 2x,
/images/turkey-600px.jpg 3x">
반응형 웹페이지를 디자인할 때, image sizes 를 browser viewport
size에 기반하여 변화시키는 것
스마트 기기에서 여러 단말기의 해상도에 대응하기 위해 사용한다.
viewport
는 스마트기기 상에서, 최초에 페이지를 로딩할 때 확대정도, 최대 확대비율, 최소 확대비율등을 다루는 meta data에 속하는 속성이다.
viewport
를 사용함으로서 무선을 위한 디자인을 무선에서 최적화 되게 보여줄 수 있다.
<meta name="viewport" content=""/>
를 head
사이에 추가해 주면 된다.
<img src="strawberries-640.jpg" alt="baskets of ripe strawberries"
srcset="strawberries-480.jpg 480w,
strawberries-960.jpg 960w,
strawberries-1280.jpg 1280w,
strawberries-2400.jpg 2400w"
sizes="100vw">
이 예에서 크기 속성은 크기 속성의 가장 일반적인 단위인 viewport width units
( vw
)를 사용하여 이미지가 전체 뷰포트를 채우도록 브라우저에 알려 주어 브라우저가 작업에 가장 적합한 이미지를 선택할 수 있도록 한다.
예를 들어 100vw는 뷰포트 너비의 100%, 50vw는 50% 등으로 변환된다.
<picture>
<source type="image/webp" srcset="pizza.webp">
<source type="image/jxr" srcset="pizza.jxr">
<img src="pizza.jpg" alt="">
</picture>
image
와 caption
들이 <figure> 태그를 통해 그룹화 될 수 있다.
이미지에 시각적 설명을 추가한다.
<figure>
<img src="html5.png" alt="HTML5" width="200" height="350" />
<figcaption>HTML5 - The Latest Version of HTML</figcaption>
</figure>
파비콘은 브라우저 탭과 북마크 목록에서 페이지 제목 왼쪽에 표시되는 작은 아이콘이다.
<link rel="apple-touch-icon-precomposed"
sizes="120x120"
href="apple-touch-icon-120x120.png">
<!DOCTYPE html> <html>
<head>
<title>Mailing List Signup</title> <meta charset="utf-8">
</head>
<body>
<h1>Mailing List Signup</h1>
<form action="/mailinglist.php" method="POST">
<fieldset>
<legend>Join our email list</legend>
<p>Get news about the band such as tour dates
and special MP3
releases sent to your own in-box.</p>
<ol>
<li><label for="firstlast">Name:</label>
<input type="text" name="fullname"
id="firstlast">
</li>
<li><label for="email">Email:</label> <input type="text" name="email"
id="email">
</li>
</ol>
<input type="submit" value="Submit"> </fieldset>
</form>
</body>
</html>
target= _blank
= open in a new windowtarget= _top
= use the same window<input
type="text"
name="fullname"
value="Jhan" maxlength="50"
size="10" >
Name
Value
maxlength
, minlength
Size
<textarea name="contest_entry"
rows="5"
cols="50"> The band is totally awesome!
</textarea>
rows
and cols
attributes 은 텍스트영역의 크기를 설정한다.readonly
: 값이 바뀌지 않게 하는 속성disabled
: disabled 속성이 명시된 <input> 요소는 사용할 수 없으며, 사용자가 클릭할 수도 없다.Placeholder
: 필드에 무엇을 입력해야하는지 힌트를 주는 속성Required
<textarea name="contest_entry"
placeholder="50 words or less"
rows="5"
cols="50">
</textarea>
<form action="">
Username: <input type="text" name="usrname" required />
<input type="submit" />
</form>
일반적인 한 줄 텍스트 항목 외에도 암호, 검색어, 이메일 주소, 전화 번호 및 URL과 같은 특정 유형의 정보를 입력하기 위한 여러 가지 입력 유형이 있다.
암호 필드는 문자가 별표(*) 또는 글머리 기호(•) 문자로 표시되지 않는다는 점을 제외하면 텍스트 입력 필드와 동일하게 작동한다.
<label for="form-pswd">Password:</label>
<input type="password" name="pswd" maxlength="12" id="form-pswd">
email addresses
, telephone numbers
, URLs
, or search terms
를 수집하는 유일한 방법은 일반 텍스트 입력 필드를 삽입하는 것이었다.email addresses
, telephone numbers
, URLs
, or search terms
은 필드에서 예상되는 정보 유형에 대해 브라우저에 미리 알려준다.list
속성은 <datalist> 요소의 id
속성을 참조해야 한다.<form action="">
<input type="text" list="browsers" />
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Safari">
</datalist>
</form>
<p>
<input type="submit">
<input type="reset" value="Start over">
</p>
image button, custom input button, and the button element 등의 버튼이 더 존재한다.
<input type="image">
<input type="button">
<button>...</button>
checkbox button 과 radio button은 옵션을 제공한다.
Radio buttons:
<input type="radio" name="radiobutton" value="myValue1">
male
<br>
<input type="radio" name="radiobutton" value="myValue2" checked>
female
group
을 만드는 방법:name
을 가진 경우 사용자는 한 번에 하나만 선택할 수 있습니다.name
의 값을 요청하면 선택한 Radio button 에 지정된 값을 얻을 수 있다.Check box
과 마찬가지로 Radio button
에는 텍스트가 포함되지 않는다.A checkbox:
<input type="checkbox" name="checkbox” value="checkbox" checked>
type
: "checkbox"name
: used to reference this form element from JavaScript value
: checkbox와 연결된 텍스트가 없다는 점에 유의해야 한다. 주변 HTML에 텍스트를 제공해야 한다.A menu or list:
<select name="select">
<option value="red">red</option>
<option value="green">green</option>
<option value="BLUE">blue</option>
</select>
size
: 목록에 표시되는 항목 수 (default is "1")multiple
: "true"로 설정하면 원하는 수의 항목을 선택할 수 있다. (default is "false")<form action="/client.php" method="POST" enctype="multipart/form-data">
<label>Send a photo to be used as your online icon
<em>(optional)</em>
<br>
<input type="file" name="photo">
</label>
</form>
A hidden field:
<input type="hidden" name="hiddenField" value="nyah">
<-- right there, don't you see it?
<input type="date">
<input type="time">
<input type="datetime-local">
<input type="month">
<input type="week">
min
및 max
속성을 허용한다.<input type="number">
<input type="range">
<input type="color">
<input type="range">
는 범위 의 값을 포함해야 하는 입력 필드에 사용된다.<form action=""> Points:
<input type="range" name="points" min="0" max="10" /> <input type="submit" />
</form>
new form element
는 form 의 component 간의 semantic connection
을 명확하게 만드는 방법을 제공한다.resulting markup
은 의미상 더 풍부할 뿐만 아니라 스타일 시트 규칙에 대한 "hook"
역할을 할 수 있는 더 많은 요소가 있다.hook
: 여러 기능들을 한 번에 묶어둔 것
label element
는 descriptive text
를 각각의 form field
와 연결하는데 사용된다.label element
는 정확히 하나의 form control
과 연결된다.Labels
사용하는 두가지 방법Implicit association
<label>Male: <input type="radio" name="gender" value="M" /></label>
Male:
Explicit association
<label for="form-login-username">Login account:</label>
<input type="text" name="login" id="form-login-username" />
Login account:
<fieldset>
<legend>Customer Information</legend>
<ol>
<li>
<label>Full name: <input type="text" name="name"/></label>
</li>
<li>
<label>Email: <input type="text" name="email" />
</label>
</li>
<li>
<label>State: <input type="text" name="state" /></label>
</li>
</ol>
</fieldset>
Customer Information