border-collapse를 사용하면 테두리가 겹쳐서 자연스럽게 된다.border-spacing, 굵기가 다를때는 굵은 것 위주로 보여준다.img 라는 태그를 사용한다. src라는 속성에 이미지 주소 or 경로를 넣으면 됩니다.alt 속성 중요하다. 이미지에 대한 정보를 텍스트로 적는 속성이다.alt를 작성하는데 아래 내용을 참고하면 좋다.
참고: https://codingeverybody.kr/html-img-alt-%EC%86%8D%EC%84%B1/
<video> 태그를 사용하고 src 속성으로 파일 위치나 경로를 정해주면 되는데, 편하게 사용하려면 몇가지 속성 필요하다.autoplay 속성: 페이지가 로딩되면 자동으로 재생하는 속성 / 자동재생muted라는 속성과 같이 사용해야 자동 재생이 된다. 비디오의 소리를 끄는 옵션 / 음소거controls 라는 속성을 사용하면 프로그레스바, 재생버튼 등이 보인다.<audio>라는 태그를 사용한다. src 속성으로 파일을 지정한다. controls라는 속성을 추가해야 보인다.autoplay라는 속성이 있다. inline frame이란 뜻이다. frame의 인라인 버전이다. 즉, HTML 문서 안에서 다른 HTML 문서를 보여주는 태그이다.from이라고 하고, 내용적는 칸은 input, 인풋옆에 붙은 이름은 label 그리고 button 까지 포함한다.<form>이라는 태그를 감싸고, 안에 input 태그들을 넣는다. input태그는 닫는 태그 없이 시작태그만 쓴다.
label은 인풋의 설명을 적는 용도이다. input 태그를 label 태그로 감싸면, 라벨을 클릭했을때 input 태그에 커서가 깜빡인다.
이렇게 하지 않고, input 태그의 아이디를 라벨의 for 속성에 속성값으로 넣어주면 동일한 기능을 한다.
input 의 name 속성은 input 에 입력한 데이터에 이름을 붙여주는 것.
비밀번호 input 에 type="password"를 추가해주면 비밀번호가 안보인다.
button 태그는 기본적으로 form 태그 안에 있으면 눌렀을때 적은 내용을 전달한다.
현재 페이지의 주소가 http://127.0.0.1:3000이라고 가정해 볼게요. 이메일에 html@codeit.kr, 비밀번호로는 ilovehtml이라고 적고 나서 확인 버튼을 눌렀다고 합시다. 그럼 아래와 같은 주소로 이동합니다.
http://127.0.0.1:3000/?email=html%40codeit.kr&password=ilovehtml&password_repeat=ilovehtml
조금 복잡해 보이는데, 주소를 풀어서 써 볼게요. 보면 물음표 이후로 폼에 입력한 값이 들어가 있습니다. 이런 걸 쿼리 문자열(Query String)이라고 하는데요. <input> 태그마다 name 속성 값이랑 입력한 값이 짝지어 적혀 있습니다.
<http://127.0.0.1:3000/
?
email=html%40codeit.kr
&
password=ilovehtml
&
password_repeat=ilovehtml>
여기서 http://127.0.0.1:3000이라는 부분은 폼이 보이는 현재 페이지의 주소인데요. 기본적으로는 현재 페이지 주소의 맨 끝에다 쿼리 문자열을 붙여서 이동합니다.
이때 현재 페이지 주소 말고, 다른 주소를 쓰고 싶다면 직접 정해 줄 수도 있는데요. <form> 태그의 action 속성을 사용하면 됩니다. 예를 들어서 구글 검색 페이지의 주소를 적어줄 수도 있는데요.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>코드잇</title>
</head>
<body>
<form action="https://google.com/search">
<input name="q">
<button>검색</button>
</form>
</body>
</html>
만약에 "코드잇"이라고 적고 검색 버튼을 누르면 https://google.com/search?q=코드잇 이라는 주소로 이동할 겁니다.
method 속성
<form> 태그의 method 속성을 바꿔 주면 POST 리퀘스트를 보낼 수 있습니다.<label><input name="agreement" type="checkbox">동의합니다</label><input> 태그에 value 속성으로 값을 지정해 주면, 선택된 항목의 지정된 값이 쓰입니다. 예를 들자면 아래 코드에서는 "액션"이랑 "코미디"를 선택했을 때 film의 값으로 action과 comedy라는 문자열이 지정됩니다. 폼을 전송했을 때 쿼리 문자열에서는 &film=action&film=comedy처럼 전송됩니다.<label> <input type="checkbox" name="film" value="action"> 액션 </label> <label> <input type="checkbox" name="film" value="comedy"> 코미디 </label> <label> <input type="checkbox" name="film" value="romance"> 로맨스 </label>
<input name="birthdate" type="date"><input name="avatar" type="file">accept라는 속성을 써서 허용할 파일 확장자들을 정해 줄 수 있습니다.<input name="avatar" type="file" accept=".png,.jpg">multiple 이라는 참/거짓 속성을 사용하면 여러 개 또는 한 개만 선택하도록 정할 수 있습니다.<input name="photos" type="file" multiple> <!-- 여러 개 선택 가능 --><input name="avatar" type="file"> <!-- 한 개만 선택 가능 --><input name="email" type="email"><input type="number"><input type="number" min="100" max="1000">
<!-- 100에서 1000사이, 버튼을 눌렀을 때 100씩 증가, 감소 -->
<input type="number" min="100" max="1000" step="100">
<input type="password">
<input> 태그들 중에, 선택한 <input> 의 value 값을 입력하도록 할 수 있습니다. <input id="very-bad" name="feeling" value="0" type="radio">
<label for="very-bad">아주 나쁨</label>
<input id="bad" name="feeling" value="1" type="radio">
<label for="bad">나쁨</label>
<input id="soso" name="feeling" value="2" type="radio">
<label for="soso">보통</label>
<input id="good" name="feeling" value="3" type="radio">
<label for="good">좋음</label>
<input id="very-good" name="feeling" value="4" type="radio">
<label for="very-good">아주 좋음</label>
<label for="signup-feeling">현재 기분</label>
<input id="signup-feeling" name="feeling" min="1" max="10" type="range">
<input name="nickname" type="text"><select><select> 태그 안에 <option> 태그를 value와 함께 사용하면 되는데요. <label for="genre">장르</label>
<select id="genre" name="genre">
<option value="korean">한국 영화</option>
<option value="foreign">외국 영화</option>
<option value="drama">드라마</option>
<option value="documentary">다큐멘터리</option>
<option value="vareity">예능</option>
</select>
<textarea><input> 태그와 달리 반드시 종료 태그(</textarea>)를 써 주어야 합니다.<textarea name="content"></textarea>placeholder 의 디자인을 바꾸려면 CSS 선택자로 ::placeholder 를 활용하면 됩니다.input::placeholder {
color: #dddddd;
}
<input name="email" type="email" required>autocomplete 이라는 속성을 써서 그런 건데요. 이 속성을 지정해 두면 폼이 전송될 때마다 입력한 값을 웹 브라우저에 저장해 두고, 나중에 인풋에 값을 입력할 때 추천해 줍니다.on이라는 값을 지정해 주어야 동작하니까 꼭 기억해 주세요.<input name="search" type="text" autocomplete="on"><input name="email" type="email" autocomplete="email">
<input name="telephone" autocomplete="tel">
<link rel="stylesheet" href="style.css"><script>태그<script>태그를 쓴다.body 태그안에 script 를 쓰고 그안에 실행문을 넣어주면된다. 아니면 파일을 따로 만들어서 파일 경로를 지정해주면된다.<head> 태그 내부의 메타 태그나 제목 태그 다음, 혹은 <script> 태그' 이전 입니다. <body> 태그 내부에도 위치할 수 있지만,<head> 태그 내부에 위치하게 하는 것이 권장되는 이유는,1. 스타일 우선 로드:
스타일시트가 페이지 로드 시 최대한 빨리 적용되어 깜빡임 현상을 방지할 수 있습니다.
2. SEO 및 성능 최적화:
검색 엔진과 브라우저가 페이지 로딩 성능을 개선할 수 있습니다.
시맨틱 태그(Semantic Tag)라고 부른다. // 영역을 의미있게 나눌때 사용한다<header> 태그가 있다.<nav>라는 태그를 사용한다.<main><footer>태그<main> 태그는 한 페이지 안에서 딱 한번만 쓸수있지만,<header>랑 <footer>는 여러 영역에서 사용가능하다.<article>이라는 태그를 사용한다. 이 안에는 하나의 완전한 내용이라고 보면된다.<article><section> 은 어떤것의 구분을 나타낼때 쓴다.section 으로 영역을 나눌 수 있다.figure 라는 태그를 사용너무 남발하는 것 보다 div로 만들만큼 만들고 시맨틱태그로 매꾸는 것을 추천
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale, user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=edge"><head> 안에 문서를 설명하는 <meta> 를 넣습니다. 메타 태그는 닫는 태그가 없습니다.