CSS

๐ŸŽจ CSS 1 | CSS layout (display, position)

grasinnong 2021. 12. 16. 22:48

 

 

 

CSS (Cascading Style Sheets)

CSS๋Š” Cascading Style Sheets์˜ ์•ฝ์ž์ด๋‹ค. html์ด ์›นํŽ˜์ด์ง€์˜ content๋ฅผ ๋‹ด๋‹นํ•˜๊ณ , javascript๊ฐ€ ์›นํŽ˜์ด์ง€์˜ ๋™์ ์ธ ์š”์†Œ๋“ค์„ ๋‹ด๋‹นํ•œ๋‹ค๋ฉด, css๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ์•„๋ฆ„๋‹ต๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. 

 

์›นํŽ˜์ด์ง€๊ฐ€ ์Šคํƒ€์ผ๋ง ๋  ๋•Œ๋Š” ์•„๋ž˜ 3๊ฐ€์ง€๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค. 

 

1. Author style : ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ style sheets. (.cssํŒŒ์ผ)

2. User Style : ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํƒ€์ผํ•˜๋Š” ๊ฒƒ(๋‹คํฌ๋ชจ๋“œ, ๊ธ€์ž ํฌ๊ธฐ ์„ค์ • ๋“ฑ)

3. Browser : ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์ •๋œ ์Šคํƒ€์ผ. 

 

๊ทธ๋ฆฌ๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ style sheets์ธ author style์ด 1์ˆœ์œ„, user style์ด 2์ˆœ์œ„, ๋งˆ์ง€๋ง‰์œผ๋กœ browser๊ฐ€ 3์ˆœ์œ„์ด๋‹ค. ์šฐ์„ ์ˆœ์œ„๋Š” ์–ด๋–ค ๊ฒƒ์„ ๋จผ์ € ์ฐธ๊ณ ํ•˜๋Š”๊ฐ€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋จผ์ € 1์ˆœ์œ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฐธ๊ณ ํ•˜๊ณ  1์ˆœ์œ„๊ฐ€ ์—†๋‹ค๋ฉด ๋‹ค์Œ ๊ฒƒ์„, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‹ค์Œ ๊ฒƒ์„ ์ฐธ๊ณ ํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ Cascading์ด๋ผ๊ณ  ํ•œ๋‹ค. 

 

cascading : ํญํฌ์ฒ˜๋Ÿผ ๋‚ด๋ ค๊ฐ€๋‹ค

 

ํ•˜์ง€๋งŒ !important ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๋ฉด, ์šฐ์„ ์ˆœ์œ„๋“ค์€ ๋ฌด์‹œ๋˜๊ณ  1์ˆœ์œ„๋ฅผ ๊ฐ€์ง„๋‹ค. 

p {
  color : red; !important;
}

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ํŒจํ„ด์€ ์งˆ์„œ๋ฅผ ์–ด์ง€๋Ÿฝํžˆ๊ธฐ ๋•Œ๋ฌธ์— !important ์‚ฌ์šฉ์„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

 

 

 

 

Selectors(์„ ํƒ์ž)

์„ ํƒ์ž๋Š” html ์—์„œ ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๊พธ๋ฐ€ ๊ฒƒ์ธ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. 

* {
  color : blue;
}

* ๋Š” ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž์ด๋‹ค. 

 

div {
  color : blue;
}

ํŠน์ • ํƒœ๊ทธ๋ฅผ ์„ ํƒ์ž๋กœ ์ง€์ •ํ•˜๋ฉด ํƒœ๊ทธ์— ์Šคํƒ€์ผ์ด ์ฃผ์–ด์ง„๋‹ค.

 

#name {
  color : blue;
}

id ๊ฐ’์ด name์ธ ํƒœ๊ทธ๊ฐ€ ์„ ํƒ๋œ๋‹ค. #์€ id์„ ํƒ์ž์ด๋‹ค. ํƒœ๊ทธ๋ฅผ ์„ ์–ธํ•  ๋•Œ id ๊ฐ’์„ ์ฃผ๋ฉด id์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํƒ€์ผ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.  

 

.class {
  color : blue;
}

class ๊ฐ€ class์ธ ํƒœ๊ทธ๊ฐ€ ์„ ํƒ๋œ๋‹ค. ํƒœ๊ทธ๋ฅผ ์„ ์–ธํ•  ๋•Œ class๊ฐ’์„ ์ฃผ๋ฉด class์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํƒ€์ผ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

button:hover{
  color : blue;
}

์ƒํƒœ๊ฐ’์„ ์ฃผ๋ ค๋ฉด : ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์œ„์˜ ์ฝ”๋“œ๋Š” button์˜ ์ƒํƒœ๊ฐ€ hover์ผ ๋•Œ(๋ฒ„ํŠผ์— ๋งˆ์šฐ์Šค๊ฐ€ ์˜ฌ๋ ค์ ธ ์žˆ์„ ๋•Œ) ๊ธ€์ž ์ƒ‰์ด ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ณ€ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

 

a[href="https://example.org"]{
  color : blue;
}

