[Front-end๐Ÿฆ] #4-2 CSS ์ •๋ฆฌ 1

๋˜์ƒยท2021๋…„ 11์›” 3์ผ
0

front-end

๋ชฉ๋ก ๋ณด๊ธฐ
10/58
post-thumbnail

์ฝ”๋“œ๋ฅผ ์งค ๋•Œ BEM ๋ฐฉ๋ฒ•๋ก ์„ ์‚ฌ์šฉํ•˜์ž!!

1. CSS (1103)

1-1. CSS ๋ฌธ๋ฒ•

p {
    font-size: 15px;
    color: yellow;
}

p : selector
{} : declaration block
font-size: 15px; : declaration
font-size : property, 14px : value


1-2. ๋‚ด/์™ธ๋ถ€ CSS

๋‚ด๋ถ€ : html file ๋‚ด์— style ํƒœ๊ทธ ์ด์šฉ
์™ธ๋ถ€ : css file ๋งŒ๋“ค๊ณ  html file ์—์„œ link ํƒœ๊ทธ ์ด์šฉ

ํ•˜๋‚˜์˜ html file์— ์—ฌ๋Ÿฌ๊ฐœ์˜ css file ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ. ์ด ๊ฒฝ์šฐ, html file ๋‚ด์— link tag๋ฅผ ์–ด๋–ค๊ฑธ ๋จผ์ € ์“ฐ๋ƒ์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„ ๋ถ€์—ฌ (declaration ์˜†์— !important ๋ฅผ ์จ์„œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ... ์“ฐ์ง€๋ง์ž)


1-3. inline CSS

<h1 style="color:blue; font-weight:bold;> </h1>
/* html tag ์•ˆ์— style tag๋ฅผ ๋„ฃ๋Š” ๊ฒƒ */

!important >>> inline > ๋‚ด๋ถ€ css > ์™ธ๋ถ€ css ์ˆœ์ด๊ณ , ๋‚ด์™ธ๋ถ€ CSS ์—์„œ๋Š” #id > .class, :class > tag > inherit ์ˆœ์œผ๋กœ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.


1-4. import CSS

<style>
    @import url(ํŒŒ์ผ์ด๋ฆ„.css);
    @import url("ํŒŒ์ผ์ด๋ฆ„.css");
    @import url("./ํŒŒ์ผ์ด๋ฆ„.css");
    @import "ํŒŒ์ผ์ด๋ฆ„.css";
</style>
/* import ๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ css ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. */



2. CSS ํ™œ์šฉ

2-1. reset CSS

์‹ค๋ฌด์—์„œ๋Š” CSS style์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ default style์„ ์ „๋ถ€ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค. CDN์œผ๋กœ ํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ ์ง์ ‘ ํ•˜๋Š” ํŽธ์ด ๋‚ซ๋‹ค!

2-1-1. inherit

input, button ๋ถ€๋ชจ ์Šคํƒ€์ผ ์•ˆ๋จน๋Š”๊ฒŒ default๊ฐ€ inherit ์œผ๋กœ ์•ˆ๋˜์–ด ์žˆ์–ด์„œ ๊ทธ๋Ÿผ... reset์— inherit์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.

button {
	background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
}

reset CSS


2-1-2. ์›น ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค

์›น ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค์‹œ ๊ธ€์ž๋ฅผ ์ˆจ๊ธฐ๋Š” 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•
display: none์œผ๋กœ ์ˆจ๊ธฐ๋ฉด screen reader์— ์•ˆ์ฝํžŒ๋‹ค.

.sr-only {
    position: absolute;
    left: -9999px;
    width: 1px; height: 1px;
    overflow: hidden;
}
.sr-only {
    position: absolute;
    overflow: hidden;
    width: 1px; height: 1px;
    clip: rect(1px, 1px, 1px, 1px);
}
.a11y-hidden {
    position: absolute;
    overflow: hidden;
    clip: rect(0,0,0,0);
    width: 1px; height: 1px;
    margin: -1px;
}

