私はextend
のメディアクエリーを探していますが、extend
は正しいことではありません。mixin出力を減らす
私はそれぞれについてクラスとメディアクエリを作成するはずのミックスインを持っています。残念ながら、私の現在のmixinは、あなたが特定の問題を引き起こすと予想するように、それらを1つずつ作成します。
//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: ~"[email protected]{el}-xs";
@sm: ~"[email protected]{el}-sm";
@md: ~"[email protected]{el}-md";
@lg: ~"[email protected]{el}-lg";
[email protected]{xs},
[email protected]{sm},
[email protected]{md},
[email protected]{lg} {
&:extend(.no-top-margin-xs all);
}
//////////////////////////////////////| XS
[email protected]{xs} {
margin-top: @value;
}
//////////////////////////////////////| SM
@media (min-width: @screen-sm) {
[email protected]{sm} {
margin-top: @value;
}
}
//////////////////////////////////////| MD
@media (min-width: @screen-md) {
[email protected]{md} {
margin-top: @value;
}
}
//////////////////////////////////////| LG
@media (min-width: @screen-lg) {
[email protected]{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;
}
}
what I need is this
:
.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で可能でないかもしれないと思う?
これは素晴らしい見えますが、ただ1つの予約。私は後でコードに '.responsive-marginins-top'を追加する必要があり、それによって、まだ予期していない別のクラスを追加する必要があります。あなたの解決策は私がすでにすべてを知っていることを前提としています。 – Dominik
@Dominik:後で別のクラスが必要なときは、コードを編集する必要があります。そのため、mixinを再度呼び出す代わりに、以前の呼び出しを編集するだけです。必要に応じていつでも編集できるように、コールを親ミックスインとファイルの最後に配置します。これ以外にも、私はLessソリューションはないと思っています。( – Harry
Thabks Harry。私たちは会社のフレームワークを書いており、フロントエンドの人たちがソースを編集しないようにしています。 – Dominik