๐ŸŽจCSS

๊ฐœ์š”


  • Cascading Style Sheet

  • [TOC]

  • ์„ ํƒ์ž์™€ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ

selector {
    property: value;
}
  • ์„ธ๋ฏธํด๋ก ๋น ํŠธ๋ฆฌ๋ฉด ์ฐพ๊ธฐ ํž˜๋“ค๋‹ค. ๐Ÿ˜ญ

  • importํ•˜๊ธฐ

<head>
    ...
    <link rel="stylesheet" href="./style.css" />
    ...
</head>
  • head์•ˆ์—์„œ ์ž‘์„ฑ

<head>
    <style>
        p { color: blue; }
    </style>
</head>
  • htmlํƒœ๊ทธ์•ˆ์—์„œ ์ž‘์„ฑ

<p style="color:blue">
     Hello css
</p>
  • ๋””์ž์ธ์‹œ์•ˆ

    https://www.figma.com/file/k6aekBk53MUKUwVqRHsSVx/Bugless-CSS?node-id=1%3A4

  • ํ…œํ”Œ๋ฆฟํŒŒ์ผ

    https://github.com/rohjs/bugless-101/tree/master/css-basic

box

boxmodel

  • ์š”์†Œ๋Š” content + padding + border๊นŒ์ง€ ์ด๋‹ค

  • content

    • ๊ทธ๋ƒฅ ๋‚ด์šฉ์ด๋‹ค

  • padding

    • ๋‚ด์šฉ๊ณผ ํ…Œ๋‘๋ฆฌ์‚ฌ์ด์˜ ๊ณต๊ฐ„์ด๋‹ค

  • border

    • ์š”์†Œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ ํ…Œ๋‘๋ฆฌ๋‹ค

  • margin

    • ํ…Œ๋‘๋ฆฌ๋ฐ– ๊ณต๊ฐ„์ด๋‹ค

    • ์š”์†Œ์™€ ์š”์†Œ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ

    • ์š”์†Œ ์ค‘์•™ ์ •๋ ฌ margin: auto;

  • ์š”์†Œ๊ฐ„์˜ ์œ„์•„๋ž˜ ๊ฐ„๊ฒฉ ์กฐ์ •์‹œ margin-top์„ ์“ธ์ง€ margin-bottom์„ ์“ธ์ง€ ์ผ๊ด€์ ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š์Œ

  • ํฌ๊ธฐ ์„ค์ • ์†๊ธฐํ˜•

    • ์ˆœ์„œ ์œ„๋ถ€ํ„ฐ ์‹œ๊ณ„๋ฐฉํ–ฅ

    • 4๊ฐœ top right bottom left

    • 3๊ฐœ top (right-botton) bottom

    • 2๊ฐœ (top-bottom) (right-bottom)

box-sizing

  • default๋Š” box-sizing: content-box์ด๋‹ค

  • ์š”์†Œ์˜ ํฌ๊ธฐ๋Š” width(height) + padding + border ์ด๋‹ค

  • box-sizing: border-box

    • width์™€ height๊ฐ€ ํŒจ๋”ฉ๊ณผ border๋ฅผ ํฌํ•จํ•œ ์ด ํฌ๊ธฐ๊ฐ€ ๋œ๋‹ค

    • width์™€ height๋Š” (border๊นŒ์ง€์˜) ์š”์†Œ์˜ ํฌ๊ธฐ๊ฐ€ ๋˜๋ฉฐ

    • padding๊ณผ border์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ ธ๋„ ์š”์†Œ์˜ ํฌ๊ธฐ๋Š” ๊ณ ์ •์ด๋ฏ€๋กœ content์˜ ํฌ๊ธฐ๊ฐ€ ์œ ๋™์ ์œผ๋กœ ๋‹ฌ๋ผ์ง„๋‹ค

display

