【发布时间】:2016-08-08 19:53:13
【问题描述】:
我正在寻找某种extend 来进行媒体查询,但我知道extend 在这里不合适。
我有一个 mixin,它应该为每个类创建类和媒体查询。不幸的是,我当前的 mixin 会像您期望的那样一一创建,这会导致特异性问题。
//create two classes and their media queries
._responsive-margins-top( 1, 6px );
._responsive-margins-top( 7, 60px );
//globals
@screen-xs: 480px;
@screen-sm: 768px;
@screen-md: 992px;
@screen-lg: 1200px;
//////////////////////////////////////| MARGINGS MIXIN
/*
* MARGINS-TOP
*
* @param @el {string} Element name appendix, We use numbers
* @param @value {margin} Space for this margin, We use px
*/
._responsive-margins-top( @el, @value ) {
@xs: ~"top-margin@{el}-xs";
@sm: ~"top-margin@{el}-sm";
@md: ~"top-margin@{el}-md";
@lg: ~"top-margin@{el}-lg";
.@{xs},
.@{sm},
.@{md},
.@{lg} {
&:extend(.no-top-margin-xs all);
}
//////////////////////////////////////| XS
.@{xs} {
margin-top: @value;
}
//////////////////////////////////////| SM
@media (min-width: @screen-sm) {
.@{sm} {
margin-top: @value;
}
}
//////////////////////////////////////| MD
@media (min-width: @screen-md) {
.@{md} {
margin-top: @value;
}
}
//////////////////////////////////////| LG
@media (min-width: @screen-lg) {
.@{lg} {
margin-top: @value;
}
}
}
这个的输出如下:
.top-margin1-xs {
margin-top: 6px;
}
@media (min-width: 768px) {
.top-margin1-sm {
margin-top: 6px;
}
}
@media (min-width: 992px) {
.top-margin1-md {
margin-top: 6px;
}
}
@media (min-width: 1200px) {
.top-margin1-lg {
margin-top: 6px;
}
}
.top-margin7-xs {
margin-top: 60px;
}
@media (min-width: 768px) {
.top-margin7-sm {
margin-top: 60px;
}
}
@media (min-width: 992px) {
.top-margin7-md {
margin-top: 60px;
}
}
@media (min-width: 1200px) {
.top-margin7-lg {
margin-top: 60px;
}
}
.top-margin1-xs {
margin-top: 6px;
}
.top-margin7-xs {
margin-top: 60px;
}
@media (min-width: 768px) {
.top-margin1-sm {
margin-top: 6px;
}
.top-margin7-sm {
margin-top: 60px;
}
}
@media (min-width: 992px) {
.top-margin1-md {
margin-top: 6px;
}
.top-margin7-md {
margin-top: 60px;
}
}
@media (min-width: 1200px) {
.top-margin1-lg {
margin-top: 6px;
}
.top-margin7-lg {
margin-top: 60px;
}
}
感谢任何帮助。我怀疑这在 Less 中可能是不可能的?
【问题讨论】:
标签: less mixins less-mixins