์›น ์ ‘๊ทผ์„ฑ ๊ณ ๋ คํ•ด์„œ ์ˆจ๊ธฐ๊ธฐ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

skip navigation ๋งŒ๋“ค๊ธฐ.

<div class="nav-skip">
  <a href="#cont-nav">์˜ํ™” ์ •๋ณด ๋ชฉ๋ก ๋ฐ”๋กœ๊ฐ€๊ธฐ</a>
  <a href="#cont-company">ํšŒ์‚ฌ ์ •๋ณด ๋ชฉ๋ก ๋ฐ”๋กœ๊ฐ€๊ธฐ</a>
</div>
.nav-skip a {
    position: absolute;
    top: -200px;
    left: 0;
    width: 160px;
    border: 1px solid #fff;
    color: #fff;
    background: #333;
    text-align: center;
}
.nav-skip a:active, .nav-skip a:focus {
    top: 0;
}

์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด ์•„์ด์ฝ˜ ๊ฐ™์€ ๊ฐ€์ƒ์š”์†Œ์— focus ๋์„ ๋•Œ outline ๋งŒ๋“ค์–ด์ฃผ์ž

/* ์ ‘๊ทผ์„ฑ */
.form-login .inp-hold:focus + .labl-hold::before {
    outline: 2px solid black;
    outline-offset: 5px;
}



2-2. ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค

์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ ‡๊ฒŒ ๋ณด์ด๋ฉด ์ข‹๊ฒ ๋‹ค. -> tag๋ฅผ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค๋˜์ง€

autoprefixer


2-3. selector

2-3-1. ๊ธฐ๋ณธ

* : ์ „์ฒด ์„ ํƒ์ž
tag : ํ•ด๋‹น ํƒœ๊ทธ ์„ ํƒ์ž
.class : class ์„ ํƒ์ž
#id : id ์„ ํƒ์ž
  • class๋Š” ์ค‘์ฒฉํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ, id๋Š” ์ค‘์ฒฉ ๋ถˆ๊ฐ€๋Šฅ.
  • page ๋‚ด class ๋Š” ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌ ๊ฐ€๋Šฅ. id๋Š” ๋‹จ ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅ.
  • ์—๋Ÿฌ๊ฐ€ ๋œจ์ง„ ์•Š์ง€๋งŒ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.
  • ๋ณดํ†ต style์„ ๊พธ๋ฐ€๋•Œ๋Š” class, ๋ญ”๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ํ• ๋•Œ๋Š” id๋ฅผ ์“ฐ์ž.

2-3-2. ๋ณตํ•ฉ ์„ ํƒ์ž

h1, h2, h3 { /* ์—ฌ๋Ÿฌ๊ฐœ ์„ ํƒ ๊ฐ€๋Šฅ */ }
section ul { /* ํ•˜์œ„ ์„ ํƒ์ž : section ํ•˜์œ„์— ์žˆ๋Š” ๋ชจ๋“  ul ์„ ํƒ*/ }
section > ul { /* ์ž์‹ ์„ ํƒ์ž : section ๋ฐ”๋กœ ๋ฐ‘๋‹จ๊ณ„์— ์žˆ๋Š” ul๋งŒ ์„ ํƒ */ }
h1 ~ ul { /* ์ผ๋ฐ˜ ํ˜•์ œ ์„ ํƒ์ž : h1๊ณผ ๊ฐ™์€ ์œ„์น˜์— ์žˆ๋Š” ๋ชจ๋“  ul ์„ ํƒ */ }
h1 + ul { /* ์ธ์ ‘ ํ˜•์ œ ์„ ํƒ์ž : h1๊ณผ ๊ฐ™์€ ์œ„์น˜์— ์žˆ๊ณ  ๋ฐ”๋กœ ํ•˜์œ„์— ์žˆ๋Š” ul ํ•˜๋‚˜๋งŒ ์„ ํƒ */ }
h1 + ul + ul { /* h1 ํ˜•์ œ ์ค‘์— h1 ๋ฐ‘์—๋ฐ‘์— 2๋ฒˆ์งธ ul์ด ์„ ํƒ๋จ. ์ด๋ ‡๊ฒŒ ์ž˜ ์“ฐ์ง€ ์•Š์Œ.*/ }

