멋쟁이사자처럼 프론트엔드 스쿨 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-colorp { 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-radiusbackground: 배경 단축속성
background-attachment: 배경 이미지 고정 여부
background-clip: 요소의 배경이 테두리, 안쪽 여백, 콘텐츠 상자 중 어디까지 차지할지 지정
border-box / padding-box / content-boxbackground-origin : 배경 위치 시작점을 결정
border-box / padding-box / content-boxbackground-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; }