<form>
is used to define an interactive area on a web page where users can input data and interact with the web application.<form>
<input type=“text” name=“search” />
<input type=“submit” name=“search” />
</form>
<form>
tag 없이도 사용<form>
: form tag<form>
은 모든 form elements (즉, control)을 담을 수 있는 container<form name="newform" action="https://api.duckduckgo.com/?q=" method="GET"/>
<input>
property: text, passwordType
property -> text
Size
property <- 입력 받을 문자의 크기(visible width)<input type=“text” name=“company” size=“5” maxlength=“5”/>
Type
property -> password
<form>
ID : <input id='userid' type='text'/><br>
비밀번호 : <input id='pwd' type='password'/>
</form>
<input>
property: checkbox, radioType
property -> radio
Type
property -> checkbox
<input type=“radio” name=“gender” value=“male”>Male<br>
<input type=“radio” name=“gender” value=“female” checked =“checked” />Female<br>
Please Check it if this is Spam <input type=“checkbox” name=“spamList” checked=“checked” />
<input>
property: button property<input type=“button”>
<input type=“button”>
은 아무 기능도 가지지 않음. JavaScript 코드로 연동해야 함<input type='button|reset|submit|image' name='name of the button'
value='WORD ON THE BUTTON' onclick='action'/>
value에 있는 값이 버튼의 이름으로 출력되어 있는 것을 확인할 수 있다.
<button>
element<button>
주의: <button>
form 안에 있는 경우, default type이 submit
임. 따라서, button이 click 되는 경우 page reload 됨
Without <form>
, <button>
can be used to trigger JavaScript functions or actions
<button type='button|reset|submit'
name='name of the button'
value='INITIAL VALUE OF BUTTON'>
word on the button or url of the button image</button>
value가 아니라 외부에 적힌 문자열(word on...~)이 button위에 출력된다.
input 태그와 button 태그의 차이를 확인하자.
<button>
tag의 경우<button><img src=“/index.jpg”></button>
<input>
tag의 경우src
attribute가 working 함<input type="image" src="/submit.gif" alt="Submit" width="48" height="48">
type에 image라고 지정해야한다.
<select>
<optgroup label=“group name”>
로 구분<select>
<optgroup label="Swedish Cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</optgroup>
</select>
<select name=“car” multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
select element가 표시되는 시점에 특정 항목을 default로 지정해 표현 가능한가?
일반적인 상황(selected 적용하지 않을 경우))
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
가장 첫번째 옵션이 default로 제시
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel" selected>Opel</option>
<option value="audi">Audi</option>
</select>
selected 옵션이 적용된 세번째 옵션이 default로 제시
<label>
<label>
요소는 각 라디오 버튼과 연결된 레이블을 나타냅니다. for 속성은 레이블이 어떤 입력 필드와 연결되는지 지정합니다
<p>Click on one of the text labels to toggle the related control:</p>
<form action="demo_form.asp">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female"><br><br>
<input type="submit" value="Submit">
</form>
div
및 id/class
로 구조화 하던 문서에서, tag
스스로의 의미에 기반한 문서 제작“look”
을 만들어야 함<header>
: 페이지나 섹션, article의 머리말을 표현하는 태그 (optional)<nav>
: 내비게이션, hyperlink들을 모아 놓은 특별한 섹션<section>
: 문서의 장 혹은 절을 구성하는 역할<article>
: 본문 내용에 대한 보조적인 내용을 담는 영역. 보조기사, 블로그포스트, 댓글 등<aside>
: 왼쪽이나 오른쪽에 배치하는 “본문 흐름 외 내용들“ 노트, 팀, 논평 등<footer>
: 꼬리말 영역, 저자 및 저작권 등의 정보 (optional)<!DOCTYPE html>
<html>
<head>
<title>HTML5 Semantic Tags</title>
</head>
<body>
<header>Header</header> <nav>Nav</nav>
<aside>Aside</aside>
<section>Section</section>
<footer>Footer</footer>
</body>
</html>
추가된 tag만 집어넣었다 어떻게 보일까?
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Semantic Tags</title>
<style>
html, body {margin: 0; padding: 0; height: 100%;}
.header {width: 100%; height: 10%; background: lightgreen;}
.nav {width: 20%; height: 80%; float: left; background: coral;}
.aside {width: 20%; height: 80%; float: left; background: orchid;}
.section {width: 60%; height: 80%; float: left; background: turquoise;}
.footer {width: 100%; height: 10%; clear: both ;background: yellow;}
</style>
</head>
<body>
<header class="header">Header</header>
<nav class="nav">Nav</nav>
<section class="section">Section</section>
<aside class="aside">Aside</aside>
<footer class="footer">Footer</footer>
</body>
</html>
tag들에 필요한 스타일을 집어넣으면 가능
width=device-width
: 웹 문서의 너비 = 기기 화면 너비 (장치 독립적인 픽셀로 화면 너비를 일치시키도록 함)initial-scale=1
: CSS 픽셀과 장치 고유의 pixel 사이에 1:1 관계를 유지함initial-scale
이 없다면 가로 모드 회전에서 페이지 너비가 일정하게 유지되는 문제 발생 가능함<head>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”/>
</head>
medium-dpi는 중간 픽셀 밀도를 나타내는 용어입니다. 여기서 "dpi"는 "Dots Per Inch"의 약자로, 인치당 도트의 개수를 나타냅니다. "medium-dpi"는 중간 수준의 픽셀 밀도를 가리키며, 모바일 기기의 화면에서 픽셀이 어떻게 배치되는지를 나타내는 지표 중 하나입니다
W3C created media queries as part of the CSS3 specification(규격) (more like a filter)
@media
.title { font-size: 40px; }
@media (max-width: 600px) { .title { font-size: 20px; }
40px이 기본이며, 600px 보다 작은 화면에서는 20px이 적용된다는 것을 해석할 수 있어야 한다.
<link>
<link href="cssfile.css"
media="screen and (min-width: 512px) and (max-width: 1024px)"
rel="stylesheet">
쿼리를 날려서 어떤상황인지 파악한다.
<!DOCTYPE html>
<html>
<head>
<title>Responsive Web Example</title>
<style>
* {
margin:0;
padding: 0;
}
body {
width: 960px;
margin: 0 auto;
overflow: hidden;
}
#menu {
width: 260px;
float: left;
background-color: coral;
}
#section {
width: 700px;
float: right;
}
@media screen and (max-width: 767px) {
body { width: auto }
#menu { width: auto; float: none; }
#section { width: auto; float: none; }
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li><a href="https://www.naver.com">Naver</a></li>
<li><a href="https://www.daum.net">Daum</a></li>
<li><a href="https://www.ajou.ac.kr">Ajou</a></li>
</ul>
</div>
<div id="section">
<h1>Two Towers</h1>
<p>Merry and Pippin, taken captive by the Uruk-hai, learn that one of the orcs from
Mordor, Grishnákh, knows about the ring and believes it to be on one of them. </p>
</div>
</body>
</html>
*
선택자를 사용하여 모든 HTML 요소에 대해 마진과 패딩을 0으로 설정합니다.이렇게 구성된 스타일은 데스크톱 화면에서는 왼쪽에 메뉴가, 오른쪽에 섹션이 나란히 배치되는 레이아웃을 제공하며, 화면 크기가 작아지면(767px 이하) 메뉴와 섹션이 수직으로 쌓이도록 조정됩니다. 이것은 반응형 웹 디자인의 한 예시입니다.