๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CSS

CSS : ๋ฏธ๋””์–ด์ฟผ๋ฆฌ(media query)

by ์ฝ”ํŒŒ์นด 2022. 8. 15.
728x90

๋ฏธ๋””์–ด์ฟผ๋ฆฌ

๋ทฐํฌํŠธ์˜ ํ•ด์ƒ๋„์— ๋”ฐ๋ผ CSS๋ฅผ ๋ถ„๊ธฐ์‹œํ‚ค๋Š” ๋ฏธ๋””์–ด์ฟผ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.


<link ~ media="">

<link rel="stylesheet" type="text/css" media="all and (min-width: 1000px)" href="style_pc.css">

์ตœ์†Œ ๊ฐ€๋กœํญ์ด 1000px, ์ฆ‰ 1000px๋ณด๋‹ค ๋„“์€ ํ•ด์ƒ๋„์ผ ๋•Œ style_pc.css๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

ํƒœ๋ธ”๋ฆฟ์ด๋‚˜ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋งˆ๋‹ค ๊ฐ€๋กœํญ์ด ๋‹ค๋ฅธ๋ฐ, ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด๊ณ  Toggle device Toolbar๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๊ธฐ๋งˆ๋‹ค์˜ ํ•ด์ƒ๋„๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ๊ธฐ๊ธฐ ๋ชจ๋ธ๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์Œ ํŠธ๋กœ์ด(http://troy.labs.daum.net/)์—์„œ๋Š” ๊ธฐ๊ธฐ๋ณ„ ํ•ด์ƒ๋„๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ค์ œ ์ž‘๋™ ํ™”๋ฉด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” VIEW๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ๊ฐ€๋กœ ์„ธ๋กœ
IPhone X 375 812
IPhone 6, 7, 8 375 667
IPhone 6, 7, 8 plus 414 736
IPhone 5 320 568
Galaxy S5, S8 360 640
Galaxy Note 8 360 640
IPad Pro 1024 1366
โ€ฆ โ€ฆ โ€ฆ

@media

์ฒ˜์Œ ๋กœ๋”ฉํ•  ๋•Œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜์ง€ ์•Š๋„๋ก CSS ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค์–ด์„œ CSS ๋‚ด๋ถ€์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ถ„๊ธฐ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์˜ ๋ฐ˜์‘ํ˜•์›น CSS์ž…๋‹ˆ๋‹ค.

@media all and (min-width: 1000px) {
    ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ํ•ด์ƒ๋„๊ฐ€ ์ตœ์†Œ 1000px์ธ ๊ฒฝ์šฐ ์ ์šฉํ•  ์†์„ฑ๋“ค
}

all์€ Media Type์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. and ์ „, ํ›„์— ๋„์–ด์„œ ์”๋‹ˆ๋‹ค.

Media Type ์„ค๋ช…
all ๋ชจ๋“  ๋ฏธ๋””์–ด ์žฅ์น˜์— ์‚ฌ์šฉ(๊ธฐ๋ณธ๊ฐ’)
print ํ”„๋ฆฐํ„ฐ์— ์‚ฌ์šฉ
screen PC, ํƒœ๋ธ”๋ฆฟ, ์Šค๋งˆํŠธํฐ์— ์‚ฌ์šฉ
speech ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ธฐ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ฝ๋Š” ๋ฐ ์‚ฌ์šฉ
body {color: red;}
@media only screen and (max-width: 768px) {
    body {color: blue;}
}

์œ„ ๊ตฌ๋ฌธ์€ ์›๋ž˜ ๊ธ€์ž์ƒ‰์ด ๋นจ๊ฐ„์ƒ‰์ธ๋ฐ, ํ™”๋ฉด์ด 768px๋ณด๋‹ค ์ž‘์•„์กŒ์„ ๋•Œ๋Š” ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ง€์ •ํ•œ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ PC์—์„œ๋Š” ๊ธ€์ž ์ƒ‰์ƒ์ด ๋นจ๊ฐ„์ƒ‰์œผ๋กœ, ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ž‘์€ ์žฅ์น˜์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋ชจ๋ฐ”์ผ ์šฐ์„ ์œผ๋กœ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

body {color: blue;}
@media only screen and (min-width: 768px) {
    body {color: red;}
}

์œ„ ๊ตฌ๋ฌธ์€ ์›๋ž˜ ๊ธ€์ž์ƒ‰์ด ํŒŒ๋ž€์ƒ‰์ธ๋ฐ, ํ™”๋ฉด์ด 768px๋ณด๋‹ค ์ปค์ง€๋ฉด ๊ธ€์ž์ƒ‰์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ง€์ •ํ•œ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ๋ชจ๋ฐ”์ผ ์šฐ์„ ์œผ๋กœ ํ•˜๋ฉด์„œ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.


๋ฏธ๋””์–ด์ฟผ๋ฆฌ ์‹ค์Šต

๋ชจ๋ฐ”์ผ๊ณผ ํƒœ๋ธ”๋ฆฟ, ๊ทธ๋ฆฌ๊ณ  PC์˜ ๊ฒฝ๊ณ„๋ฅผ 768px, 1024px, 1280px๋กœ ํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์ด ๋‹ฌ๋ผ์ง€๋Š” ๋ฏธ๋””์–ด์ฟผ๋ฆฌ๋ฅผ ์‹ค์Šตํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ด์•„์›ƒ ํ…œํ”Œ๋ฆฟ์€ Figma๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„ํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

CSS ์†Œ์Šค ๋ณด๊ธฐ
h1,
h2,
ul,
li,
p,
div {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

li {
    list-style-type: none;
}

.clear:after {
    content: '';
    display: block;
    clear: both;
}

a {
    line-height: 1.5;
    color: #333;
}

body {
    background: #f1f1f1;
    font-size: 13px;
}

header {
    background: coral;
}

h1 {
    font-size: 25px;
    color: #cc0;
    padding: 10px;
    color: #fff;
}

.lnb li {
    margin: 10px;
    padding: 10px;
    background: lightgreen;
}

.content {
    padding: 20px;
}

h2 {
    font-size: 20px;
}

.ext {
    margin: 10px;
    padding: 20px;
    background: lightgreen;
}

footer {
    padding: 10px;
    background: #aaa;
}

/* ๋ฏธ๋””์–ด์ฟผ๋ฆฌ */
@media all and (min-width: 768px) and (max-width: 1024px) {
    .lnb {
        float: left;
        width: 25%;
    }

    .content {
        float: left;
        width: 75%;
    }

    .aside {
        clear: both;
    }
}

@media all and (min-width: 1025px) {
    .wrap {
        max-width: 1280px;
        margin: 0 auto;
    }

    .lnb {
        float: left;
        width: 20%;
    }

    .content {
        float: left;
        width: 50%;
    }

    .aside {
        float: right;
        width: 30%;
    }
}

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


๋ฏธ๋””์–ด์ฟผ๋ฆฌ๋ฅผ ํ‰๋‚ด๋‚ด๋Š” script

function initLayout() {
    var widthWin = $(window).width();
    if (widthWin < 1000) $('body').addClass('mob').removeClass('pc');
    else $('body').removeClass('mob').addClass('pc');
}
์ฐฝ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์žฌ๊ณ , 1000px๋ณด๋‹ค ์ข์œผ๋ฉด body์— mob ํด๋ž˜์Šค๋ฅผ ๋ถ™์ด๊ณ  pc ํด๋ž˜์Šค๋Š” ์ œ๊ฑฐํ•˜๊ณ , 1000px ์ด์ƒ์ด๋ฉด body์— pc ํด๋ž˜์Šค๋ฅผ ๋ถ™์ด๊ณ , mob ํด๋ž˜์Šค๋Š” ์ œ๊ฑฐํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
$(window).resize(function() {
    initLayout();
})
๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฐฝ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
...
    body.mob { max-width: 720px; }
...

css์—์„œ body.mob์— ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋ฐ”์ผ์ผ ๋•Œ์˜ ์†์„ฑ์ด ๋“ฑ๋ก๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