Block

  • width๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ถ€๋ชจ์˜ width์„ ์ƒ์†

  • width๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋‚จ์€ ์˜† ๊ณต๊ฐ„์€ margin์œผ๋กœ ์ฑ„์›€

  • ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ๋„๊ตฌ์—์„œ๋Š” ๊ทธ margin์ด ์ˆซ์ž๋กœ ํ‘œ๊ธฐ ์•ˆ๋จ

  • margin: 0 auto ๋Š” ์†๊ธฐํ˜•์œผ๋กœ auto๋กœ ๋งŒ๋“ค์–ด์ง„ margin์„ ์ขŒ์šฐ๊ฐ€ ๋‚˜๋ˆ„์–ด ๊ฐ–๋Š”๋‹ค

  • height๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž์‹ ์š”์†Œ๋“ค์˜ height์˜ ํ•ฉ์„ ์ž์‹ ์˜ height๋กœ ๊ฐ€์ง

  • WHPBM ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Inline

  • ๋ธ”๋ก์ด ์˜์—ญ์ด๋ผ๋ฉด ์ธ๋ผ์ธ์€ ํ๋ฆ„

  • width,height, padding(top,bottom) ,border(top,bottom) ,margin(top,bottom) ์‚ฌ์šฉ์‹œ ์ด์ƒํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜

Inline-Block

  • ํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์˜์—ญ์„ ๊ฐ€์ง

none: ์š”์†Œ๋ฅผ ์—†์• ๋Š”๊ฑฐ๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€. ์š”์†Œ๊ฐ€ ์ฐจ์ง€ํ•˜๋˜ ์œ„์น˜๊ฐ€ ์‚ฌ๋ผ์ง.

Float

  • ์‚ฌ์ „์  ์˜๋ฏธ๋Š” "๋œจ๋‹ค" ์ด๋‹ค.

  • ์›๋ž˜๋Š” ์ด๋ฏธ์ง€์™€ ํ…์ŠคํŠธ๋ฅผ ํ•จ๊ป˜ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์†์„ฑ

  • float๋ฅผ ํ•˜๋ฉด ์š”์†Œ๋Š” ๋œจ๊ฒŒ ๋˜๊ณ  ๋œจ์ง€ ์•Š์€ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๊ทธ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๋ถ€๋ชจ ์š”์†Œ๋Š” Float๋œ ์ž์‹์š”์†Œ๋ฅผ height๊ณ„์‚ฐ์— ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค

  • Float์ ์šฉ์‹œ display์†์„ฑ์ด block๋กœ ์ ์šฉ๋œ๋‹ค.

  • ํ•˜์ง€๋งŒ ๋งˆ์ง„auto๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค

  • ๊ฐ€๋ณ€์ ์œผ๋กœ ์ปจํ…์ธ  ํฌ๊ธฐ๋งŒํผ๋งŒ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

  • ๋ชจ๋“  ์ž์‹ ์š”์†Œ๋ฅผ floatํ•˜๋ฉด ๋ถ€๋ชจ ์š”์†Œ๋Š” ํฌ๊ธฐ๊ฐ€ 0์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค

  • inline ์š”์†Œ๋Š” float ์š”์†Œ๋ฅผ ํ”ผํ•ด๊ฐ„๋‹ค

  • ๋ถ€๋ชจ๊ฐ€ ์ž์‹์„ ๋ชป ์ฐพ์„ ๋•Œ overflow: hidden์„ ํ•˜๋ฉด ๋ถ€๋ชจ๊ฐ€ ์ž์‹์„ ์ฐพ๋Š”๋‹ค.

  • ๋˜๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ after์— clear ์†์„ฑ ์„ค์ •

    Name::after {
          content: '';
          display: block;
          clear: both;
      }
  • ์•„๋งˆ๋„ overflow๊ฐ€ ๋„˜์น˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์†์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์น˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๊ธฐ ์œ„ํ•ด width, height๋ฅผ ์ฐพ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

  • ๋ธ”๋ก ์„œ์‹ ์ƒํ™ฉ์€ float ์†์„ฑ์€ ๋™์ผํ•œ ์„œ์‹ ์ƒํ™ฉ์— ์†ํ•œ ํ•ญ๋ชฉ์—๋งŒ ์ ์šฉ๋˜๋ฏ€๋กœ ์ž์‹์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ์„œ์‹ ์ƒํ™ฉ์„ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด overflow ๋ณด๋‹ค๋Š” ๋ช…์‹œ์ ์œผ๋กœ display: flow-root์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก ์„œ์‹ ์ƒํ™ฉ์„ ์ƒ์„ฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค

  • ์— ์š”์†Œ์ƒ์— display: flow-root์„ ์ ์šฉํ•˜๋ฉด, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์š”์†Œ๋Š” ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ ๋ธ”๋ก ์„œ์‹ ์ƒํ™ฉ์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋œ๋‹ค

  • https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts

Position

  • top, right , left, bottom์œผ๋กœ ์œ„์น˜ ์„ค์ •

static

  • ๋””ํดํŠธ ๊ฐ’

relative

  • float์ฒ˜๋Ÿผ ๋œฌ๋‹ค

absolute

  • float์ฒ˜๋Ÿผ ๋œฌ๋‹ค

  • ์ง‘๋‚˜๊ฐ„ ์ž์‹์ด ๋œ๋‹ค. ๋ถ€๋ชจ ์š”์†Œ๊ฐ€ ์ฐพ์ง€ ๋ชปํ•จ

  • display๊ฐ€ block์œผ๋กœ ๋ฐ”๋€๋‹ค. ๊ธธ๋ง‰์€ ํ•˜์ง€ ๋ชปํ•œ๋‹ค(auto๋งˆ์ง„x)

  • ์กฐ์ƒ ์š”์†Œ์ค‘ position:static์ด ์•„๋‹Œ ์š”์†Œ๋ฅผ ๊ธฐ์ค€ ์œ„์น˜๋ฅผ ์žก์Œ

  • relative๋กœ ์žก๋Š” ๊ฒŒ ์ข‹๋‹ค

  • ๊ฐ€์šด๋ฐ ๋ฐฐ์น˜

position: absolute;
top: 50%;
transform: translateY(-50%); // translate๋Š” ์ž์‹  ๊ธฐ์ค€

fixed

  • float์ฒ˜๋Ÿผ ๋œฌ๋‹ค

  • viewport(ํ™”๋ฉด) ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก์Œ

z-index

  • z์ถ•์˜ ์ˆœ์„œ

  • z-index: number ์ˆซ์ž๊ฐ€ ๋†’์„์ˆ˜๋ก ์œ„์— ๋‚˜์˜ด

  • ๊ธฐ๋ณธ๊ฐ’์€ auto, 0์ฒ˜๋Ÿผ ์ทจ๊ธ‰

text-align

  • ๋ธ”๋ก ์š”์†Œ์•ˆ์˜ ์ธ๋ผ์ธ, ์ธ๋ผ์ธ-๋ธ”๋ก ์š”์†Œ๋ฅผ ์ •๋ ฌ

Flexbox

  • ์ •๋ ฌํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ๋“ค์˜ ๋ถ€๋ชจ display:flex display:inline-flex

  • flex-direction: row ๊ฐ€๋กœ๋ฐฉํ–ฅ flex-direction: column ์„ธ๋กœ๋ฐฉํ–ฅ

  • Main axis: flex-direction๋ฐฉํ–ฅ , Cross axis: main axis์˜ ์ˆ˜์ง๋ฐฉํ–ฅ

  • flex-wrap:nowrap ์ž์‹์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์—ฌ์„œ๋ผ๋„ ํ•œ ์ค„๋กœ ์ •๋ ฌ

  • flex-wrap:wrap ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ์—ฌ๋Ÿฌ ์ค„๋กœ ์ •๋ ฌ๊ฐ€๋Šฅ

  • justify-content: main axis๋ฐฉํ–ฅ์œผ๋กœ ์š”์†Œ ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • align-items: ๊ฐ๊ฐ์˜ cross axis ๋ฐฉํ–ฅ์œผ๋กœ ์š”์†Œ ์ •๋ ฌ ๋ฐฉ๋ฒ•

  • ์—ฌ๋Ÿฌ ์ค„์ด๋ฉด cross axis๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ๋“ค๊ฐ„์˜ ์œ„์•„๋ž˜ ๊ฐ„๊ฒฉ์ด ์ƒ๊น€

  • align-content: ํ•˜๋‚˜์˜ ํฐ cross axis ๋ฐฉํ–ฅ์œผ๋กœ ์š”์†Œ ์ •๋ ฌ๋ฐฉ๋ฒ• justify์™€ ๋น„์Šท

  • order: Number ์š”์†Œ์˜ ์ •๋ ฌ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •. ์ˆซ์ž ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋จ

    justify-contentalign-itemsalign-content

    row

    ์ขŒ->์šฐ

    ์œ„->์•„๋ž˜

    ์œ„->์•„๋ž˜

    column

    ์œ„->์•„๋ž˜

    ์ขŒ->์šฐ

    ์ขŒ->์šฐ