[] ๋Š” ํŠน์ • ์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.  a ํƒœ๊ทธ ์ค‘์—์„œ ๋งํฌ ์ฃผ์†Œ๊ฐ€ example.org ์ธ ๊ฒƒ์„ ์„ ํƒํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

์ด ์™ธ์—๋„ ๋งŽ์€ ์„ ํƒ์ž๋“ค์ด ์žˆ๋‹ค.

 

CSS Selectors Reference

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 

 

๊ทธ๋ฆฌ๊ณ  ์„ ํƒ์ž์—๋„ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๋‹ค.

 

1. !important ์„ ํƒ์ž

2. html ํƒœ๊ทธ ์•ˆ์— ๋„ฃ๋Š” ์ธ๋ผ์ธ ์Šคํƒ€์ผ 

3. id ์„ ํƒ์ž

4. class ์„ ํƒ์ž

5. ์†์„ฑ ๊ธฐ๋ฐ˜ ์„ ํƒ์ž

6. ํƒœ๊ทธ ์„ ํƒ์ž

7. ์ „์ฒด ์„ ํƒ์ž 

 

๊ฐ™์€ ์„ ํƒ์ž๋ผ๋ฆฌ๋Š” ๋‚˜์ค‘์— ์“ฐ์—ฌ์ง„ ์ฝ”๋“œ๋กœ ๋ฎ์–ด ์”Œ์›Œ์ง„๋‹ค. 

 

 

 

 

 

 

 

 

CSS ๋ ˆ์ด์•„์›ƒ #1 Display 

css ๋ ˆ์ด์•„์›ƒ์—์„œ๋Š” display์™€ position์ด ์ค‘์š”ํ•˜๋‹ค.

 

 

index.html

<!DOCTYPE html>

<html>
    <head>
        <meta charset="utf-8"/>
        <link rel="stylesheet" href="style.css">
        <title></title>
    </head>
    <body>
        <div></div>
        <div></div>
        <div></div>

        <span></span>
        <span></span>
        <span></span>
    </body>
</html>

div์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ block level์ด๊ณ , span์˜ ๊ฒฝ์šฐ inline level ํƒœ๊ทธ์ด๋‹ค. 

 

style.css

div, span{
  width : 80px;
  height : 80px;
  margin : 20px;
  background-color : blueviolet;
}

 

์‹ค์ œ ํ™”๋ฉด์—์„œ๋Š” div ํƒœ๊ทธ๋งŒ ๋ Œ๋”๋ง ๋˜์—ˆ๋‹ค. 

span ํƒœ๊ทธ์˜ ๊ฒฝ์šฐ๋Š” ์•ˆ์— content ๊ฐ€ ์—†์œผ๋ฉด ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” inline level์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. span ํƒœ๊ทธ๋Š” content ์— ๋”ฐ๋ผ ๋ฐ•์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์กฐ์ ˆ๋œ๋‹ค. 

div ํƒœ๊ทธ์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ div ํƒœ๊ทธ๋“ค์ด ํ•œ ์ค„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

ํ•˜์ง€๋งŒ span ํƒœ๊ทธ์˜ ๊ฒฝ์šฐ, content์˜ ์–‘๋งŒํผ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. 

span์„ inline-level์—์„œ block-level๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด display ์†์„ฑ์„ ์ฃผ๋ฉด ๋œ๋‹ค. 

 

style.css

div, span{
    width : 80px;
    height : 80px;
    margin : 20px;
}

div{
    background-color: blueviolet;
}

span{
    background-color: aqua;
    display : block;
}

 

div ์—ญ์‹œ block level์—์„œ display๋ฅผ ๋ณ€๊ฒฝํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

style.css

div, span{
    width : 80px;
    height : 80px;
    margin : 20px;
}

div{
    background-color: blueviolet;
    display : inline-block;
}

span{
    background-color: aqua;
    display : block;
}

 

 

์ด์ œ display ๊ฐ’์„ inline-block ์—์„œ inline์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์ž.

 

style.css

div, span{
    width : 80px;
    height : 80px;
    margin : 20px;
}

div{
    background-color: blueviolet;
    display : inline;
}

span{
    background-color: aqua;
    display : block;
}

์•ž์—์„œ ๋งํ–ˆ๋“ฏ์ด, inline์˜ ๊ฒฝ์šฐ๋Š” content ์ž์ฒด๋ฅผ ๊พธ๋ฉฐ์ฃผ๋Š” ์†์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— content๊ฐ€ ์—†๋‹ค๋ฉด ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค. inline-block์˜ ๊ฒฝ์šฐ๋Š” content์— ์ƒ๊ด€์—†์ด ํ•˜๋‚˜์˜ block(์ƒ์ž)์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š”๋ฐ inline์œผ๋กœ ํ•œ ์ค„์— ์—ฌ๋Ÿฌ๊ฐœ์˜ block์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. 

 

 

 

 

 

 

 

CSS ๋ ˆ์ด์•„์›ƒ #2 Postion 

 

index.html

<!DOCTYPE html>

