# 3 Nesting

By
코알라코딩
In 

# 목차

  • 1. 개요
  • 2. 작성
    • 2.1. &
    • 2.2. @at-root
    • 2.3. 속성중첩
  • 3. 문제1
  • 4. 문제2

# 1. 개요

공식문서-nesting
https://sass-lang.com/guide/#nesting

# 2. 작성

실행화면

# 2.1. &

  1. scss/nest.scss 파일을 생성후 아래의 코드를 작성한다.
scss/nest.scss
header {
	display: flex;
	padding: 2vw 4vw;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
	a {
	color: red;
	}
	& a {
		color: blue;
	}
	h1 {
		flex: 1 1 30%;
		& > a {
			color: green;
			font-size: 2rem;
		}
	}
}
  1. 아래와 같이 컴파일 된것을 확인한다.

# 2.2. @at-root

실행화면

scss/nest.scss
header {
	...
		* {
		border: 2px solid;
		}
		h1 {
		flex: 1 1 30%;
		@at-root & *,& {
				border: none;
			}
		& > a {
			color: green;
			font-size: 2rem;

		}
	}

	nav {
		flex: 1 1 50%;
	}
	button {
		flex: 1 1 10%;
		a:hover {
			color: red;
		}
		&:hover a {
			background: pink;
		}
	}
	ul {
		display: flex;
		width: 80%;
		& li {
			flex: 1 1 30%;
		}

		& ul {
			display: block;
		}
	}
} //header

# 2.3. 속성중첩

font-, margin- 같은 접두사가 같은 속성은 nesting 으로 작성할수 있다.

scss/nest.scss
header {
	... 생략
	* {
	border: {
		width: 2px;
		style: solid;
		color: #0d9716;
		left-width: 0;
		radius: 10%;
	}
}
a {
	color: red;
	}
...
};

# 3. 문제1

mainpadding 속성을 추가해보자

padding-top: 200px; padding-right: 500px; padding-bottom: 200px; padding-left: 500px;

🐨
main {
	padding: {
		top: 100px * 2;
		right: 100px * 5;
		bottom: 100px * 2;
		left: 100px * 5;
	}
}

# 4. 문제2

.section1의 css 를 nesting 으로 변경해보자

🐨
.section1 {
	&-box {
		background: #c9c9c9;
		max-width: 500px;
		margin: auto;
		display: flex;
		border-radius: 8px;
		border: 4px solid #d5d5d5;
		box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
	}
&-box > &-item {
	width: 30%;
	display: flex;
	flex-direction: column;
	padding: 1vw;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
	border: 4px solid #6361e7;
}

&-box > &-item > &-title {
	color: #333;
	font-size: 32px;
}
&-box > &-item > &-para {
	color: #333;
	font-size: 24px;
}

} //.section1