ํ—ท๊ฐˆ๋ฆฌ๋Š” ์„ ํƒ์ž

.one .two { /* .one ๋ฐ‘์—์žˆ๋Š” .two (3๋ฒˆ) */
    color: blue;
}
.one.two { /* class one two ๋‹ค ๊ฐ€์ง„ ์•  (2๋ฒˆ) */
    color: red;
}
<div class="one">hello world</div>
    <div class="one two">hello world</div>
    <div id="one two">hello world</div> <!-- id๋ฅผ ์ค‘์ฒฉํ•˜๋ฉด one ๋งŒ ์ ์šฉ๋จ -->
    <div class="one">
        <div class="two">hello world</div>
    </div>

2-3-3. ์†์„ฑ ์„ ํƒ์ž

a[href] { /* a์— href ์†์„ฑ์ด ์žˆ๋Š” ๊ฒƒ */ }
input[type="text"] { /* input type ์ด text์ธ ๊ฒƒ */
a[href~="word"] { /* word๋ฅผ ํฌํ•จํ•˜๋Š” href ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒƒ๋งŒ (๋‹จ์–ด๊ธฐ์ค€์ด๋ผ words๊ฐ€ word ๋ฅผ ํฌํ•จํ•œ๋‹ค๊ณ  ์žก์•„๋‚ด์ง€ ๋ชปํ•จ) */}
a[href*="word"] { /* word๋ฅผ ํฌํ•จํ•˜๋Š” href ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒƒ๋งŒ (๋ฌธ์ž์—ด ๊ธฐ์ค€์ด๋ผ ์œ„์™€ ๋‹ค๋ฅด๊ฒŒ words๋„ ์žก์•„๋ƒ„.) */ }
a[href^="http"] { /* http๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋งŒ */}
a[href$="com"] { /* com์œผ๋กœ ๋๋‚˜๋Š” ๊ฒƒ๋งŒ */}
a[href|="http"] { /* http์™€ ์ผ์น˜ํ•˜๊ฑฐ๋‚˜, http๋กœ ์ž‘ํ•˜๋Š” ๊ฒƒ๋งŒ. */ }
}

023.html ์„ ๋ณด๋ฉด ๋” ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค!

2-3-4. ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž (:)

ํด๋ž˜์Šค๊ฐ€ ์—†๋Š” ์š”์†Œ์— ํด๋ž˜์Šค๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ค˜์„œ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ :๋ฅผ ์“ฐ๋Š”๊ฒŒ ํŽธํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ.

.foo:nth-child(odd) { 
    /* .foo ์ค‘ ํ™€์ˆ˜๋ฒˆ์งธ๋งŒ. 2n+1๋กœ ๋„ฃ์–ด๋„ ๋จ. */
}
input:hover { }
input:focus { }
input:active { }

2-3-5. ๊ฐ€์ƒ ์š”์†Œ ์„ ํƒ์ž (::)

๋งˆํฌ์—… ์—†๋Š” ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์‹ค์ œ ์‚ฌ์ดํŠธ์—์„  ์•ˆ๋ณด์ด๋Š” ์š”์†Œ๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

ํ•„์š”์—†๋Š” html๋ฌธ์„ ์ตœ๋Œ€ํ•œ ๋„ฃ์ง€ ๋ง์ž๋Š” ์˜๋„์—์„œ ๋งŒ๋“ค์–ด์ง!

p::after {
    content: 'cm'
} /* p ๋’ค์— cm์„ ์‚ฝ์ž… : cm๊ฐ€ ๋งˆํฌ์—…๋˜์–ด ์žˆ๋Š”๊ฒŒ ์•„๋‹Œ๋ฐ ์‚ฝ์ž…๋œ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์„ ํƒ ์•ˆ๋จ */