<html>
    <head>
        <meta charset="utf-8"/>
        <link rel="stylesheet" href="style.css">
        <title></title>
    </head>
    <body>
    <article class="container">
        <div></div>
        <div class="box">I'm Box</div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        </article>>
    </body>
</html>

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
}

.box{
    background-color: aqua;
}

 

container๋ผ๋Š” class๋ฅผ ๊ฐ€์ง„ article ํƒœ๊ทธ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ div ํƒœ๊ทธ๋“ค์ด ๋“ค์–ด์žˆ๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  div ํƒœ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜์— box๋ผ๋Š” class๋ฅผ ์ฃผ์—ˆ๋‹ค.

 

 

divํƒœ๊ทธ์˜ ํฌ๊ธฐ๋Š” width ์™€ height์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ divํƒœ๊ทธ์˜ ์œ„์น˜๋Š” top, left, right, bottom ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

container์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด๋ณด์ž. 

 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
}

.box{
    background-color: aqua;
}

container๋ฅผ ์œ„์—์„œ๋ถ€ํ„ฐ 20px, ์™ผ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ 20px ์ด๋™์‹œ์ผฐ๋‹ค. ํ•˜์ง€๋งŒ ํ™”๋ฉด ์•ˆ์˜ container์˜ ์œ„์น˜ ๋ณ€ํ™”๋Š” ์—†๋‹ค. 

 

 

position ์†์„ฑ์˜ ๊ธฐ๋ณธ ๊ฐ’์ด static์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. position ์†์„ฑ ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•˜์„ ๋•Œ๋„(์ฒ˜์Œ ์˜ˆ์ œ) div ๋ฐ•์Šค๋“ค์ด ๋งจ ์™ผ์ชฝ, ๊ทธ๋ฆฌ๊ณ  ์œ„์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ํ™”๋ฉด์— ๋ณด์—ฌ์กŒ๋‹ค. ์ด ์†์„ฑ๊ฐ’์ด static์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

 

container์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” position์˜ ๊ฐ’์„ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค. 

 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
    position : relative;
}

.box{
    background-color: aqua;
}

container๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์ชฝ, ์™ผ์ชฝ์— ํ‹ˆ์ด ์ƒ๊ธด ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค(20px ์ด๋™). 

 

๋ฐ•์Šค๋„ ์œ„์น˜๋ฅผ ๋˜‘๊ฐ™์ด ๋ฐ”๊ฟ”๋ณด์ž. 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
    position : relative;
}

.box{
    background-color: aqua;
    left : 20px;
    top : 20px;
    position : relative;
}

์›๋ž˜ ์žˆ๋˜ ์œ„์น˜์—์„œ 20px ์”ฉ ์ด๋™๋˜์—ˆ๋‹ค. position์˜ ๊ฐ’์œผ๋กœ ์ฃผ์—ˆ๋˜ relative๋Š” ์›๋ž˜ ์žˆ๋˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

 

relative์™ธ์—๋„ ์—ฌ๋Ÿฌ ๊ฐ’๋“ค์ด ์žˆ๋‹ค.

https://developer.mozilla.org/ko/docs/Web/CSS/position&amp;amp;amp;amp;amp;amp;amp;amp;nbsp;

 

 

 

absolute์˜ ๊ฒฝ์šฐ, ๋‚˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ์ƒ์œ„์˜ ํƒœ๊ทธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค. 

 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
    position : relative;
}

.box{
    background-color: aqua;
    left : 20px;
    top : 20px;
    position : absolute;
}

.box ํƒœ๊ทธ์˜ ๊ฐ€์žฅ ์ƒ์œ„ ํƒœ๊ทธ๋Š” class๊ฐ€ container์ธ article ํƒœ๊ทธ์ด๋ฏ€๋กœ, container๊ฐ€ ๋‚ด ๊ธฐ์ค€์ด ๋œ๋‹ค. 

 

 

 

fixed์˜ ๊ฒฝ์šฐ๋Š” ์•„์˜ˆ ์ƒ์ž๋ฅผ ๋ฒ—์–ด๋‚˜์„œ window์•ˆ์—์„œ ์›€์ง์ธ๋‹ค. ์›นํŽ˜์ด์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋™ํ•œ๋‹ค. 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
    position : relative;
}

.box{
    background-color: aqua;
    left : 20px;
    top : 20px;
    position : fixed;
}

 

 

 

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ sticky์˜ ๊ฒฝ์šฐ๋Š”, ์›๋ž˜ ์œ„์น˜์— ๋”ฑ ๋ถ™์–ด์„œ ์Šคํฌ๋กค์„ ๋‚ด๋ ค๋„ ๊ทธ ์œ„์น˜ ๊ทธ๋Œ€๋กœ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค. 

 

style.css

div {
    width : 50px;
    height : 50px;
    margin : 20px;
    background-color: red;
}

.container{
    background-color: blueviolet;
    left : 20px;
    top : 20px;
    position : relative;
}

.box{
    background-color: aqua;
    left : 20px;
    top : 20px;
    position : sticky;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[์ฐธ๊ณ ์ž๋ฃŒ]