TIL 08 | margin auto, overflow, z-index, order

์ด์‚ฌ๊ฐยท2021๋…„ 1์›” 15์ผ
0

CSS

๋ชฉ๋ก ๋ณด๊ธฐ
5/13
post-thumbnail

margin auto

margin auto๋Š” ์ˆ˜ํ‰๋ฐฉํ–ฅ (์ขŒ,์šฐ)์˜ ๋งˆ์ง„์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์ขŒ์šฐ ์—ฌ๋ฐฑ์€ ๊ท ์ผํ•˜๊ฒŒ ๋ฐฐ๋ถ„๋˜์–ด margin auto๊ฐ€ ์ ์šฉ๋œ ์š”์†Œ๋Š” ๊ทธ ๋ถ€๋ชจ ์š”์†Œ์˜ ๊ฐ€๋กœ ์ค‘์•™์— ๋ฐฐ์น˜๋œ๋‹ค.
์ ์šฉ์„ ์œ„ํ•ด์„œ๋Š” ๋‹น์—ฐํžˆ ๋งˆ์ง„๊ฐ’์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ์—ฌ์•ผ ํ•˜๊ณ  (inline์ด ์•ˆ๋˜๋Š” ์ด์œ ), width๊ฐ’์˜ ์ •ํ™•ํ•œ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

(ํ™œ์šฉ)

์ƒ๋‹จ๋ฐ”๋ฅผ ์„ธ ์„น์…˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ€์šด๋ฐ๋Š” ์ •์ค‘์•™์— ๋ฐฐ์น˜ํ•  ๋•Œ ํ™œ์šฉํ•œ๋‹ค. space-between์„ ์‚ฌ์šฉํ•˜๋ฉด
์ด๋ ‡๊ฒŒ ๊ท ๋“ฑํ•œ 3๋“ฑ๋ถ„์œผ๋กœ ๋‚˜๋ˆ ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•œ๋‹ค.

๊ฐ ์„น์…˜์˜ width๋ฅผ 33%๋กœ ์„ค์ •ํ•˜๊ณ  ๊ฐ€์žฅ ์šฐ์ธก์˜ ๊ฒƒ์— margin-right:auto;,๊ฐ€์žฅ ์ขŒ์ธก์˜ ๊ฒƒ์— margin-left:auto;์„ ์„ค์ •ํ•œ๋‹ค.

๋งŒ์ผ ๋งˆ์ง„ ์˜คํ† ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ € ์„ธ ์ปฌ๋Ÿฌ๋ฐ•์Šค๋“ค์€ ์™ผ์ชฝ์œผ๋กœ ๋ถ™๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅธ์ชฝ์— ์—ฌ๋ฐฑ์ด ์ข€ ๋” ๋‚จ์•„์„œ ์ขŒ์šฐ ์ฐจ์ด๊ฐ€ ์ƒ๊น€.

๋งˆ์ง„ ์˜คํ† ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  space-between์„ ํ•  ๊ฒฝ์šฐ์—๋„, ๊ฐ ์š”์†Œ ์‚ฌ์ด์— ์—ฌ๋ฐฑ์ด ์ƒ๊น€.

overflow

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

overflow: value;

overflow value ์ข…๋ฅ˜

  • visible : ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚œ ์ฑ„๋กœ ๋‹ค ๋ณด์—ฌ์คŒ
  • hidden : ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚œ ๋ถ€๋ถ„์€ ์ˆจ๊น€
  • scroll : ์š”์†Œ์˜ ํฌ๊ธฐ ์•ˆ์—์„œ ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์ƒ๊ฒจ์„œ ์Šคํฌ๋กค์„ ํ†ตํ•ด ์š”์†Œ ์ „์ฒด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • auto : ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด scroll๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ์•„๋‹ˆ๋ฉด ์›๋ž˜๋Œ€๋กœ ๋ณด์—ฌ์คŒ

(ํ™œ์šฉ)

CSS๋งŒ์œผ๋กœ input range์˜ style์„ ๋ฐ”๊ฟ€ ๋•Œ, ๋ฌธ์ œ์ ์€ ์ง€๋‚˜์˜จ ๋ถ€๋ถ„์˜ ์ปฌ๋Ÿฌ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด๋‹ค. ์ •ํ™•ํžˆ๋Š” webkit์œผ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ms๋กœ๋งŒ ๊ฐ€๋Šฅํ•œ๋“ฏ.
์–ด์จŒ๊ฑฐ๋‚˜ CSS๋งŒ์œผ๋กœ ์ง€๋‚˜์˜จ ๋ถ€๋ถ„์˜ ์ปฌ๋Ÿฌ์™€ ์ง€๋‚˜๊ฐ€์•ผํ•  ๋ถ€๋ถ„์˜ ์ปฌ๋Ÿฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ, overflow: hidden;์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

input[type="range"] { 
    margin: auto;
    -webkit-appearance: none;
    position: relative;
    overflow: hidden; <--โ˜…
    height: 40px;
    width: 200px;
    cursor: pointer;
    border-radius: 0;
}
input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px; 
    height: 40px;
    background: #fff;
    box-shadow: -100vw 0 0 100vw dodgerblue; <--โ˜…
    border: 2px solid #999; 
}

thumb์˜ ๊ทธ๋ฆผ์ž๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํฌ๊ฒŒ ์ฃผ๊ณ , range bar์„ ๋ฒ—์–ด๋‚˜๋Š” ๊ทธ๋ฆผ์ž๋Š” overflow: hidden; ์œผ๋กœ ๊ฐ€๋ ค ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” input range์•ˆ์—์„œ ์ง€๋‚˜์˜จ ๋ถ€๋ถ„์˜ ์ปฌ๋Ÿฌ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
์ฐธ๊ณ  : https://codepen.io/noahblon/pen/OyajvN

CSS๋งŒ์œผ๋กœ input range style์„ ์„ค์ •ํ•˜๋Š” ๋” ๋งŽ์€ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ .
https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
https://github.com/Dev-Jeromebaek/design_note/issues/1

z-index

z-index: value;

z-index๋Š” position ์„ค์ •๋œ ์š”์†Œ, ๊ทธ ์š”์†Œ๋“ค์˜ ์ž์‹ ๋˜๋Š” flex item๊ฐ„์˜ ๋ ˆ์ด์–ด ์ˆœ์„œ๋ฅผ ์ •ํ•œ๋‹ค. 0์ด ๊ธฐ๋ณธ๊ฐ’์ด๊ณ , ๊ฐ’์ด ํด์ˆ˜๋ก ์ƒ์œ„์— ๋†“์ด๋ฉฐ ๊ฐ’์ด ์ž‘์„์ˆ˜๋ก ํ•˜์œ„์— ๋†“์ด๊ฒŒ ๋œ๋‹ค.

order

order: value;

flex ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ flex item์— ์ ์šฉ๋œ๋‹ค. order ๊ฐ’์œผ๋กœ ์ด๋“ค์˜ ๋ฐฐ์น˜ ์ˆœ์„œ๋ฅผ ์ •ํ•˜์ง€๋งŒ ์ผ์ผ์ด ์„ค์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ์“ฐ์ธ๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€์‹ ์— reverse ๊ฐ’์„ ์คŒ.

0์ด ๊ธฐ๋ณธ๊ฐ’์ด๊ณ , ๊ฐ’์ด ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ์ถœ๋ ฅ๋œ๋‹ค.
order: -1; order: 4; order: 10;

profile
https://emewjin.github.io

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