2-3-6. ์šฐ์„ ์ˆœ์œ„

inline > ๋‚ด๋ถ€ > ์™ธ๋ถ€ ์ˆœ
id > class > tag ์ˆœ์œผ๋กœ style ์ ์šฉ์ด ๋œ๋‹ค.

์ ์ˆ˜ ๊ณ„์‚ฐ - id: 100์ , class & ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž : 10์ , ์š”์†Œ, ๊ฐ€์ƒ ์š”์†Œ ์„ ํƒ์ž: 1์ 

์ ์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ id ๋“ค์–ด๊ฐ„๊ฒŒ ์šฐ์„ !

.main div:nth-child(4) { 
	class 10์  + div 1์  + :nth-child (๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž) 10์  = 21์ 
}

ํ…œํ”Œ๋ฆฟ์„ ์“ฐ๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ˜‘์—…ํ•  ๋•Œ ๋‚ด๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ์Šคํƒ€์ผ ์ˆ˜์ •์ด ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์š”์†Œ๋“ค์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

CSS ์—ฐ์Šต ํ•ด๋ณด๋ฉด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…๋“ค์„ ์žก์„ ์ˆ˜ ์žˆ๋‹ค!!


3. CSS (1104)

3-1. declaration

3-1-1. ๋‹จ์œ„

์ ˆ๋Œ€ ํฌ๊ธฐ : px, pt, in, cm, mm

  • html ๊ธฐ๋ณธ ํฐํŠธ : 16px
  • px : animation ํ•  ๋•Œ ๊ณ ์ • ํฌ๊ธฐ๋„ ๋งŽ์ด ์“ด๋‹ค.

๊ฐ€๋ณ€ ํฌ๊ธฐ : %, em, rem, vw, vh, vmin, vmax, ex (๋ถ€๋ชจ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋‚˜๋จธ์ง€๋„ ๋‹ค ๋ฐ”๋€œ. ๋‹ค ๋งŒ๋“ค๊ณ  ๋ณ€๊ฒฝํ•˜๊ธฐ ํŽธํ•˜๋‹ค.)

  • % : 100% - ๋ถ€๋ชจ์˜ 100%
  • em : 1em - ๋ถ€๋ชจ์˜ 1๋ฐฐ. ๊ทธ๋Ÿฌ๋‚˜ ์ค‘์ฒฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ณ„์‚ฐํ•˜๊ธฐ ๊ท€์ฐฎ๋‹ค.
  • rem : 1rem - root์˜ 1๋ฐฐ
  • vw, vh: ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด ๊ธฐ์ค€

์—ฌ๊ธฐ๋ถ€ํ„ฐ ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„์— ์ค‘์š”ํ•œ ๋‚ด์šฉ.

3-1-2. box model

1. width, height

width์— border๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค. border-box๋ฅผ ์“ฐ๋ฉด ํฌํ•จ๋จ.

+) ์š”์†Œ์˜ ๋†’์ด๋ฅผ ์›ฌ๋งŒํ•˜๋ฉด ์ง€์ •ํ•˜์ง€ ๋ง์ž...! padding์„ ์ด์šฉํ•ด์„œ ์•ˆ์˜ contents์˜ ๋†’์ด์— ์ข…์†๋˜๋„๋ก ํ•˜์ž.

2. border, radius

border : ํ…Œ๋‘๋ฆฌ

border: border-width border-style border-color | initial | inherit

border-radius : 4๋ฉด ๋ชจ๋‘ ๋‘ฅ๊ธ€๋ ค์ง.
border-top-left-radius: ์™ผ์ชฝ ์œ„๋งŒ ๋‘ฅ๊ธ€๋ ค์ง.

3. margin, padding

