LESS是否具有与Sass中的@content指令类似的功能?
我试图将一个更“高级”的混音从SASS转换为较少但不成功的混音 这是混音器:LESS是否具有与Sass中的@content指令类似的功能?,less,mixins,Less,Mixins,我试图将一个更“高级”的混音从SASS转换为较少但不成功的混音 这是混音器: .breakpoint(@point) { @if @point == really big{ @media (max-width: 80em) { @content; } } @if @point == mid { @media (max-width: 60em) { @content; } } @if @point == small { @media (max-widt
.breakpoint(@point) {
@if @point == really big{
@media (max-width: 80em) { @content; }
}
@if @point == mid {
@media (max-width: 60em) { @content; }
}
@if @point == small {
@media (max-width: 42em) { @content; }
}
}
还有一个,我没碰这个:
@mixin keyframes( $animationName )
{
@-webkit-keyframes $animationName {
@content;
}
@-moz-keyframes $animationName {
@content;
}
@-o-keyframes $animationName {
@content;
}
@keyframes $animationName {
@content;
}
}
更新 在回答这个问题之前,我没有检查@Harry在评论中提供的示例代码。这个示例代码也提供了一个很好的解决问题的方法。另请参阅: 首先请注意,Less不支持if/else构造(如adds.
if()(if-then-[else])
,但使用保护创建条件混合,另请参见:
或另行考虑
您的mixin还使用@内容代码>您称之为@content指令,我认为您应该将其与“将规则集传递给mixin”进行比较,请参见:
第一次使用模式匹配进行混音:
.breakpoint(reallybig;@content)
{
@media (max-width: 80em) { @content(); }
}
.breakpoint(mid;@ruleset)
{
@media (max-width: 80em) { @content(); }
}
调用方示例:
.breakpoint(reallybig; {p{color:red;}});
你的第一次混血:
.breakpoint(@size;@content) when (@size = 'really big')
{
@media (max-width: 80em) { @content(); }
}
.breakpoint(mid;@ruleset) when (default())
{
@media (max-width: 80em) { @content(); }
}
.breakpoint('really big'; {p{color:red;}});
还有你的第二次混音:
.keyframes(@animationName;@animation)
{
@-webkit-keyframes @animationName {
@animation();
}
@-moz-keyframes @animationName {
@animation();
}
@-o-keyframes @animationName {
@animation();
}
@keyframes @animationName {
@animation();
}
}
@animation: {0% {
left: 0;
transform: translate(10px, 20px);
}
100% {
left: 100%;
transform: translate(100px, 200px);
}};
.keyframes(test;@animation);
检查答案中解释的方法是否有助于转换。是从SASS到Less的转换示例。这与我在上面的评论中提到的另一个问题非常相似,因此我没有添加单独的解释。如果您在理解上有任何困难,我将在回答中添加更多细节。每次只关注一个问题:您是否关心翻译@内容或@If
?+1 mate。很好,您还介绍了规则集到mixin的传递,因为这是我没有介绍的。对于未来的读者来说,了解如何使用mixin动态分配规则,而不是在规则集中使用静态变量,会更有帮助。