[UMC]CSS
Web 2주차 워크북
📝 실습 체크리스트
-
[과제 1] : 클론 사이트 선정 (투표 예정)
https://www.dbcut.com/bbs/bbs.php?table=newsite&where=ALL&search_step=1&sort=BB_HIT&orderby=DESC&p=1
이 사이트에서 hits수가 많은 것들 중 제법 구역이 쉬워보이는 걸 골랐다..
-
[과제 2] : 태그와 <div> 태그의 차이점 알아오기
div는 가로를 다 차지해서 줄 바꿈이 있고, span은 요소만 차지하기 때문에 줄 바꿈 없이 옆으로 늘어서서 나타난다.
html
<!DOCTYPE html>
<html lang="en">
<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>first webpage</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="./style2.css" />
</head>
<body>
<nav class="flex">
<div class="flex">
<button class="nav-btn">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M21,6H3V5h18V6z M21,11H3v1h18V11z M21,17H3v1h18V17z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
<a class="flex" href="https://www.youtube.com">
<span id="logo">
<svg
viewBox="0 0 90 20"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g
viewBox="0 0 90 20"
preserveAspectRatio="xMidYMid meet"
class="style-scope yt-icon"
>
<g class="style-scope yt-icon">
<path
d="M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z"
fill="#FF0000"
class="style-scope yt-icon"
></path>
<path
d="M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z"
fill="white"
class="style-scope yt-icon"
></path>
</g>
<g class="style-scope yt-icon">
<g id="youtube-paths" class="style-scope yt-icon">
<path
d="M34.6024 13.0036L31.3945 1.41846H34.1932L35.3174 6.6701C35.6043 7.96361 35.8136 9.06662 35.95 9.97913H36.0323C36.1264 9.32532 36.3381 8.22937 36.665 6.68892L37.8291 1.41846H40.6278L37.3799 13.0036V18.561H34.6001V13.0036H34.6024Z"
class="style-scope yt-icon"
></path>
<path
d="M41.4697 18.1937C40.9053 17.8127 40.5031 17.22 40.2632 16.4157C40.0257 15.6114 39.9058 14.5437 39.9058 13.2078V11.3898C39.9058 10.0422 40.0422 8.95805 40.315 8.14196C40.5878 7.32588 41.0135 6.72851 41.592 6.35457C42.1706 5.98063 42.9302 5.79248 43.871 5.79248C44.7976 5.79248 45.5384 5.98298 46.0981 6.36398C46.6555 6.74497 47.0647 7.34234 47.3234 8.15137C47.5821 8.96275 47.7115 10.0422 47.7115 11.3898V13.2078C47.7115 14.5437 47.5845 15.6161 47.3329 16.4251C47.0812 17.2365 46.672 17.8292 46.1075 18.2031C45.5431 18.5771 44.7764 18.7652 43.8098 18.7652C42.8126 18.7675 42.0342 18.5747 41.4697 18.1937ZM44.6353 16.2323C44.7905 15.8231 44.8705 15.1575 44.8705 14.2309V10.3292C44.8705 9.43077 44.7929 8.77225 44.6353 8.35833C44.4777 7.94206 44.2026 7.7351 43.8074 7.7351C43.4265 7.7351 43.156 7.94206 43.0008 8.35833C42.8432 8.77461 42.7656 9.43077 42.7656 10.3292V14.2309C42.7656 15.1575 42.8408 15.8254 42.9914 16.2323C43.1419 16.6415 43.4123 16.8461 43.8074 16.8461C44.2026 16.8461 44.4777 16.6415 44.6353 16.2323Z"
class="style-scope yt-icon"
></path>
<path
d="M56.8154 18.5634H54.6094L54.3648 17.03H54.3037C53.7039 18.1871 52.8055 18.7656 51.6061 18.7656C50.7759 18.7656 50.1621 18.4928 49.767 17.9496C49.3719 17.4039 49.1743 16.5526 49.1743 15.3955V6.03751H51.9942V15.2308C51.9942 15.7906 52.0553 16.188 52.1776 16.4256C52.2999 16.6631 52.5045 16.783 52.7914 16.783C53.036 16.783 53.2712 16.7078 53.497 16.5573C53.7228 16.4067 53.8874 16.2162 53.9979 15.9858V6.03516H56.8154V18.5634Z"
class="style-scope yt-icon"
></path>
<path
d="M64.4755 3.68758H61.6768V18.5629H58.9181V3.68758H56.1194V1.42041H64.4755V3.68758Z"
class="style-scope yt-icon"
></path>
<path
d="M71.2768 18.5634H69.0708L68.8262 17.03H68.7651C68.1654 18.1871 67.267 18.7656 66.0675 18.7656C65.2373 18.7656 64.6235 18.4928 64.2284 17.9496C63.8333 17.4039 63.6357 16.5526 63.6357 15.3955V6.03751H66.4556V15.2308C66.4556 15.7906 66.5167 16.188 66.639 16.4256C66.7613 16.6631 66.9659 16.783 67.2529 16.783C67.4974 16.783 67.7326 16.7078 67.9584 16.5573C68.1842 16.4067 68.3488 16.2162 68.4593 15.9858V6.03516H71.2768V18.5634Z"
class="style-scope yt-icon"
></path>
<path
d="M80.609 8.0387C80.4373 7.24849 80.1621 6.67699 79.7812 6.32186C79.4002 5.96674 78.8757 5.79035 78.2078 5.79035C77.6904 5.79035 77.2059 5.93616 76.7567 6.23014C76.3075 6.52412 75.9594 6.90747 75.7148 7.38489H75.6937V0.785645H72.9773V18.5608H75.3056L75.5925 17.3755H75.6537C75.8724 17.7988 76.1993 18.1304 76.6344 18.3774C77.0695 18.622 77.554 18.7443 78.0855 18.7443C79.038 18.7443 79.7412 18.3045 80.1904 17.4272C80.6396 16.5476 80.8653 15.1765 80.8653 13.3092V11.3266C80.8653 9.92722 80.7783 8.82892 80.609 8.0387ZM78.0243 13.1492C78.0243 14.0617 77.9867 14.7767 77.9114 15.2941C77.8362 15.8115 77.7115 16.1808 77.5328 16.3971C77.3564 16.6158 77.1165 16.724 76.8178 16.724C76.585 16.724 76.371 16.6699 76.1734 16.5594C75.9759 16.4512 75.816 16.2866 75.6937 16.0702V8.96062C75.7877 8.6196 75.9524 8.34209 76.1852 8.12337C76.4157 7.90465 76.6697 7.79646 76.9401 7.79646C77.2271 7.79646 77.4481 7.90935 77.6034 8.13278C77.7609 8.35855 77.8691 8.73485 77.9303 9.26636C77.9914 9.79787 78.022 10.5528 78.022 11.5335V13.1492H78.0243Z"
class="style-scope yt-icon"
></path>
<path
d="M84.8657 13.8712C84.8657 14.6755 84.8892 15.2776 84.9363 15.6798C84.9833 16.0819 85.0821 16.3736 85.2326 16.5594C85.3831 16.7428 85.6136 16.8345 85.9264 16.8345C86.3474 16.8345 86.639 16.6699 86.7942 16.343C86.9518 16.0161 87.0365 15.4705 87.0506 14.7085L89.4824 14.8519C89.4965 14.9601 89.5035 15.1106 89.5035 15.3011C89.5035 16.4582 89.186 17.3237 88.5534 17.8952C87.9208 18.4667 87.0247 18.7536 85.8676 18.7536C84.4777 18.7536 83.504 18.3185 82.9466 17.446C82.3869 16.5735 82.1094 15.2259 82.1094 13.4008V11.2136C82.1094 9.33452 82.3987 7.96105 82.9772 7.09558C83.5558 6.2301 84.5459 5.79736 85.9499 5.79736C86.9165 5.79736 87.6597 5.97375 88.1771 6.32888C88.6945 6.684 89.059 7.23433 89.2707 7.98457C89.4824 8.7348 89.5882 9.76961 89.5882 11.0913V13.2362H84.8657V13.8712ZM85.2232 7.96811C85.0797 8.14449 84.9857 8.43377 84.9363 8.83593C84.8892 9.2381 84.8657 9.84722 84.8657 10.6657V11.5641H86.9283V10.6657C86.9283 9.86133 86.9001 9.25221 86.846 8.83593C86.7919 8.41966 86.6931 8.12803 86.5496 7.95635C86.4062 7.78702 86.1851 7.7 85.8864 7.7C85.5854 7.70235 85.3643 7.79172 85.2232 7.96811Z"
class="style-scope yt-icon"
></path>
</g>
</g>
</g>
</svg>
</span>
<span id="nav-contry">KR</span>
</a>
</div>
<div class="flex nav-center">
<form id="search-form" class="flex">
<input type="text" placeholder="Search" />
<button class="nav-btn flex" type="submit">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M20.87,20.17l-5.59-5.59C16.35,13.35,17,11.75,17,10c0-3.87-3.13-7-7-7s-7,3.13-7,7s3.13,7,7,7c1.75,0,3.35-0.65,4.58-1.71 l5.59,5.59L20.87,20.17z M10,16c-3.31,0-6-2.69-6-6s2.69-6,6-6s6,2.69,6,6S13.31,16,10,16z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
</form>
<button class="nav-btn" id="mic-btn">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M12 3C10.34 3 9 4.37 9 6.07V11.93C9 13.63 10.34 15 12 15C13.66 15 15 13.63 15 11.93V6.07C15 4.37 13.66 3 12 3ZM18.5 12H17.5C17.5 15.03 15.03 17.5 12 17.5C8.97 17.5 6.5 15.03 6.5 12H5.5C5.5 15.24 7.89 17.93 11 18.41V21H13V18.41C16.11 17.93 18.5 15.24 18.5 12Z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
</div>
<div class="flex nav-right">
<button class="nav-btn">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M14,13h-3v3H9v-3H6v-2h3V8h2v3h3V13z M17,6H3v12h14v-6.39l4,1.83V8.56l-4,1.83V6 M18,5v3.83L22,7v8l-4-1.83V19H2V5H18L18,5 z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
<button class="nav-btn">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M16,4v4h4V4H16z M16,10v4h4v-4H16z M10,4v4h4V4H10z M10,10v4h4v-4H10z M16,16v4h4v-4H16z M10,16v4h4v-4H10z M4,4v4h4V4H4z M4,10v4h4v-4H4z M4,16v4h4v-4H4z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
<button class="nav-btn">
<span class="nav-icon">
<svg
viewBox="0 0 24 24"
preserveAspectRatio="xMidYMid meet"
focusable="false"
class="style-scope yt-icon"
style="pointer-events: none; display: block; width: 100%; height: 100%;"
>
<g class="style-scope yt-icon">
<path
d="M10,20h4c0,1.1-0.9,2-2,2S10,21.1,10,20z M20,17.35V19H4v-1.65l2-1.88v-5.15c0-2.92,1.56-5.22,4-5.98V3.96 c0-1.42,1.49-2.5,2.99-1.76C13.64,2.52,14,3.23,14,3.96l0,0.39c2.44,0.75,4,3.06,4,5.98v5.15L20,17.35z M19,17.77l-2-1.88v-5.47 c0-2.47-1.19-4.36-3.13-5.1c-1.26-0.53-2.64-0.5-3.84,0.03C8.15,6.11,7,7.99,7,10.42v5.47l-2,1.88V18h14V17.77z"
class="style-scope yt-icon"
></path>
</g>
</svg>
</span>
</button>
<button class="nav-btn flex" id="profile-btn">
<img
id="img"
class="style-scope yt-img-shadow"
alt="아바타 이미지"
height="32"
width="32"
src="https://yt3.ggpht.com/yti/APfAmoFcN9REsz5FBjUHNdVGs3nF6lhb9yQSAYY81A=s88-c-k-c0x00ffffff-no-rj-mo"
/>
</button>
</div>
</nav>
</body>
</html>
css
/* global */
* {
font-family: "Roboto", sans-serif;
margin: 0;
padding: 0;
box-sizing: border-box;
}
button {
border: none;
background-color: transparent;
cursor: pointer;
}
a,
a:active {
text-decoration: none;
color: inherit;
}
.flex {
display: flex;
align-items: center;
}
/* navbar 전체 */
nav {
padding: 0 16px;
justify-content: space-between;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 56px;
background-color: white;
}
.nav-icon {
display: block;
width: 24px;
height: 24px;
}
.nav-btn {
padding: 8px;
}
/* nav-left */
#logo {
box-sizing: content-box;
width: 90px;
height: 20px;
padding: 18px 14px 18px 16px;
}
#nav-contry {
margin: 12px 0 0 -10px;
color: #606060;
font-size: 10px;
height: 44px;
}
/* nav-center */
.nav-center {
flex-basis: 728px;
}
#search-form {
flex: 1;
margin-left: 40px;
padding: 0 4px;
}
#search-form input {
padding: 2px 6px;
border: 1px solid #ccc;
border-right: none;
border-radius: 2px 0 0 2px;
flex: 1;
height: 40px;
}
#search-form input ::placeholder {
color: hsl(0, 0%, 53.3%);
font-size: 16px;
}
#search-form button {
border: 1px solid #d3d3d3;
border-radius: 0 2px 2px 0;
width: 64px;
height: 40px;
background-color: #f8f8f8;
justify-content: center;
}
#mic-btn {
background-color: #f9f9f9;
margin-left: 4px;
border-radius: 50%;
}
/* nav-right */
.nav-right {
min-width: 225px;
justify-content: flex-end;
}
.nav-right .nav-btn {
margin-right: 8px;
}
#profile-btn {
padding: 1px 6px;
}
#profile-btn img {
margin: 0 8px;
border-radius: 50%;
}
🔥 트러블 슈팅(실패한 경험도 성장을 위한 경험!)
- 트러블 슈팅 양식
[ 문제 원인 ]
[ 해결 방안 ]
[ 참고 자료 ]
핵심 키워드 🎯
-
CSS
CSS (Cascading Style Sheets)는 웹페이지를 꾸미려고 작성하는 코드 -
html과 css
html head 태그 안에 이런식으로 넣어주면 된다.
./는 상대경로를 뜻한다. -
CSS선택자
-
기본 선택자
- 전체 선택자 *
- 클래스 선택자 .index
- 아이디 선택자 #index
-
그룹 선택자
- div, span
-
결합자
- 자손 결합자 div span
-
자식 결합자 div > span
-
의사 클래스
- button:hover, button:active, input:focus
-
-
CSS 속성
-
inline 태그 : span, a, img, button
block 태그 : p, div, ul, li, h1~h6
-
border : 테두리
padding : 컨텐츠와 테두리 사이의 공간
margin : border 밖의 공간
margin: 5px 10px 20px 30px; → 시계방향margin-right : 50px;border : 5px solid blue; → 굵기, 종류, 색깔box-sizing : border-box → width와 height가 border의 크기로 맞춰짐content의 width = width-(border의 가로 굵기)-(pdding의 가로 굵기)-
display
예시
-
inline : inline처럼 표시, 앞뒤로 줄바꿈X
-
inline-block : <요소는 inline, 박스는 block> → inline처럼 옆으로 늘어섬
-
block : block처럼 표시, 가로 화면 전체 차지, 앞뒤로 줄바꿈O
-
none : 박스 생성X, 공간X
-
flex : 반응형 웹페이지를 위한 value
<div class="flex-container"> <div class="flex-item">helloflex</div> <div class="flex-item">abc</div> <div class="flex-item">helloflex</div> </div>
.flex-container { display: flex; flex-direction: row; /*row-reverse, column, column-reverse*/ justify-content: flex-start; /*flex-end, center, space-between, space-around, space-evenly*/ align-items: stretch; /*flex-start, flex-end, center, baseline*/ align-content: flex-start; /*stretch, flex-end, center, baseline, space-between, space-around*/ }
가운데 정렬이 많기 때문에 가로 기준 가운데 정렬인 justify-content : center 와 세로 기준 가운데 정렬인 align-items : center 을 많이 사용한다.
-
-
position (중요)
-
static : 화면 처음부터 순서대로 이어서 나타남
-
relative : top, bottom, right, left로 위치 조정 가능, body 처음 위치X / 본인 처음 위치
-
absolute : DOM 트리를 따라 올라가다가 position 속성이 static이 아닌 첫 번째 상위 요소가 해당 요소의 배치 기준으로 설정되는데, 만약에 해당 요소 상위에 position 속성이 static이 아닌 요소가 없다면, DOM 트리에 최상위에 있는 body 요소가 배치 기준이 된다. (그래서 보통 absolute를 쓸 때는 부모 요소를 relative로 지정해줌)
-
sticky : 스크롤을 내릴때 그 item이 끝날 때까지 고정되어있음
-
fixed : 스크롤을 내려도 그 자리에 고정되어있음
-
2주차 수업 후기 📢
- 2주차 수업을 듣고 서로 느낀 점을 이야기해주세요!
- 핵심 키워드에 대해 완벽하게 이해했는지? 혹시 이해가 안 되는 부분은 뭐였는지? 서로 이야기해주세요!
!주의사항
- 과제 피드백 기반 진행입니다 - 한명씩 본인의 과제를 발표하는 시간 그리고 해온 과제에 대한 피드백을 하는 시간 (ex:전 이렇게 생각해서 이런 부분 다르게 해왔는데 저것도 괜찮은 것 같아요!)이 무조건 기반이 되어야 합니다!
- 부가적으로 워크북에서 제공되는 키워드 혹은 강의에서 들은 디테일 적인 부분에서 더 토의해봐도 좋을 것 같습니다
논의해보면 좋은 것들 🔥
- 한 사이트에서 html과 CSS가 어떻게 maping되는지 알아보기 (브라우저의 개발자 도구 사용)
- position의 값들(absolute, inherit, relative)를 직접 html에 적용해보고 익히기
댓글남기기