margin : content ์˜์—ญ ๋ฐ”๊นฅ
padding : content ์˜์—ญ์— ํฌํ•จ

/* top right bottom left ์ˆœ์œผ๋กœ ๋“ค์–ด๊ฐ. iOS๋ž‘ ๋ฐ˜๋Œ€ */
padding: 10px 20px 30px 40px; /* ์ƒ ์šฐ ํ•˜ ์ขŒ */
padding: 10px 20px 30px; /* ์ƒ, ์ขŒ์šฐ, ํ•˜ */
padding: 10px 20px; /* ์ƒํ•˜, ์ขŒ์šฐ */
padding: 10px;

margin ๋ณ‘ํ•ฉ(collapsing) ํ˜„์ƒ

  • ์œ„์˜ ์š”์†Œ margin-bottom์ด๋ž‘ ์•„๋ž˜ ์š”์†Œ marign-top ์ค‘ ํฐ ์ชฝ์œผ๋กœ ํ•ฉ์ณ์ง„๋‹ค.
  • child์— margin-top, margin-bottom ์ด parent์˜ ๋†’์ด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•„์„œ child๊ฐ€ parent ์˜์—ญ์„ ๋›ฐ์–ด ๋„˜์–ด๋ฒ„๋ฆฐ๋‹ค.
    -> ๋ถ€๋ชจ overflow, inline-block, border ์กฐ์ •์œผ๋กœ ํ•ด๊ฒฐํ•ด๋ณด์ž.
  • ์ผ๋ถ€๋Ÿฌ ์˜๋„ํ•ด์„œ ๋ณ‘ํ•ฉ ํ˜„์ƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

h1, p ๊ฐ™์€ ์š”์†Œ์— margin์„ 0์„ ์ค˜๋„ ํŽ˜์ด์ง€ ์‹œ์ž‘์ ์— ๋”ฑ ๋ถ™์ง€ ์•Š๋Š”๋‹ค. -> body ์—๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ margin ๊ฐ™์€ ์†์„ฑ์ด ๋“ค์–ด๊ฐ€์žˆ์–ด์„œ ๊ทธ๋ ‡๋‹ค.

#2.5 CSS ์†์„ฑ ์—๋„ ์ •๋ฆฌ๋˜์–ด ์žˆ๋‹ค.

๋ผ์ด์–ธ ๊ทธ๋ฆฌ๊ธฐ tutorial ์ด๋Ÿฐ๊ฑธ ํ•ด๋ณด๋ฉด ์‹ค๋ ฅ์ด ๋งŽ์ด ๋Š”๋‹ค!!


3-1-3. display

  • block : ํ™”๋ฉด์˜ ๊ฐ€๋กœ ์˜์—ญ๋งŒํผ ์˜์—ญ ์ฐจ์ง€. ์ค„ ๋ฐ”๋€œ.
  • inline : ์ž๊ธฐ ์š”์†Œ๋งŒํผ์˜ ๋„“์ด๋งŒ ์ฐจ์ง€ํ•œ๋‹ค. ์ค„๋ฐ”๊ฟˆ ๋˜์ง€ ์•Š์Œ. width์™€ height, margin-top, margin-bottom ์„ ์ค„ ์ˆ˜ ์—†๋‹ค.
  • inline-block : inline ์ฒ˜๋Ÿผ ํ•œ ์ค„์— ๊ฐ€๋กœ๋กœ ๋ถ™๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, width, height, margin์„ ๋‹ค ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ž์ฒด์ ์œผ๋กœ margin์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • contents : ์•ž์ด๋‚˜ ๋’ค์— ์ฝ˜ํ…์ธ  ๋ถ™์ธ๋‹ค.
  • flex : ํ–‰, ์—ด์„ ๋‹ค๋ฃจ๋Š” 1์ฐจ์› ๋ ˆ์ด์•„์›ƒ.
  • grid : 2์ฐจ์› ๋ ˆ์ด์•„์›ƒ.

