问题描述
更少:
@Configuration
@ConfigurationProperties("test")
@Data
@Validated
public class Config {
@NotBlank
private String host;
@NotBlank
private String port;
@NotBlank
private String username;
}
CSS 结果
.media-mixin(@break) when (@break = 1200px) {
.abc{
color: red;
}
}
.media-mixin(@break) when (@break = 1200px) {
.xyz{
color: yellow;
}
}
@media all and (max-width: 1200px) {
.media-mixin(1200px);
}
如何转换上述 mixin 或在 SASS 中执行相同操作的最佳方法是什么,到目前为止我找不到简单的方法。
解决方法
不确定在 Sass 中是否有一种简单的方法可以做到这一点。
您可以反过来想,并在内部使用带有媒体查询的 mixin:
@mixin media-mixin($selector,$rule,$value) {
@media all and (max-width: 1200px) {
#{$selector} {
#{$rule}: $value;
}
}
}
@include media-mixin(p,color,red);
还可以扩展它以获取属性和值列表:
@mixin media-mixin($selector,$rules...) {
@media all and (max-width: 1200px) {
#{$selector} {
@each $rule in $rules {
#{nth($rule,1)}: nth($rule,2);
}
}
}
}
@include media-mixin(p,(color,red),(background-color,blue));
/* More complex selectors need quotes */
@include media-mixin(".container > p",blue));