Media Query

  • ๋ฐ˜์‘ํ˜• ์›น๋งŒ๋“ค๊ธฐ

@media screen and (min-width:768px) {
    
}

Typography

  • px ์ ˆ๋Œ€ ๋‹จ์œ„

  • em rem ์ƒ๋Œ€ ๋‹จ์œ„

  • em์€ ํฐํŠธ ์‚ฌ์ด์ฆˆ์˜ ๋น„์œจ 1em => font-size

  • rem: root em html์— ์ ์šฉ๋œ ํฐํŠธ ์‚ฌ์ด์ฆˆ ๋น„์œจ

  • 1rem => html font-size

line-height

  • em ์ฃผ๋กœ ์‚ฌ์šฉ ํฐํŠธ์‚ฌ์ด์ฆˆ์— ์ƒ๋Œ€์ ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ํŽธํ•จ

  • ๋‹จ์œ„ ์ƒ๋žตํ•˜๋ฉด em์œผ๋กœ ๋ฐ›์•„๋“ค์ž„

  • ๊ธ€์ž๋Š” ์ค„๊ฐ„๊ฒฉ์˜ ๊ฐ€์šด๋ฐ ๋ฐฐ์น˜

  • ๋งˆ์น˜ ๊ธ€์ž์˜ ์œ„์•„๋ž˜์— ๋งˆ์ง„์ด ์ƒ๊ธฐ๋Š” ๋Š๋‚Œ

letter-spacing

  • ๊ธ€์ž์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ

  • px์™€ em์„ ์‚ฌ์šฉํ•˜๋‚˜ em์ด ๋” ๋งŽ์ด ์“ฐ์ž„

font-family

  • ์„œ์ฒด์„ค์ •

.text {
    font-family: "font_1", "font_2", sans-serif ;
    //font_1์„ ์‚ฌ์šฉํ•˜๊ณ  ์—†์œผ๋ฉด font_2๋ฅผ ์‚ฌ์šฉ, ์—†์œผ๋ฉด sans-serif ์•„๋ฌด๊ฑฐ๋‚˜ ์‚ฌ์šฉ
}

font-weight

  • ํฐํŠธ ๊ตต๊ธฐ

  • 100~900

  • 400 regular 700 bold

color

  • ํ…์ŠคํŠธ ์ƒ‰์ƒ ์„ค์ •

  • hex, rgb ,rgba

text-align

  • ๊ธ€์ž ์ •๋ ฌ

text-indent

  • ๋“ค์—ฌ์“ฐ๊ธฐ . ๋งˆ์ด๋„ˆ์Šค ๊ฐ’๋„ ๊ฐ€๋Šฅ

text-transform

  • ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ๋Œ€๋ฌธ์ž ๊ด€๋ จ ์†์„ฑ

  • capitalize ์•ž์ž๋ฆฌ ๋Œ€๋ฌธ์ž

  • uppercase ๋ชจ๋‘ ๋Œ€๋ฌธ์ž

  • lowercase ๋ชจ๋‘ ์†Œ๋ฌธ์ž

text-decoration

  • underline ๋ฐ‘์ค„

  • line-through ๊ฐ€์šด๋ฐ ์ค„

  • overline ์œ„ ์ค„

  • a ํƒœ๊ทธ underline์„ ์—†์• ๊ธฐ ์œ„ํ•ด text-decoration:none

font-style

  • normal : ๊ธฐ๋ณธ๊ฐ’

  • italic: ๊ธฐ์šธ์ž„

  • oblique: ๊ธฐ์šธ์ž„?

  • em ํƒœ๊ทธ์˜ ๊ธฐ๋ณธ๊ฐ’์ด italic์ž„

Webfont

  • google์ด ์ตœ๊ณ ์ž„

  • https://fonts.google.com/

  • ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
body {
  font-family: 'MyWebFont', Fallback, sans-serif;
}
  • head ํƒœ๊ทธ ๋‚ด๋ถ€์— ์ž„ํฌํŠธ

<link rel="stylesheet" href="./fonts.css">
  • ๋˜๋Š” css ๋‚ด๋ถ€์— ์ž„ํฌํŠธ

  • @import url("./fonts.css");

Background