inline vs inline-block

  • display ์„ค์ •์„ inline-block์œผ๋กœ ํ•˜๋ฉด, ์š”์†Œ๋“ค ์‚ฌ์ด์— ์ž์ฒด ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๋Š”๋ฐ ์ด๊ฑด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ ์ค€ ์—”ํ„ฐ๋„ ๋„์–ด์“ฐ๊ธฐ๋กœ ์ธ์‹ํ•ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์œผ๋กœ, ๋ถ€๋ชจ์˜ font-size๋ฅผ 0์œผ๋กœ ์ฃผ๋ฉด ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ‰ ์ •๋ ฌ์„ ํ•  ๋•Œ๋Š” inline-block ๋ณด๋‹ค๋Š” inline์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
	<!-- ์•ˆ๋…•ํ•˜์„ธ์š” ์•ˆ๋…•ํ•˜์„ธ์š” ์•ˆ๋…•ํ•˜์„ธ์š” -->
    <div>์•ˆ๋…•ํ•˜์„ธ์š”</div>
    <div>์•ˆ๋…•ํ•˜์„ธ์š”</div>
    <div>์•ˆ๋…•ํ•˜์„ธ์š”</div>
    <!-- ์•ˆ๋…•ํ•˜์„ธ์š”์•ˆ๋…•ํ•˜์„ธ์š”์•ˆ๋…•ํ•˜์„ธ์š” -->
	<div>์•ˆ๋…•ํ•˜์„ธ์š”</div><div>์•ˆ๋…•ํ•˜์„ธ์š”</div><div>์•ˆ๋…•ํ•˜์„ธ์š”</div>

+) ์ด๋ฏธ์ง€๋Š” inline ์ด๋ผ์„œ text ์ฒ˜๋Ÿผ ๋ฏธ๋ฌ˜๋ฏธ๋ฌ˜ํ•œ ๊ฐ„๊ฒฉ์ด ์ƒ๊ธฐ๋Š”๋ฐ baseline์ด ์žˆ์–ด์„œ ์ƒ๊ธฐ๋Š” ํ˜„์ƒ์œผ๋กœ display: block; width: 100%; ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ vertical-align: top; ์„ ์ฃผ๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. img, vertical-align


3-1-4. overflow

overflow : visible, hidden, scroll;

overflow-x, overflow-y ๋กœ ๋”ฐ๋กœ ์ง€์ • ๊ฐ€๋Šฅ.
visible : ๊ธฐ๋ณธ. content ์ž๋ฅด์ง€ ์•Š์Œ.
hidden : ํฌ๊ธฐ์— ๋งž์ถฐ์„œ ์ž๋ฆ„.
scroll : ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ž๋ฅด๋Š”๋ฐ ์Šคํฌ๋กคํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ.


3-1-5. background

color, image, repeat, position, ...

img์™€ background-image์˜ ๋‹ค๋ฅธ ์  : ์ •์  ์ด๋ฏธ์ง€(ํ—ค๋”์— ๋“ค์–ด๊ฐ€๋Š” ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”)๋Š” background ๋™์  ์ด๋ฏธ์ง€(ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜ ์œ„์น˜๊ฐ€ ๋ณ€ํ•จ)๋Š” img


3-1-6. font

size, weight, family ...

  • google font ๋“ฑ์—์„œ ํฐํŠธ๋ฅผ ์ฐพ์•„์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค. (CDN์œผ๋กœ ์‚ฌ์šฉ. ๊ตฌ๊ธ€์ด ๋งˆ๋น„๋˜๋ฉด ๋‚ด ํฐํŠธ๋„ ์‹น ๊นจ์ง€๋ฏ€๋กœ ๊นจ์ ธ๋„ ๊ดœ์ฐฎ์€ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—๋งŒ ์‚ฌ์šฉํ•˜์ž.)
  • ๋ผ์ด์„ผ์Šค ์ฃผ์˜!!!
  • ์•„์ด์ฝ˜๋„ ์›นํฐํŠธ๋กœ ๋งŒ๋“ค์–ด์ ธ์žˆ์–ด์„œ ํฐํŠธ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์•„์ด์ฝ˜์„ ์“ธ ๋•Œ๋Š” i ํƒœ๊ทธ ์ž์ฃผ ์‚ฌ์šฉ.

