Scss mixin 忽略@if 语句
Scss mixin ignoring @if statement
我正在进行一项评估,要求我仅使用 css 将内容呈现到带有空白标签的 html 文件。我创建了一个 mixin,它使用计数器增量 属性 对文档中的所有 li 元素进行编号。我正在尝试用 'fizz' 替换每第 3 个 li,但我似乎无法创建一个有效的 if 语句。这是我拥有的:
Html
<html lang="en">
<head>
<title>FizzBuzz</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
SCSS
@mixin render {
@for $i from 1 through 16 {
ul:nth-child(#{$i}) {
:before {
@if $i % 3 == 0 {
content: 'fizz';
counter-increment: number-counter;
} @else {
content: counter(number-counter);
counter-increment: number-counter;
}
}
}
}
}
body {
counter-reset: number-counter 0;
@include render();
}
li {
list-style-type: none;
}
您的目标似乎是 ul:nth-child
而不是 ul li:nth-child
。还应该使用 &:before
而不仅仅是 :before
.
@mixin render {
@for $i from 1 through 16 {
ul li:nth-child(#{$i}) {
order: #{$i};
&:before {
@if $i % 3 == 0 {
content: 'fizz';
counter-increment: number-counter;
} @else {
content: counter(number-counter);
counter-increment: number-counter;
}
}
}
}
}
我正在进行一项评估,要求我仅使用 css 将内容呈现到带有空白标签的 html 文件。我创建了一个 mixin,它使用计数器增量 属性 对文档中的所有 li 元素进行编号。我正在尝试用 'fizz' 替换每第 3 个 li,但我似乎无法创建一个有效的 if 语句。这是我拥有的:
Html
<html lang="en">
<head>
<title>FizzBuzz</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
SCSS
@mixin render {
@for $i from 1 through 16 {
ul:nth-child(#{$i}) {
:before {
@if $i % 3 == 0 {
content: 'fizz';
counter-increment: number-counter;
} @else {
content: counter(number-counter);
counter-increment: number-counter;
}
}
}
}
}
body {
counter-reset: number-counter 0;
@include render();
}
li {
list-style-type: none;
}
您的目标似乎是 ul:nth-child
而不是 ul li:nth-child
。还应该使用 &:before
而不仅仅是 :before
.
@mixin render {
@for $i from 1 through 16 {
ul li:nth-child(#{$i}) {
order: #{$i};
&:before {
@if $i % 3 == 0 {
content: 'fizz';
counter-increment: number-counter;
} @else {
content: counter(number-counter);
counter-increment: number-counter;
}
}
}
}
}