Hello creators ๐
[HTML&CSS] 04. ๋ฉ๊ฐ๋ฐ์ค ์ํ ์๋งค ํ์ด์ง ๋ง๋ค๊ธฐ (feat. input ๊ณผ label ํ๊ทธ, ํ์ ๊ด๊ณ, sibling, ์ ํ์์ ์ค์์ฑ) ๋ณธ๋ฌธ
[HTML&CSS] 04. ๋ฉ๊ฐ๋ฐ์ค ์ํ ์๋งค ํ์ด์ง ๋ง๋ค๊ธฐ (feat. input ๊ณผ label ํ๊ทธ, ํ์ ๊ด๊ณ, sibling, ์ ํ์์ ์ค์์ฑ)
๋ถ์๋งค๋_HA 2023. 3. 7. 22:03
transform ํ๊ทธ
1. ๊ธฐ๋ฅ
- ์์น, ํฌ๊ธฐ, ๊ฐ๋ ๋ฑ์ ๋ณ๊ฒฝํ ์ ์์ด
- ์์น๋ณ๊ฒฝ์ position ๊ณผ ๋น์ทํ ๊ธฐ๋ฅ์ผ ์๋. ์ฐจ์ด์ ์ ๋ญ๊น ?? #โโโ_์ง๋ฌธํ๊ณ ์ถ์_๋ชจ๋ฅด๊ฒ ์
- ๊ธฐ๋ณธ ์ฝ๋
/* box ํด๋์ค ์์ ์๋ img ์ ๋ํด transform ์์ฑ ์ฃผ๊ธฐ */
.box img {
/* transform : translate(x์ถ, y์ถ)
ํด๋น ํ๊ทธ์ ์์น๋ฅผ ์ด๋์์ผ์ค๋ค. */
transform: translate(50px, 100px);
}
- transform ๊ฒฐ๊ณผ
-
- ํ๋์ ์ถ ์ผ๋ก๋ง ์ด๋ํ๊ฒ ํ ์ ์์. โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ #๐ค_๋ฐฐ์ด๊ฒ_WIL
.box2 img {
/* y์ถ ์๊ณ , x ์ถ๋ง ์ด๋ */
transform: translateX(100px);
}
.box2 img {
/* y ์ถ์ผ๋ก๋ง ์ด๋! */
transform: translateY(100px);
}
- 2๊ฐ์ css ๋ฅผ ๋จน์ด๋ฉด -> ๋ฐ์ ์๋ ์์ฑ์ด ๋ค์ด๊ฐ - ์๋ฅผ ๋ค์ด, ๋์ผํ๊ฒ x์ถ ์ด๋์ 2๋ฒํ๋ฉด -> ๋ค์ ๊ฒ์ด ์ ์ฉ๋จ.
2. scale
- ๊ธฐ๋ฅ
- ์ฌ์ด์ฆ ์์ฒด๋ฅผ ์ถ์, ํ๋ ํ ์ ์์
- ์ธ์
- ์ฒซ๋ฒ์งธ ์ธ์ = x์ถ ์ค์ผ์ผ, ๋ ๋ฒ์งธ ์ธ์ = y์ถ ์ค์ผ์ผ. ๋ ๋ฒ์งธ ์ธ์๋
- ๋น์จ ์กฐ์ ์ ์ ํ๋ฉด, ์ด๋ ๊ฒ ์ฐ๊ทธ๋ฌ์ง
-
- ์์ ์ฝ๋
.box3 img {
/* scale ์ 1์ด ๊ธฐ๋ณธ ํฌ๊ธฐ
ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์.
ex) 0.5 = 50% ์ฌ์ด์ฆ๋ก ๋ณํจ
๋ ๋ฒ์งธ ์ธ์ = y ์ถ ๋น์จ์ */
/* x,y ๊ธฐ๋ณธ ์กฐ์ */
transform: scale(0.1);
/* y ์ถ์ 0.1 ๋ก */
transform: scale(0.1, 1);
/* 2๋ฐฐ ํฌ๊ธฐ */
transform: scale(2);
}
3. rotate
- ๊ธฐ๋ฅ
- ํ์ ํ๊ฒ ํ๋ค. ๋๋ ค์ค๋ค.
-
- ์ธ์
- ์ด๊ฑด, deg ๋ผ๋ ๋จ์๋ก ๊ฐ๋๋ฅผ ์ค์ ํ๋ค.
.box4 img {
/* rotate ์์ฑ
deg : ํ์ ๊ฐ๋
ex) 45 deg = 45๋ ํ์ */
/* 45๋ ํ์ */
transform: rotate(45deg);
/* 90๋ ํ์ */
transform: rotate(90deg);
}
transition - keyframe
- ์ด๋ค transform ์ ์ ์ํด๋ ๊ณณ์ด ์์ผ๋ฉด, ๊ทธ transform ์ด ์ผ๋ง๊ฐ์ ์๊ฐ์ ๊ฑฐ์ณ์ ๋ณ๊ฒฝ๋ ์ง๋ฅผ ์ง์
- '์๊ฐ' ์ ์ค์ -> ์ ๋๋ฉ์ด์ ์ฒ๋ผ ๋๋ผ๊ฒ ํจ.
- ์ ํ์ฝ๋ฉ์๋ ๊ฐ์๊ฐ ์์,
- ์์ ์ฝ๋๋ ์ณ๋ณด์ #๐๐๐_๋ณด์ํ์_์๋ชจ๋ฅด๊ฒ ์
/* โโ transition
์คํ์ผ์ด ๋ณํํ๋ฉด์ -> ํจ๊ณผ๋ฅผ ์ค ์ ์์.
transition ์ ๋ํด์ ๋ณํํ๋ 1) ์๊ฐ 2) ๋ณํ ๋ฐฉ๋ฒ์ ์ค์ ํ ์ ์์. */
.box5 img {
/* ์ฝ์ด๋ณด๋ฉด
1) transform ์์ฑ์ด 3์ด ๋์ ๋ณํํ๊ณ (ํ๊ทธ๊ฐ ๋์๊ฐ๋ ๊ฒ)
2) border ๊ฐ 1์ด ๋์ ๋ณํ (ํ
๋๋ฆฌ๊ฐ ์๊ธฐ๋ ๊ฒ)
3) border radius ์ญ์ 1์ด ๋์ ๋ณํ (๋ฅ๊ธ๊ฒ ๋ชจ์๋ฆฌ๊ฐ ๊น์ด๋ ๊ฒ)
ํฌ์ธํธ
1) ๋ฐ์์ hover img ํ๊ทธ์ ๋ํด์ css ์ ์ํ ๋ถ๋ถ์ด
2) ์ด๋ค ์๋๋ก, ์ด๋ค ๊ณก์ ์ ๋ชจ์์ผ๋ก, ์์ง์ผ ๊ฒ ์ธ๊ฐ! ๋ฅผ ์ฌ๊ธฐ์์ ์ ์*/
transition: transform 5s linear, border 5s ease-in-out, border-radius 5s ease-in-out;
}
/* ์์ ์์ฑํ 'ani' ๋ฅผ ๋จน์ฌ์ฃผ๊ธฐ */
.box5 img{
/* animation ์์ฑ์ 1) keyframe animation ์ด๋ฆ 2) ์๊ฐ 3) ๋ณํ๋ฐฉ๋ฒ */
/* animation: ani 1s ease; */
/* animation: ani 2s ease; */
}
/* ํธ๋ฒํ์ ๋(box5 img ์ ์ฌ๋ผ๊ฐ์๋) -> */
.box5:hover img {
/* ๋ง์ฐ์ค๋ฅผ ํ๊ทธ์ ์ฌ๋ผ๊ฐ์ ๋~! */
transform: rotate(720deg);
border: 10px solid red;
border-radius: 30%;
}
absolute relative ๋ก ์์น ๋ณ๊ฒฝ
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
- ๋ถ๋ชจํ๊ทธ์๊ฒ
relative
๋ฅผ ๋จน์ธ๋ค. ์์ํ๊ทธ๋absolute
- ์ด์ ์์ ํ๊ทธ๊ฐ ์์น๋ฅผ ์ ํ๋ฉด, ๋ฑ! ๊ทธ๊ณณ์์ ๋ฉ์ถ๋๊น absolute
- ๊ทธ๋ฌ๋ฉด, ๋ถ๋ชจ๋ ์๋์ ์ธ ๊ธฐ์ค์ ์ด ๋๋๊น relative
์ฌ์ง์ ๊ฐ์ด๋ฐ๋ก ์ค๊ฒ ํ๋ ค๋ฉด
- ์ฌ์ง์ ๊ฐ์ด๋ฐ๋ก ์ค๊ฒ ํ๋ ค๋ฉด
position: absolute;
top : 50%;
left: 50%;
#๐ค_๋ฐฐ์ด๊ฒ_WIL #โญ๏ธโญ๏ธ_์ฆ์ํจ_
/* ๐ต position relative, absolute ์ด์ฉํด์ -> ์ฌ์ง์ ๊ฐ์ด๋ฐ๋ก ์ค๊ฒ ํ๊ธฐ */
.box6 {
position: relative;
}
.box6 img {
width: 150px;
height: 150px;
/* ๊ฐ์ด๋ฐ๋ก ์ค๊ฒ ํ๋ ค๋ฉด
1) flex ๋ก ์ ๋ ฌ
2) position relative - absolute
๋ถ๋ชจ์๊ฒ relative ๊ฐ ์์ด์ผ ํจ */
position: absolute;
top : 50%;
left: 50%;
/* ๋ฐ์ง๋ฆ ๋งํผ ๋นผ์ -> ์ค์์ผ๋ก ๋ฐ์ด์ฃผ๊ธฐ โญโญ
์ด๊ฑฐ ์ ํ๋ฉด ์ค๋ฅธ์ชฝ ๊ทํ์ด์ ์๊ฒ ๋จ. */
transform: translate(-50%, -50%);
}
๋ฏธ๋ ๊ณผ์
1. ํด์ผํ๋ ๊ฒ
- ํ๋ฉด์ด 1200 ๊น์ง๋ 'ํ ๋๋ฆฌ๊ฐ ๋นจ๊ฐ์'
- ํ๋ฉด์ด 600 ์ดํ๋ 'ํ๋์'
- ํ๋ฉด์ด 1200 ์ด์์ 'ํ ๋๋ฆฌ๊ฐ ์ด๋ก์'
- div ํ๊ทธ ํ๋ ๋ง๋ค์ด์, ์ด๋ฏธ์ง๊ฐ ๋์๊ฐ๋ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ
2. ํธ๋ฌ๋ธ ์ํ
- [์์ธ] 600px ์ดํ์์ ํ๋์ ๋ณ๊ฒฝ์ด ์ ๋์์
- [ํด๊ฒฐ] ๋ธ๋ผ์ฐ์ ์์ฒด๊ฐ 600px ๋ฏธ๋ง์ด ์ ๋์ด์ ๊ทธ๋ฌ์
ํฐํธ ์ ์ฉ
- ํฐํธ ๋ฐ๊ธฐ
- https://fonts.google.com/noto/specimen/Noto+Sans+KR
- ๋ค์ด๋ก๋ ํด๋ฆญ
- ํด๋ ์งธ๋ก ๋ฃ๊ธฐ -
- ์ด๋ ๊ฒ ํ์ธ ๊ฐ๋ฅ โญโญโญโญโญโญ -
์ค์ํ๊ฒ ๋ฐฐ์ด ๊ฒ
1. input
ํ๊ทธ์ label
ํ๊ทธ๋ฅผ ์ฐ๊ฒฐ
- input ํ๊ทธ์ id ๋, label ์ for ๋ id๊ฐ์ ๋ฃ์ด์ผ ์ฐ๊ฒฐ! ๋๋๊ฑฐ์ง?
- ์ฌ๊ธฐ์ id ๊ฐ์ ๋ฃ๋๊ฒ ๋ง์ง? โโโโโ
- ๊ทธ๋ฌ๋ฉด for
๋ ์ด๋ค ๊ธฐ๋ฅ์ ํ๋๋ฐ? โโโโโ
- label ์ ๋ญ์์ง
-
#๐๐๐_๋ณด์ํ์_์๋ชจ๋ฅด๊ฒ ์
- label ์ ํด๋ฆญํ๋ฉด -> input ์ด ๋๋ฆฐ๋ค.
2. ์ธ์ ์์ ์ ํ
p+a
๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฑด?- p ํ๊ทธ ๋ก ๊ฐ -> ํ์ ๋ ๋ฒจ์ ์ฐพ์, ๊ฐ์ฅ ์ธ์ ํ๊ฒ a ๋ผ๋ค? , ๊ฑฐ๊ธฐ์ ์ ์ฉํด
p~a
- p ํ๊ทธ๋ก ๊ฐ -> ํ์ ๋ ๋ฒจ์ ๋ชจ๋ ์ฐพ์ -> a ๊ฐ ๋์ค๋ฉด ์ ์ฉํด
- ์ธ์ ์์ ์ ํ์์ ํต์ฌ ์์ธ
- 1) ํ์ ๋ ๋ฒจ์ ์์ด์ผ ํจ (sibiling) โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ - 2) 2๊ฐ์ id ๋ฅผ ํ์ฉํ๋๊ฒ ์ข์ โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
3. ์์ ์ฝ๊ธฐ โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
- class ์ค์์
tab01
์ด๋ฆ์ ๊ฐ์ง๊ฒ /checked
๋๋ฉด /~
์ญ์ฐพ์๋ด / ๊ทธ๋ฌ๋คclass์ด๋ฆ์ด .item01
์ด๋ฉด / ๋ค์ css ๋ฅผ ์ ์ฉํด
4. ๊ฐ์ ์ ํ์ before
- ๊ธฐ๋ฅ - content ์์ ์ด๋ค ๋ฌธ์๋ฅผ ๋ฃ์ ์ ์์ - ์ง๊ธ๊น์ง ๋ญ๊ฐ๋ฅผ ๋ฃ์ผ๋ ค๋ฉด,
html
์ ํตํด์ ๋ฃ์์ - ๊ทธ๋ฐ๋ฐ, ๊ฐ์์ ํ์ ์ค before, after ๋ฅผ ํ์ฉํ๋ฉด, ์ถ๊ฐ๋ก ๋ฃ์ ์ ์์ #๐๐๐_๋ณด์ํ์_์๋ชจ๋ฅด๊ฒ ์
ํ ์ดํ๋ก์ ํธ
1. ๋ง๋ค์ด์ผ ํ ๊ฒ
๊ฒ์ ๋ง๋ค๊ณ
๋ด์ฉ ๋ค ๋ง๋ค๊ณ
์ํ 12๊ฐ
์ค๋ ๋ฐฐ์ด๊ฑธ๋ก ํญ ๋ง๋ค๊ณ
ํญ๋ 5๊ฐ
2. ๋ฌธ์ ๊ฐ ๋์๋ ๋ถ๋ถ
1) ํด๋ฆญํ๋ฉด -> ๋ฟ ๋์ค๊ฒ ํ๋๊ฑฐ
##### a) ๋ฌธ์ ์์ธ
- tab ๋ฉ๋ด๋ ๋ฟ
ํ์ด๋์ค๊ฒ ํ๋ ๊ฑฐ๋
ํ๋์ div
์ ์์์ด์ผ ํ์
- labe ์ id ๊ฐ ์ฐ๊ฒฐ๋์ด์ผ ํ๊ณ + ๊ฐ๊ฐ ๋ฉ๋ด๋ unique ํ id ์ ๊ฐ์ก์ด์ผ ํ์
b) ํ๋ฒ ๋ ์๊ฐํด๋ณด๋ฉด
- Input ํ๊ทธ๋ label์ ์ ๋๋ก ํ์ฉํ๊ณ
- CSS์์ ํ์ ์ ํ์๋ฅผ ์ ํ์ฉํด์ผ -> ๋ฟ ๋์ค๋๊ฑธ ๊ตฌํํ ์ ์์ด
โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
2) ๋๋ณด๊ธฐ
๋ณด์ด๊ฒ ํ๋๊ฑฐ ๐๐๐๐๐
๊ฐ์์ ํ์ before
- ์ด๋ ๊ฒ css ๋ฅผ ๋ฃ์ผ๋๊น ->
- ์๋์ฒ๋ผ ๋์ด
/* ๊ฒ์ bar
โ ์ before ๋ก ํด์ผํ์ง?
test box ํ๊ทธ '์' ์ {์ด CSS} ๋ฅผ ๋ฃ์๊ฑฐ์ผ!
๊ทธ๋ผ, ์ด๋ค CSS ์ธ๋ฐ?
*/
.text-box::after {
/* ์๋๋? ๋ฃ๊ณ ์ถ์ ํ
์คํธ ์์ผ๋ฉด ๋ฃ์ผ๋ฉด ๋ผ */
content: "content ๋ถ๋ถ";
}
๋๋ณด๊ธฐ ์ ๋ณด์ฌ
์๋๋ฉด, ์... ์ ์ด๋๊ฐ ๋ฐํ์์์.
ํด๊ฒฐ์ฑ ์ '๋ถ ๋์ฐ๊ธฐ.' โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
๋ฐฉ๋ฒ์ ?
1) ๋ถ๋ชจ์๊ฒ position relativ
2) ์์์๊ฒ position absolute
- ์... ๊ทธ๊ฒ๋ ๊ทธ๊ฑฐ๊ณ width, height ๋ฅผ ์ก์์คฌ์ด์ผ ํ์
3. ์ค๋ ๋ฐฐ์ด ๊ฒ ํต์ฌ ๊ธฐ์ ์ 'ํ์ด๋์ค๊ฒ ํ๋ ๊ฒ'
- ์ ๋๋๊ฑด์ง ๋ฐ๋์ ์์์ผ๋ง ํด โญโญโญโญโญ
4. layout ์ก๊ธฐ์ ์ค์์ฑ(ul, li ๋ฅผ ์ ์ฐ๋ฉด, ์ข์ ๊ฒ ๊ฐ์ โญโญโญโญโญ )
- ์ด๋ ๊ฒ ๋ฑ๋ฑ ๋ง๋๊ฑธ ๋ง๋ค๋ ค๋ฉด, ul,li ๊ฐ ํจ์ฌ ์ข์๊ฑฐ ๊ฐ์
5. ์ด๋ ๊ฒ ํ๋ ๊ฑธ before ์จ์ ํด๋ณด๋ฉด ์ข์ง ์์๊น. ๊ทธ๋ฐ๋ฐ ์์ง ๋ชจ๋ฅด๊ฒ ์. ๐๐๐๐๐
6. ์ด ๋ถ๋ถ์ ๋ง์ถ ๋, ๋ ๋์ค์ผ๋ก ํ๋๊ฒ ์๋๋ผ, ๋ญ๊ฐ ๋ฑ๋ฑ ๋ง์ถ๊ณ ์ถ์๋ฐ...
#โ ๏ธ_์ถ๊ฐ๋กํด๋ณด๋ฉด์ข์๊ฒ๊ฐ์_
๋ฐฐ์ด๊ฑฐ
1. ๋๋ณด๊ธฐ ์ด๋ฏธ์ง๋ ๊ฐ๋ฐ์ ์ค๋ฅธ์ชฝ์ ์์ด
2. ๊ผญ ์์ผ๋ก ์ตํ๊ธฐ โญ๏ธโญ๏ธโญ๏ธ
- ์์ผ๋ก ์ค๋ ๋ฐฐ์ด๊ฑฐ 100๋ฒ ์จ๋ณด๊ณ โญโญโญโญโญโญโญโญโญโญโญ
- ๋์ผ๋ก ์ ๋ณด๊ณ ์ธ ์ ์์ผ๋ฉด ๋ค์๊ฑฐ ๋์ด๊ฐ๊ธฐ. โญโญโญโญโญโญโญโญโญโญ
3. ์ปค์๋ฅผ ์ฌ๋ ค๋๊ณ - cvtrl c v ํด๋ ๋ณต์ฌ ๋๋ค.