background-color

background-image

  • ๊ฒฝ๋กœ๋Š” url() ์‚ฌ์šฉ

background-repeat

  • repeat์ด ๊ธฐ๋ณธ๊ฐ’, ๋ฐ˜๋ณตํ•˜๊ธฐ ์‹ซ์œผ๋ฉด no-repeat์‚ฌ์šฉ

background-size

  • contain: ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆฌ์ง€ ์•Š๊ฒŒ ๋ชจ๋‘ ๋„ฃ์Œ => ๋นˆ๊ณต๊ฐ„ ์ƒ๊น€

  • cover: ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆฌ๋”๋ผ๋„ ๊ณต๊ฐ„์„ ๊ฝ‰ ์ฑ„์›€ => ๋นˆ๊ณต๊ฐ„ ์•ˆ์ƒ๊น€

  • width height; ๋น„์œจ ๋ฌด์‹œ๊ฐ€๋Šฅ, auto๊ฐ€๋Šฅ

  • custom

background-position

  • x์ถ• y์ถ• ;

  • ๊ฐ€์šด๋ฐ ๋ฐฐ์น˜ background-position: center center;

Transition

css์†์„ฑ์ด ๋ฐ”๋€” ๋•Œ ์ „ํ™˜ํšจ๊ณผ๋ฅผ ์คŒ

transition: property timing timing-function delay;

์—ฌ๋Ÿฌ ์†์„ฑ์„ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ๋•Œ๋Š” , ๋กœ ๊ตฌ๋ถ„

property

  • ํŠธ๋žœ์ง€์…˜์„ ์ ์šฉํ•  ์†์„ฑ

timing

  • ๋ฐ”๋€Œ๋Š” ์ง€์† ์‹œ๊ฐ„

timing-function

  • ์ง€์† ์‹œ๊ฐ„ ๊ณก์„ . ์ข€ ๋” ๋™์ ์ธ ๋Š๋‚Œ์„ ์คŒ

delay

  • ํŠธ๋žœ์ง€์…˜ ์ง€์—ฐ

Animation

animation: animation-name duration

@keyframes name {
 from {
 	/* Rules */
 }
 
 to {
 	/* Rules */
 }
}
@keyframes name {
 0% {
 	/* Rules */
 }
 
 100% {
 	/* Rules */
 }
}

animation-name:

  • keyframes์—์„œ ์„ ์–ธํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ด๋ฆ„

  • animation-duration:

  • ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ง„ํ–‰๋˜๋Š” ์‹œ๊ฐ„

animation-timing-function:

  • ์‹œ๊ฐ„๊ณก์„  ํ•จ์ˆ˜

  • animation-iteration-count:

  • ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜. infinite ์žˆ์Œ

animation-direction:

  • ๋ฐฉํ–ฅ. reverse=> keyframs๊ฐ€ to -> from์œผ๋กœ ๋ฐ˜๋Œ€๋กœ ์ง„ํ–‰

  • alternate => ๊ธฐ๋ณธ๊ฐ’๊ณผ reverse๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ์ง„ํ–‰

Transform

๊ณต๊ฐ„์„ ๋ณ€ํ˜•์‹œํ‚ค์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ๋ฌธ์„œ ํ๋ฆ„์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Œ. ๋ฌธ์„œ์˜ ๊ตฌ์กฐ์  ์œ„์น˜๋Š” ๊ทธ๋Œ€๋กœ.

none์ด ์•„๋‹Œ ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์Œ“์ž„ ๋งฅ๋ฝ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, position์ด fixed๊ฑฐ๋‚˜ absolute์ธ ์š”์†Œ์˜ ์ปจํ…Œ์ด๋‹ ๋ธ”๋ก์œผ๋กœ์„œ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

translate : ์œ„์น˜ ์ด๋™.

  • px, rem % ๋“ฑ ๋‹จ์œ„ ์‚ฌ์šฉ. ์—ฌ๊ธฐ์„œ %๋Š” ์ž๊ธฐ ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธ.

translate: none;
/* x,y ๋™์ผ */
translate: 100px;
/* x,y ๋”ฐ๋กœ */
translate: 50% 100px;
/* x,y,z ๋”ฐ๋กœ */
translate: 50% 105px 5rem;

