๐Ÿ“Web Developing/CSS ๊ธฐ์ดˆ

IV. ๋ฐฐ๊ฒฝ๊พธ๋ฏธ๊ธฐ - 3. ๊ทธ๋ผ๋ฐ์ด์…˜ ํšจ๊ณผ๋กœ ๋ฐฐ๊ฒฝ ๊พธ๋ฏธ๊ธฐ

Hush 2022. 6. 6. 08:01

์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜

์ƒ‰์ƒ์ด ์ˆ˜์ง, ์ˆ˜ํ‰ ๋˜๋Š” ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ •ํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

์ด๊ฒƒ์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ํ•จ์ˆ˜๋Š” linear-gradient์ธ๋ฐ ์ƒ‰์ƒ์ด ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ”๋€Œ๋Š”์ง€, ์–ด๋–ค ์ƒ‰์ƒ์œผ๋กœ ๋ฐ”๋€Œ๋Š”์ง€ ์•Œ๋ ค ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ๊ธฐ๋ณธํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

linear-gradient(to <๋ฐฉํ–ฅ> ๋˜๋Š” <๊ฐ๋„>, <์ƒ‰์ƒ ์ค‘์ง€์ >, [<์ƒ‰์ƒ ์ค‘์ง€์ >, ... ]);

-๋ฐฉํ–ฅ

๊ทธ๋ผ๋ฐ์ด์…˜ ๋ฐฉํ–ฅ์„ ์ง€์‹œํ•  ๋•Œ๋Š” ๋ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ to ์˜ˆ์•ฝ์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

to ๋‹ค์Œ์—๋Š” ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ˆ์•ฝ์–ด๋ฅผ ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ ์˜ˆ์•ฝ์–ด๋Š” ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” left์™€ right, ์ˆ˜์ง ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” top๊ณผ bottom์„ ์‚ฌ์šฉํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ‰์ƒ์ด ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ทธ๋ผ๋ฐ์ด์…˜์ด๋ผ๋ฉด to right๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์™ผ์ชฝ ์•„๋ž˜์—์„œ ์˜ค๋ฅธ์ชฝ ์œ„๋กœ ๋ณ€ํ•˜๋Š” ๊ทธ๋ผ๋Œ€์—์…˜์ด๋ผ๋ฉด to right top๋˜๋Š” to top right๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ to bottom ์ด๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ์—์„œ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ์™ผ์ชฝ ์œ„์—์„œ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๋ฐฉํ–ฅ์œผ๋กœ, ์ƒ‰์ƒ์€ ํŒŒ๋ž€์ƒ‰์—์„œ ์ ์  ํฐ์ƒ‰์œผ๋กœ ๋ณ€ํ•œ๋‹ค. CSS3๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด ๋ฐฐ๊ฒฝ์ƒ‰์„ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์„ ํƒํ–ˆ๋‹ค.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            .grad {
                width: 800px;
                height: 450px;
                background: blue;
                background: linear-gradient(to right bottom, blue, white);
            }
        </style>
    </head>
    <body>
        <div class="grad"></div>
    </body>
</html>

์˜ˆ์ œ ๊ฒฐ๊ณผ

 

-๊ฐ๋„

๊ฐ๋„๋Š” ๊ทธ๋ผ๋ฐ์ด์…˜์ด ๋๋‚˜๋Š” ๋ถ€๋ถ„์˜ ๋ฐฉํ–ฅ์„  deg๋กœ ํ‘œ์‹œํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 12์‹œ๋ฐฉํ–ฅ์ด 0deg, ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๊ทธ ๊ฐ’์ด 360๊นŒ์ง€ ์ปค์ง„๋‹ค.

 

-์ƒ‰์ƒ ์ค‘์ง€์ 

2๊ฐ€์ง€ ์ƒ‰ ์ด์ƒ์˜ ์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋งŒ๋“ค๋ ค๋ฉด ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„์„ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ผ๋ฐ์ด์…˜์—์„œ ๋ฐ”๋€Œ๋Š” ์ƒ‰์„ ์ƒ‰์ƒ ์ค‘์ง€์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ƒ‰์ƒ ์ค‘์ง€์ ์„ ์ง€์ •ํ•  ๋•Œ ์‰ผํ‘œ๋กœ ์ƒ‰์ƒ์„ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ, ์ƒ‰์ƒ๋งŒ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์ƒ‰์ƒ ์ค‘์ง€์ ๊ณผ ํ•จ๊ป˜ ์ค‘์ง€์ ์˜ ์œ„์น˜๋„ ํ•จ๊ป˜ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ค‘์ง€์ ์œ„์น˜๋Š” ์ƒ‰์ƒ๊ณผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ฐฑ๋ถ„์œจ๋กœ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            .grad {
                width: 800px;
                height: 450px;
                background: blue;
                background: linear-gradient(to bottom,purple, navy 10%, blue 40%, skyblue);
            }
        </style>
    </head>
    <body>
        <div class="grad"></div>
    </body>
</html>

 

 

์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜

์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์ด ์ง์„  ํ˜•ํƒœ๋กœ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ๊ฑฐ๋ผ๋ฉด, ์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์€ ์› ๋˜๋Š” ํƒ€์›์˜ ์ค‘์‹ฌ์—์„œ๋ถ€ํ„ฐ ๋™์‹ฌ์›์„ ๊ทธ๋ฆฌ๋ฉฐ ๋ฐ”๊นฅ ๋ฐฉํ–ฅ์œผ๋กœ ์ƒ‰์ƒ์ด ๋ฐ”๋€๋‹ค. ๋”ฐ๋ผ์„œ ์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์€ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์›์˜ ์ค‘์‹ฌ๊ณผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๊ณ  ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ๋ชจ์–‘์„ ์„ ํƒํ•œ๋‹ค.