3-1-7. opacity, color

opacity : ํˆฌ๋ช…๋„ 0~1 ์‚ฌ์ด์˜ ๊ฐ’.
color : name, code๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

background: #999; /* #999999์™€ ๊ฐ™์Œ */
background: rgba(234, 23, 324, 1);

tag๋Š” ๊ฒฐ๊ตญ ์–ด๋–ค <์ด๋ฆ„></์ด๋ฆ„>์— ์ฃผ๊ณ  ์‹ถ์€ ์†์„ฑ์„ ๋ฌถ์–ด๋‘” ๊ฒƒ์ด๋ฏ€๋กœ, ์ง์ ‘ ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. ํ•˜์ง€๋งŒ sementic ๊ตฌ์กฐ๋ฅผ ์œ„ํ•ด ์ง€์–‘ํ•œ๋‹ค.


font๋‚˜ ํ™”๋ฉด ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด์„œ ๋Š๋‚€๊ฑด๋ฐ, iOS๋ž‘ ๋ฌธ๋ฒ•์€ ๋‹ค๋ฅด์ง€๋งŒ ์ƒ๋‹นํžˆ ๋น„์Šทํ•˜๋‹ค๋Š” ์ ์„ ๋Š๊ผˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ข‹์€ ์ ์€ ๋ญ”๊ฐ€ ์ž˜๋ชป ์งœ๋ฉด ์ฃฝ์–ด๋ฒ„๋ฆฌ๋Š” iOS๋ž‘ ๋‹ค๋ฅด๊ฒŒ html์€ ๋ญ”๊ฐ€ ์ž˜๋ชป๋œ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค๋Š” ์ !




3-2. Position

์ขŒํ‘œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž์‹ ์ด ์›๋ž˜ ๋– ์•ผํ•˜๋Š” ์œ„์น˜์— ๋œฌ๋‹ค!!

+) position์„ ์ค„ ๋•Œ ๊ฐ€์žฅ ๋ฐ”๊นฅ์— ์žˆ๋Š” ์š”์†Œ์— ์ฃผ์ž. ํŠนํžˆ button>img, a>img ์˜ ๊ฒฝ์šฐ button์ด๋‚˜ a์— ์ค˜์•ผํ•จ. ๊ธฐ๋Šฅ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋‚˜ focusing์ด ์•ˆ๋ผ์„œ ์ ‘๊ทผ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.

+) inline ์š”์†Œ์— position์„ ์ฃผ๋ฉด display: block ์ด ๋œ๋‹ค. ๋‘ ๋ฒˆ ๋ช…์‹œํ•  ํ•„์š” ์—†๋‹ค.

+) ๋„“์ด, ๋†’์ด ๋ชจ๋ฅผ ๋•Œ๋„ transform: translate(-50%, -50%); ์ค‘์•™์œผ๋กœ ๋•ก๊ธธ ์ˆ˜ ์žˆ๋‹ค!

3-2-1. static

default ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฐ’.
normal flow : static ์„ ์คฌ์„๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด layout

3-2-2. relative

relative : ์›๋ž˜ ์ž์‹ ์ด ์žˆ์–ด์•ผ ํ•˜๋Š” ์œ„์น˜์— relative.

3-2-3. absolute

absolute ์˜ ๊ธฐ์ค€์€ relative
๋ถ€๋ชจ์— relative ๊ฐ€ ์—†์œผ๋ฉด ๊ทธ๊ฒƒ๋ณด๋‹ค ์ƒ์œ„์— ์žˆ๋Š” fixed, relative, absolute ๊ธฐ์ค€.
์ƒ์œ„์— ์•„์˜ˆ relative๊ฐ€ ์—†๋‹ค๋ฉด? body ๊ธฐ์ค€.