rotate : ํšŒ์ „. ์–‘์ˆ˜ -> ์‹œ๊ณ„๋ฐฉํ–ฅ . ์Œ์ˆ˜ -> ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ

martrix( scaleX, skewX, skewY, scaleY, translateX, translateY)

  • scale: ํฌ๊ธฐ ๋น„์œจ

  • skew: ๊ธฐ์šธ์ž„

  • rotate: ํšŒ์ „

  • translate: ์œ„์น˜ ์ด๋™

Grid

๋ถ€๋ชจ์š”์†Œ display: grid

grid-template-rows: repeat(2,100px); //๊ฐ€๋กœ ํ–‰
grid-template-columns: repeat(3, 1fr); //์„ธ๋กœ ์—ด  fr์€ ๋น„์œจ๋‹จ์œ„
grid-auto-rows: minmax(100px, auto); // ์ €์ ˆ๋กœ ์ƒ๊ธฐ๋Š” ๊ฐ€๋กœํ–‰์€ ์ตœ์†Œ๋Š” 100px,  ์ตœ๋Œ€๋Š” ์ปจํ…์ธ ์‚ฌ์ด์ฆˆ
grid-gap: 10px 20px; // item๊ฐ„์˜ ๊ฐ„๊ฒฉ. ์†๊ธฐํ˜• row-gap column-gap.

์ž์‹์š”์†Œ

.item {
	grid-column: 1/4;
    grid-column: span 2;
}

bootstrap grid

  • container: grid๊ฐ€ ์ ์šฉ๋˜๋Š” ์ „์ฒด ์˜์—ญ

  • columns: ์„ธ๋กœ ์—ด

  • gutter: ์—ด ์‚ฌ์ด์˜ ๋นˆ ๊ณต๊ฐ„

<div class="container">
  <div class="row">
    <div class="col-12">
      One of three columns
    </div>
  </div>
</div>

col- : 576px ๋ฏธ๋งŒ

.col-sm- : 576px ์ด์ƒ

.col-md-: 768px ์ด์ƒ

.col-lg-: 992px ์ด์ƒ

.col-xl-: 1200px ์ด์ƒ

๊ธฐ๋ณธ ์—ด์€ 12

gutter๋Š” 30px (์ขŒ์šฐ 15px)

Overflow

overflow: (overflow-x) (overflow-y) ;

visible : ์ƒ์ž๋ฐ–์œผ๋กœ ๋‚ด์šฉ์ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Œ.

hidden: ์ƒ์ž ๋ฐ–์˜ ๋‚ด์šฉ์„ ์ˆจ๊น€, ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์Šคํฌ๋กค ๊ฐ€๋Šฅ

clip : ์ƒ์ž ๋ฐ–์˜ ๋‚ด์šฉ์„ ์ˆจ๊น€, ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์Šคํฌ๋กค๋„ ๋ถˆ๊ฐ€๋Šฅ

scroll : ์ƒ์ž ๋ฐ–์˜ ๋‚ด์šฉ์„ ์ˆจ๊น€, ์ฝ˜ํ…์ธ ๊ฐ€ ๋„˜์ณ์„œ ์ž˜๋ ธ๋Š”์ด ์—ฌ๋ถ€๋ฅผ ๋”ฐ์ง€์ง€ ์•Š๊ณ  ํ•ญ์ƒ ์Šคํฌ๋กค๋ฐ” ๋…ธ์ถœ

auto : ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๊ฐ€ ๊ฒฐ์ •. ์ฝ˜ํ…์ธ ๊ฐ€ ๋„˜์น˜์ง€ ์•Š๋Š”๋‹ค๋ฉด visible์™€ ๋™์ผํ•˜๊ฒŒ ๋ณด์ด๋‚˜ ์ƒˆ๋กœ์šด ๋ธ”๋ก ์„œ์‹ ๋ฌธ๋งฅ์€ ์ƒ์„ฑ๋จ. ๋ฐ์Šคํฌํƒ‘์€ ์ฝ˜ํ…์ธ ๊ฐ€ ๋„˜์น˜๋ฉด ์Šคํฌ๋กค๋ฐ”๋ฅผ ์ƒ์„ฑ

