我遇到了一个奇怪的问题,我不熟悉使用@mixin
和@content
标记,并且对此一无所知,但是由于某种原因,我的grid-template-areas
不能准确代表我想要他们做什么。
HTML
<header>
<div class="text"></div>
<nav>
<div class="about"></div>
<div class="qualities"></div>
<div class="portfolio"></div>
<div class="contact"></div>
</nav>
</header>
SCSS
$colors: (
red: red,
blue: blue
);
@function border($color) {
@return 3px map-get($colors, $color) solid;
}
@mixin desktop {
@media only screen and (min-width: 768px) {
@content;
}
}
header {
grid-area: header;
border: border(red);
display: grid;
grid-template-columns: 3fr 1fr;
grid-template-areas: "header-title nav";
.text {
grid-area: header-title;
border: 3px green solid;
}
nav {
grid-area: nav;
border: border(blue);
}
@include desktop {
grid-template-columns: 4fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr;
grid-template-areas: "header-title header-about header-q header-port header-contact";
.about {
grid-area: header-about;
border: border(blue);
}
.qualities {
grid-area: header-q;
border: border(blue);
}
.portfolio {
grid-area: header-port;
border: border(blue);
}
.contact {
grid-area: header-contact;
border: border(blue);
}
}
}
要查看此问题... jsfiddle
它应该从将标题分成2列到将标题分成5列;