top : ์•„๋ž˜๋กœ ๊ฐ€์•ผ ์–‘์ˆ˜(+), bottom : ์œ„(+), left : ์˜ค๋ฅธ์ชฝ(+), right : ์™ผ์ชฝ(+)
iOS์™€ ๋‹ค๋ฅด๋‹ค!

normal flow์— ์žˆ๋Š” ๊ฒƒ๋“ค์€ absolute๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์—†์–ด์„œ ๊ฒน์นœ๋‹ค.


๋…ผ๋ฆฌ์  markup ์ˆœ์„œ ๋•Œ๋ฌธ์— ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” float๊ฐ€ ์•„๋‹ˆ๋ผ absolute๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ถ™์ธ๋‹ค.

3-2-4. fixed

ํ™”๋ฉด ์™ผ์ชฝ ์ƒ๋‹จ์„ (0, 0)์œผ๋กœ ํ•˜๋Š” ์ขŒํ‘œ๊ณ„๋กœ ๊ณ ์ •

+) fixed ๋Š” ํ™”๋ฉด ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ƒฅ ๊ณ ์ •, sticky๋Š” ์Šคํฌ๋กค ๋ฐ•์Šค ์•ˆ์—์„œ ๊ณ ์ •. Sticky๋Š” ๋ฌธ์„œ์˜ ํ๋ฆ„ ๊ณ ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ”Œ๋กœํŒ… ๋ฒ„ํŠผ ๊ฐ™์€ ๊ณณ์— ์‚ฌ์šฉํ•จ.

3-2-5. sticky

๋ถ€๋ชจ ์ค‘์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์Šคํฌ๋กค ๋œ ์š”์†Œ์— ๋ถ™์Œ.
์Šคํฌ๋กค ์š”์†Œ๊ฐ€ ๋ณธ์ธ์˜ offset์„ ๋„˜์–ด๊ฐˆ ๋•Œ๋ถ€ํ„ฐ ๋ถ™๊ณ , ์Šคํฌ๋กค ๋˜๋Š” ๋ถ€๋ชจ ์˜์—ญ์ด ๋๋‚˜๋ฉด ์ž๊ธฐ ์›๋ž˜ ์œ„์น˜๋กœ ์ด๋™.

/* ๋‚˜์˜จ์ง€ ์–ผ๋งˆ ์•ˆ๋ผ์„œ prefix ๋ถ™์—ฌ์•ผํ•จ */
        h2 {
            position: -webkit-sticky;
            position: sticky;
            top: 0; /* ์ž„๊ณ„์  */
            background-color: yellowgreen;
        }

3-2-6. z-index

๊ฐ’์ด ํด์ˆ˜๋ก ํ™”๋ฉด ์•ž์ชฝ์— ๋‚˜ํƒ€๋‚จ. like ppt ๋งจ ์•ž์œผ๋กœ
๊ธฐ๋ณธ๊ฐ’์€ ๋ถ€๋ชจ์˜ z-index (html์˜ z-index๋Š” 0)

+) modal dim ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” z-index๋ฅผ ์ค˜์„œ ๋’ค์— ๊ฒƒ์„ ํด๋ฆญํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜์ž.




3-3. animation ๋ง›๋ณด๊ธฐ

์›€์ง์ผ ๋Œ€์ƒ์˜ CSS์—

์›€์ง์ผ ๋Œ€์ƒ {
    transition: all ์ดˆs;
}
์›€์ง์ผ ๋Œ€์ƒ:hover {
	color: white (์ƒ‰๋„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค);
	transform: ์›€์ง์ž„ rotate(20 deg), translate(10px, 20px), scale(2) ...;
}



+) CSS๋ฅผ ๋งˆ์Šคํ„ฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด CSS ์™„๋ฒฝ ๊ฐ€์ด๋“œ

profile
0๋…„์ฐจ iOS ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€