์Œ“์ž„ ๋งฅ๋ฝ(stacking context)

  • z์ถ•์ด ๊ฐ€์ƒ์œผ๋กœ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ . html์š”์†Œ๋ฅผ 3์ฐจ์›์œผ๋กœ ๊ฐœ๋…ํ™”ํ•œ๋‹ค.

  • z-index๊ฐ€ ๋†’์„์ˆ˜๋ก z์ถ•์—์„œ ์œ„์—(๋‹ค๋ฅธ ์š”์†Œ๋ณด๋‹ค ์•ž์—) ์œ„์น˜ํ•œ๋‹ค.

  • ์Œ“์ž„๋งฅ๋ฝ์ด ์—†๋Š” ์š”์†Œ๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ์Œ“์ž„ ๋งฅ๋ฝ์„ ๋”ฐ๋ผ๊ฐ„๋‹ค.

  • ํ˜•์ œ์š”์†Œ๋“ค๋ผ๋ฆฌ ์Œ“์ž„๋งฅ๋ฝ์„ ๊ณ ๋ ค

  • z-index๋ฅผ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์›Œ์ง„๋‹ค.

  • z-index๊ฐ€ 5๋ฉด ๋ฒ„์ „์ด 5, z-index๊ฐ€ 4์ธ ์š”์†Œ์•ˆ์˜ z-index๊ฐ€ 1์ธ ์š”์†Œ๋Š” 4.1 ์ธ ์‹์œผ๋กœ.

  • ๊ทธ ํ›„์— ๊ทธ๋ƒฅ ๋ฒ„์ „์ด ๋†’์€ ๊ฒŒ ์œ„์— ๊ฐ€์žฅ ์•ž์ธ ์…ˆ์ด๋‹ค.

ETC

css์—์„œ data๊ฐ’ ์‚ฌ์šฉ

article[data-a=''] {
    
}

ํ˜„์žฌ ์Šคํฌ๋กค๊ฐ’ ์ถœ๋ ฅ

var scrollPosition = window.scrollY || document.documentElement.scrollTop;
console.log(scrollPosition);

๋ฒกํ„ฐ ์ด๋ฏธ์ง€์— ์†์„ฑ ์ ์šฉํ•˜๊ธฐ

clippath์™€ path ๋ชจ๋‘ transform ์ ์šฉ๊ฐ€๋Šฅ

<svg width="350px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350 350" version="1.1" height="350px">
    <clipPath id="text-1" 
    data-0="transform: scale(1);"
    data-1000="transform: scale(2);"
    >
        <path 
        d="m150.37 130.25c-2.45 5.66-5.35 10.87-8.71 15.66-4.58 6.53-8.33 11.05-11.22 13.56-4.48 4.12-9.28 6.23-14.42 6.35-3.69 0-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58 0-9.492 1.05-14.746 3.17-5.262 2.13-9.501 3.24-12.742 3.35-4.929 0.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.032-7.08-9.169-15.29-12.41-24.65-3.471-10.11-5.211-19.9-5.211-29.378 0-10.857 2.346-20.221 7.045-28.068 3.693-6.303 8.606-11.275 14.755-14.925s12.793-5.51 19.948-5.629c3.915 0 9.049 1.211 15.429 3.591 6.362 2.388 10.447 3.599 12.238 3.599 1.339 0 5.877-1.416 13.57-4.239 7.275-2.618 13.415-3.702 18.445-3.275 13.63 1.1 23.87 6.473 30.68 16.153-12.19 7.386-18.22 17.731-18.1 31.002 0.11 10.337 3.86 18.939 11.23 25.769 3.34 3.17 7.07 5.62 11.22 7.36-0.9 2.61-1.85 5.11-2.86 7.51zm-31.26-123.01c0 8.1021-2.96 15.667-8.86 22.669-7.12 8.324-15.732 13.134-25.071 12.375-0.119-0.972-0.188-1.995-0.188-3.07 0-7.778 3.386-16.102 9.399-22.908 3.002-3.446 6.82-6.3113 11.45-8.597 4.62-2.2516 8.99-3.4968 13.1-3.71 0.12 1.0831 0.17 2.1663 0.17 3.2409z" fill="#000"/>
    </clipPath>    
</svg>

definition list

  • dlํƒœ๊ทธ : dt์™€ dd๋ฅผ ๊ฐ์‹ผ๋‹ค

  • dt: definition title

  • dd: definition data

    <dl>
        <dt>title</dt>
        <dd>data</dd>
    </dl>

Last updated