멋쟁이사자처럼 프론트엔드 스쿨 7기 학습내용 정리 및 복습
#
.
, 가상 클래스, 속성선택자위 순서대로 가중치가 높음 (inline이 가장 높음)
#
: 100점.
, 가상클래스, 속성선택자: 10점*
: 0점!important
💡 알고 넘어가기!
🍯 Tip. 내부/외부 CSS를 나누는 기준?
<article>
: 단락 콘텐츠
<blockquote>
: 긴("블록") 인용구
<dd>
: 설명 목록의 정의 설명
<div>
: 문서의 분할
<dl>
: 설명 목록
<dt>
: 설명 목록의 정의
<footer>
: 페이지나 구역의 푸터
<form>
: 입력 폼
<h1>, <h2>, <h3>, <h4>, <h5>, <h6>
: 1~6단계 제목
<header>
: 페이지나 구역의 헤더
<hr>
: 수평선(구분선)
<li>
: 목록의 항목
<main>
: 문서에서 하나 뿐인 중심 콘텐츠
<nav>
: 탐색 링크를 포함
<ol>
정렬된 목록
<p>
: 문단
<section>
: 웹 페이지의 구역
<table>
: 표
<ul>
: 정렬되지 않은 목록
<a>
: 앵커 태그페이지 이동, 파일, 이메일 주소, 그 외 다른 url로 연결할 수 있는 하이퍼링크를 만듦<b>
: 굵은 글씨<br>
: 줄바꿈 요소<button>
: 클릭 가능한 버튼<em>
: 텍스트 강세<img>
: 문서에 이미지 삽입<span>
: 구문 콘텐츠를 위한 인라인 컨테이너 (본질적으로는 아무것도 나타내지 않음)<strong>
: 중대하거나 긴급한 콘텐츠를 나타냄 (굵은 글씨 표시)<sub>
: 아래 첨자 요소<sup>
: 위 첨자 요소block / inline / inline-block
d | block | inline | inline-block |
---|---|---|---|
요소 포함 | 인라인 요소 포함 가능 | 블록 요소 포함 불가 (a태그만 가능) | - |
줄바꿈 | O (세로로 쌓임) | X (가로로 쌓임) | X (가로로 쌓임) |
width, height | O | X | O |
padding | O | O | O |
margin | O | △ (left, right만 적용) | O |
border | O | O | O |
content
: 텍스트, 사진 등 보여줄 내용물(=요소)padding
: 내용물 주변 영역을 감싸며, 테두리와 내용물 사이의 틈border
: 내용물과 패딩을 감싸는 테두리margin
: 테두리 밖의 영역을 감싸며, 상자 밖 영역과 테두리 사이의 틈요소 너비 설정
기본값은 콘텐츠 영역의 너비이지만, box-sizing
속성을 사용하여 테두리 영역의 너비 설정
auto
: 기본값. 브라우저가 계산하여 지정(요소의 부모 크기 기준으로 가득 채우기)
min-content
: 최소 너비
max-content
: 컨텐츠 내용의 선호 너비
fit-content
: max-content
와 auto
키워드의 하이브리드 모드처럼 작동
가용 너비 부족하지 않은 경우: max-content
처럼 담고 있는 컨텐츠의 최대 너비를 요소의 width
속성값으로 사용
가용 너비 부족한 경우: auto
처럼 가용 너비에서 margin
을 제외한 너비를 요소의 width
속성값으로 사용
auto
: 기본값. 브라우저가 계산하여 지정(요소의 자식 기준으로 조절)padding
단축 속성: padding-top
padding-right
padding-bottom
padding-left
순으로 작성p{ padding: 10px; /* top, right, bottom, left 모두 10px */ padding: 10px 20px; /* top, bottom :10px, left, right:20px */ padding: 10px 20px 30px; /* top:10px, left,right:20px, bottom:30px */ padding: 10px 20px 30px 40px; }
margin
단축 속성: margin-top
margin-right
margin-bottom
margin-left
순으로 작성가운데 배치
p{ width: 400px; margin: auto; }
오른쪽 배치
p{ width: 400px; margin: auto 0 auto auto; }
overflow
속성 값 적용display: inline-block
값 적용border
값 적용display:flow-root
을 사용 (IE 지원 불가)border
단축 속성: border-width
border-style
border-color
p { border: 2px solid red; }
content-box
: 기본값. width, height에 border, padding 포함하지 않음border-box
: width, height에 border, padding 포함visible
: 기본값. 박스를 넘는 컨텐츠를 자르지 않음hidden
: 요소의 크기만큼 맞추기 위해 잘라내며, 스크롤바 제공하지 않음scroll
: 요소의 크기만큼 잘라내고, 스크롤바 제공auto
: 콘텐츠가 넘칠 경우 자동으로 스크롤바 노출border-radius
단축속성:border-top-radius
border-right-radius
border-bottom-radius
border-left-radius
background
: 배경 단축속성
background-attachment
: 배경 이미지 고정 여부
background-clip
: 요소의 배경이 테두리, 안쪽 여백, 콘텐츠 상자 중 어디까지 차지할지 지정
border-box
/ padding-box
/ content-box
background-origin
: 배경 위치 시작점을 결정
border-box
/ padding-box
/ content-box
background-color
: 배경 색상 설정
background-image
: 배경 이미지 설정
background-position
: 배경의 위치를 설정
background-repeat
: 배경 이미지를 어떻게 반복할 것인지 설정
repeat
: 반복no-repeat
: 반복하지 않음repeat-x
: x축으로만 반복repeat-y
: y축으로만 반복background-size
contain
: 이미지가 잘리거나 찌그러지지 않는 한도 내에서 제일 크게 설정. 여백이 발생할 수 있음cover
: 이미지가 찌그러지지 않는 한도 내에서 제일 크게 설정. 이미지의 가로세로비가 요소와 다르다면 이미지를 세로 방향 또는 가로 방향으로 잘라내어 여백이 생기지 않도록 설정offset-x offset-y blur-radius spread-radius color
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>박스 꾸미기</title>
<link rel="stylesheet" href="./box-deco.css">
</head>
<body>
<h1>박스 꾸미기 실습</h1>
<div class="box1"><p class="pizza">Pizza 🍕</p></div>
<div class="box2"><p class="sandwich">Sandwich 🥪</p></div>
<div class="box3"><p class="chicken">Chicken 🍗</p></div>
</body>
</html>
div {
margin: 30px;
}
.box1{
background-color: rgb(249, 77, 77);
width: 150px;
border: 3px solid rgb(189, 22, 22);
padding: 10px 0;
text-align: center;
box-shadow: 2px 2px 0px 1px salmon inset;
box-sizing: border-box;
}
.box2{
width: 150px;
padding: 20px 0;
border: 5px dashed rgba(28, 234, 17, 0.53);
text-align: center;
border-radius: 40px;
background: linear-gradient(90deg, rgba(0,180,15,1) 44%, rgba(249,255,0,1) 100%);
background-clip: padding-box;
}
.box3{
background-color: beige;
width: 150px;
padding: 20px 0;
border: 2px solid sandybrown;
text-align: center;
border-radius: 0 40px 40px 40px;
background-clip: padding-box;
box-shadow: 5px 5px 5px 1px sandybrown;
}
p {
margin: auto;
}
.pizza {
color: orange;
font-size: 25px;
font-weight: bold;
}
.sandwich {
color: yellow;
font-size: 20px;
font-weight: bold;
}
.chicken {
color: brown;
font-size: 20px;
font-weight: bold;
}
block
: 요소 전후에 줄 바꿈 생성(다른 요소를 밀어내고 혼자 한 줄 차지)inline
: 인라인 요소 상자 생성. 요소 전후에 줄바꿈 없이 한 줄에 다른 요소와 나란히 배치inline-block
: 줄 바꿈 없이 한 줄에 놓이지만, block처럼 width, height, margin, padding 값을 모두 설정할 수 있음(=하이브리드)flex
: 내부 자식 요소들의 위치를 부모 컨테이너 요소 안에서 수평 또는 수직 단방향(1차원적)으로 레이아웃 설정grid
: 내부 자식 요소들의 위치를 부모 컨테이너 요소 안에서 수평 수직 모두 이용해(2차원적)으로 레이아웃 설정none
: 요소를 아예 사라지게 하며, 보이지도 않고 해당 요소의 공간 또한 사라짐.src
: 경로alt
: 대체 텍스트. 이미지에 대한 설명alt=""
생략이 아닌 빈 값으로 두어야 함<img src="./images/img.jpg" alt="이미지 설명" >
💡 알고 넘어가기!
img{ vertical-align:top; }