radial-gradient(<๋ชจ์–‘> <ํฌ๊ธฐ> at <์œ„์น˜>, <์ƒ‰์ƒ ์ค‘์ง€์ >, [<์ƒ‰์ƒ ์ค‘์ง€์ >, ... ]);

-๋ชจ์–‘

์›ํ˜•(circle)๊ณผ ํƒ€์›ํ˜•(ellipse)์ด ์žˆ๋‹ค. ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํƒ€์›ํ˜•์œผ๋กœ ์ธ์‹ํ•œ๋‹ค.

 

-ํฌ๊ธฐ

์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์„ ์ง€์ •ํ•  ๋•Œ ์›์˜ ํฌ๊ธฐ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›์˜ ๋ชจ์–‘๊ณผ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์›Œ๋“œ๊ฐ’์„ ํ•จ๊ป˜ ์“ฐ๋ฉด ๋œ๋‹ค.

ํฌ๊ธฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            .grad {
                margin: 20px;
                display: inline-block;
                width: 300px;
                height: 300px;
                background: green;
            }
            #closest-side { background: radial-gradient(circle closest-side at 30% 20%,white, yellow, green); }
            #closest-corner { background: radial-gradient(circle closest-corner at 30% 20%,white, yellow, green); }
            #farthest-side { background: radial-gradient(circle farthest-side at 30% 20%,white, yellow, green); }
            #farthest-corner { background: radial-gradient(circle farthest-corner at 30% 20%,white, yellow, green); }
        </style>
    </head>
    <body>
        <div class="grad" id="closest-side"></div>
        <div class="grad" id="closest-corner"></div>
        <div class="grad" id="farthest-side"></div>
        <div class="grad" id="farthest-corner"></div>
    </body>
</html>
์†์„ฑ๊ฐ’ ์„ค๋ช… ๊ฒฐ๊ณผ ํ™”๋ฉด
closest-side ๊ทธ๋ผ๋ฐ์ด์…˜ ๊ฐ€์žฅ์ž๋ฆฌ ์ค‘ ํ•˜๋‚˜๋งŒ์ด ์š”์†Œ์˜ ํ•œ ๋ณ€์— ๋‹ฟ์„ ํฌ๊ธฐ๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

closet-corner ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ๊ฐ€์žฅ์ž๋ฆฌ ์ค‘ ํ•˜๋‚˜๋งŒ์ด ์š”์†Œ์˜ ํ•œ ๊ผญ์ง“์ ์— ๋‹ฟ์„ ํฌ๊ธฐ๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

farthest-side ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ๊ฐ€์žฅ์ž๋ฆฌ์ค‘ ํ•˜๋‚˜๊ฐ€ ์š”์†Œ์˜ ํ•œ ๋ณ€์— ๋‹ฟ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์š”์†Œ๋ฅผ ๋„˜์–ด์„œ๋„๋ก ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
farthest-corner ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ๊ฐ€์žฅ์ž๋ฆฌ์ค‘ ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ ๊ผญ์ง“์ ์— ๋‹ฟ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์š”์†Œ๋ฅผ ๋„˜์–ด์„œ๋„๋ก ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

 

-์œ„์น˜

at ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์ง€์ •ํ•˜๋ฉด ๊ทธ๋ผ๋ฐ์ด์…˜์ด ์‹œ์ž‘ํ•˜๋Š” ์›์˜ ์ค‘์‹ฌ์„ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜ ์†์„ฑ๊ฐ’์€ ํ‚ค์›Œ๋“œ ๋˜๋Š” ๋ฐฑ๋ถ„์œจ์ด๋‹ค.

์ˆ˜ํ‰ ํ‚ค์›Œ๋“œ: left, center, right

์ˆ˜์ง ํ‚ค์›Œ๋“œ: top, center, bottom

์•ž์„  ์˜ˆ์‹œ์—์„œ at 30% 20%๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜์˜ ์ค‘์‹ฌ์„ ์„ค์ •ํ•˜์˜€์—ˆ๋‹ค.

 

-์ƒ‰์ƒ ์ค‘์ง€์ 

์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„์„ ์ƒ‰์ƒ ์ค‘์ง€์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ƒ‰ ๋’ค์— ๊ณต๋ฐฑ์„ ๋„์šฐ๊ณ  ๋ฐฑ๋ถ„์œจ์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๊ทธ๋ผ๋ฐ์ด์…˜์„ ์‚ฌ์šฉํ•ด ํŒจํ„ด ๋งŒ๋“ค๊ธฐ

์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜๊ณผ ์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์€ ๋ฐ˜๋ณต์ ์ธ ํŒจํ„ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋ฐ˜๋ณตํ•  ๋•Œ๋Š” repeating-linear-gradient๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ,

์›ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋ฐ˜๋ณตํ•  ๋•Œ๋Š” repeating-radial-gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
        .block{
            margin: 10px;
            width: 200px;
            height: 200px;
            display: inline-block;
        }
        #grad1
        {
            background: repeating-linear-gradient(yellow, red 20px);
        }
        #grad2
        {
            background: repeating-linear-gradient(yellow,yellow 20px, red 20px, red 40px);
        }
        #grad3
        {
            background: repeating-radial-gradient(circle, white, gray 10%);
        }
        #grad4
        {
            background: repeating-radial-gradient(circle, white, white 10%, gray 10%, gray 20%);
        }
        </style>
    </head>
    <body>
        <div class="block" id="grad1"></div>
        <div class="block" id="grad2"></div>
        <div class="block" id="grad3"></div>
        <div class="block" id="grad4"></div>
    </body>
</html>