๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/SASS

[SASS] @mixin @content @include

jmjm 2022. 4. 20. 17:08

๐Ÿ”บ๋ฌธ์ œ

  1. @include ์„ ์–ธ ํ›„ ์ถ”๊ฐ€ ์Šคํƒ€์ผ ์ง€์ •์ด ์•ˆ๋จ.
  2. parent์˜ child ์Šคํƒ€์ผ ์ง€์ • ์•ˆ๋จ.
.parent {
    @include mix() {
        // ์Šคํƒ€์ผ์ง€์ •
    } (
    	// Error
    )
    // Error
    .child {
        
    }
}

 

html ๊ตฌ์กฐ

<div class="position-wrapper">
    <div class="box1">BOX1</div>
    <div class="box2">BOX2</div>
    <div class="box3">BOX3</div>
</div>

@mixin

@mixin ๋ฏน์Šค์ธ์ด๋ฆ„($๋งค๊ฐœ๋ณ€์ˆ˜: ๊ธฐ๋ณธ๊ฐ’) {
    ์Šคํƒ€์ผ;
}
@include ๋ฏน์Šค์ธ์ด๋ฆ„(์ธ์ˆ˜);

@content

@mixin ๋ฏน์Šค์ธ์ด๋ฆ„() {
    ์Šคํƒ€์ผ;
    @content;
}
@include ๋ฏน์Šค์ธ์ด๋ฆ„() {
    // ์Šคํƒ€์ผ๋ธ”๋ก
    ์Šคํƒ€์ผ;
}
@mixin position(
    $p: absolute;
	$t: null,
    $b: null,
    $l: null,
    $r: null
    ) {
      	position: $p;
       	top: $t;
        bottom: $b;
        left: $l;
        right: $r;
        // @content ๋„ฃ์–ด์ค˜์•ผ ์Šคํƒ€์ผ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ.
        @content;
      }

.position-wrapper {
	@include position(
    	$p: relative;
    	$t: 0px;
    	$l: 0px;
    ) {
    	border: 1px solid #000;
    	width: 500px;
    	height: 150px;
    }
    div {
    	float: left;
        width: 50px;
        height: 50px;
        background: gold;
        &.box2 {
        	@inlcude position (
        		$t: 0px,
        		$l: 0px
        	) {
        		transform: translate(-50%, -50%);
        	}
        }
        &.box3 {
          @include position (
            $b: 0px;
            $r: 0px;
			)
        }
    }
}

 

/* CSS */
.position-wrapper {
  position: relative;
  top: 0px;
  left: 0px;
  border: 1px solid #000;
  width: 500px;
  height: 150px;
}
.position-wrapper::after {
  display: block;
  content: "";
  clear: both;
}
.position-wrapper div {
  float: left;
  width: 50px;
  height: 50px;
  background-color: gold;
}
.position-wrapper div.box2 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.position-wrapper div.box3 {
  position: absolute;
  bottom: 0px;
  right: 0px;
}

 

@mixin์•ˆ์— @content๋ฅผ ๋„ฃ์–ด์•ผ @include์•ˆ์—์„œ ์Šคํƒ€์ผ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 


Refercnce

Sass(SCSS)์™„์ „์ •๋ณต