본 내용은 엘리스 SW 4기에서 학습한 내용을 정리한 것입니다.
<!DOCTYPE html>
: HTML5라는 신조어로 문서를 선언하는 태그<html>…</html>
: HTML 문서의 시작과 끝을 의미, 모든 HTML태그들은 <html>
태그 안쪽에 입력<head>…</head>
: 웹사이트의 간단한 요약 정보를 담는 영역, 웹사이트에서 노출되지 않는 정보<body>…</body>
: 웹사이트에서 눈에 보이는 정보를 담는 영역, 이미지나 텍스트처럼 출력되는 정보<meta charset=”UTF-8”>
: character setting의 약자를 나타내는 문자 코드, 모든 문자를 웹 브라우저에서 깨짐 없이 표시하겠다는 의미<title>…</title>
: 웹사이트 탭에 나타나는 제목을 적는 태그<img src=”logo.png” alt=”이미지 업로드 전 텍스트”>
<h>
: Heading의 약자로 제목이나 부제목 표현<p>
: 본문 내용<ul><li></li><li></li><li></li>… </ul>
: 순서가 없는 리스트, 메뉴 버튼 만들 때 사용<ol><li></li><li></li><li></li>… </ol>
: 순서가 있는 리스트<a>
: 링크 태그, href속성으로 url부여, target 속성으로 웹페이지를 연결하는 방식 부여<header>
: 웹사이트의 머리글을 담는 공간<nav>
: 메뉴 버튼을 담는 공간(navigation)<aside>
: 좌측과 우측 사이드 위치의 공간, 본문 외의 부수적 내용을 주로 표현<section>
: 주제, 카테고리 별로 섹션을 구분하는 용도의 태그로 주로 사용, 그룹화<main>,<article>
: 주요 내용을 담는 main태그 안에 article 태그 넣음<main role="main"> <!-- 본문 영역 -->
<article> <!-- 정보 영역 -->
<h#></#h>
...
</article>
</main>
<footer>
: 하단에 들어가는 정보 표기할 때 사용<div>
: 임의의 공간 만들 때 사용1. SEO 최적화
검색 엔진이 태그의 목적에 부합하게 설계되어 있는 구조의 사이트에서 더욱 빨리 효율적으로 정보를 파악, 검색 결과의 노출에 유리할 수 있게 해줌
2. 웹 접근성에 효율적
일반적인 브라우저에서는 차이가 없지만 스크린리더과 같은 환경에서는 웹 접근성과 사용성을 향상시켜준다.
3. 유지보수의 용이성
많은 div사용으로 관리가 어려워지는 문제점에서 벗어나 태그의 이름만 보고도 어떤 영역인지 바로 확인가능, 해당 태그 영역의 특성에 맞는 직업을 구분하여 진행하기에 용이하다.
<h1 style="color: red;">1</h1>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
h1 {
color: red;
font-size: 36px;
}
p {
color: blue;
font-size: 20px;
}
</style>
</head>
<body>
<h1>안녕하세요!</h1>
<p>반갑습니다.</p>
</body>
</html>
<head>
<link rel="stylesheet" href="style.css">
</head>
.
#
<header>
<h1>Header h1</h1>
<p>Header p</p>
</header>
header { color: red; }
h1 { color: blue; }
p { color: green; }
<header>
과 <h1>, <p>
: 부모 자식 관계
<h1>
과 <p>
: 형제 관계
<header>
<h1>Header h1</h1>
<p>Header p</p>
</header>
<footer>
<h1>Footer h1</h1>
<p>Footer p</p>
</footer>
header { color: red; }
header h1 { color: blue; }
header p { color: green; }
// 직계 자식 선택 시 아래처럼 써도 됨
header > h1 { color: blue; }
원하는 지역에만 css 속성을 적용하기 위해 css 선택자 앞에 부모를 표기
나중에 적용한 속성 값의 우선순위가 높음
p { color: red; }
p { color: blue; } ✨
더 구체적으로 작성된 선택자의 우선순위가 높음
header p { color: red; } ✨
p { color: blue; }
style > id > class > type 순으로 우선순위가 높음 ✨
<style>
#color { color: blue; }
.color { color: red; }
h3 { color: green;}
</style>
<h3 style="color: pink">color</h3>
공간 안에서 내부 요소(ex. 이미지) 좌표 변경시
top, bottom, center, left, right
// background position of an element to the center of the element
background-position: center;
// background image to be aligned to the top left corner of the element
background-position: left top;
// background image to be 10 pixels from the left and 20 pixels from the top of the element
background-position: 10px 20px;
url 속성 안에 이미지 파일 이름.확장자
background-image: url("이미지 url")
p {
width: 200px;
height: 200px;
margin-top: 100px;
}
<p>
태그가 대표적<a>, <span>
태그인접해있는 Block요소 사이에서
-> inline요소 사이에서는 마진 병합이 발생X
상하단의 병합
-> 좌우로는 마진 병합X
<div class="box1">Hello World</div>
<div class="box2">Hello World</div>
.box1 { margin-bottom: 150px; } /* 적용값 */
.box2 { bottom-top: 100px; }
<main role="main">
<article>
</article>
</main>
article {
width: 200px;
height: 200px;
margin-top: 100px;
}
article {
position: absolute;
width: 200px;
height: 200px;
margin-top: 100px;
}
<style>
.parent {
width: 140px;
margin: 0 auto;
background-color:pink;
}
.child {
width: 100px;
height: 100px;
margin: 20px;
background-color: rosybrown;
display:inline-block ✨
}
</style>
...
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
overflow: hidden
값을 준다..parent {
width: 140px;
margin: 0 auto;
background-color:pink;
overflow:hidden;
}
.child {
width: 100px;
height: 100px;
margin: 20px;
background-color: rosybrown;
}
p { display: inline; }
a { display: block; }
a {display: inline-block; }
<style>
p {
display: inline;
width: 100px;
height: 100px;
background-color: yellowgreen;
}
a {
display: inline-block;
width: 100px;
height: 100px;
background-color: skyblue;
margin-top: 100px;
}
</style>
<body>
<p>p 태그(block요소) 1</p>
<p>p 태그(block요소) 2</p>
<p>p 태그(block요소) 3</p>
<a>a 태그(inline요소) 1</a>
<a>a 태그(inline요소) 2</a>
<a>a 태그(inline요소) 3</a>
</body>
<style>
.parent {
width: 250px;
}
.left {
background-color: aqua;
float: left;
}
.right {
background-color: blueviolet;
float: right;
}
</style>
<body>
<div class="parent">
<div class="left">Hello World</div>
<div class="right">Hello World</div>
</div>
</body>
float을 사용할 때 항상 같이 따라오는 속성임. float는 공중에 떠있다고 생각하면 됨. 다음에 나오는 object를 넣을 때, 레이어층이 겹치는 형태로(float아래에 있는 것처럼) 출력이 됨. 그래서 float의 object들 아래 지점에 잘 출력하기 위해서 사용하게 됨
<style>
html {
margin: 0;
padding: 0;
}
body {
margin: 0;
padding: 0;
}
header {
width: 100%;
height: 50px;
background-color: yellow;
}
#left {
float: left;
width: 50px;
height: 50px;
background-color: red;
}
main {
float: left;
width: 200px;
height: 50px;
background-color: green;
}
#right {
float: right;
width: 50px;
height: 50px;
background-color: pink;
}
footer {
clear: both; ✨
width: 100%;
height: 50px;
background-color: black;
}
</style>
<body>
<header></header>
<article id="left"></article>
<main role="main"></main>
<article id="right"></article>
<footer></footer>
</body>
float:left
만 사용되었다면, clear:left
<style>
html, body {
margin: 0;
padding: 0;
}
</style>
<style>
* {
margin: 0;
padding: 0;
}
</style>