Подтвердить что ты не робот

Сокращение CSS для позиционирования

Есть ли сокращение для top right bottom left или для width и height?

У меня много css, как это

#topDiv {
    position:absolute;
    top:0px;
    left:0px;
    right:0px;
    height:100px;
}
#centerDiv {
    position:absolute;
    top:100px;
    bottom:120px;
    left:0px;
    right:0px;
}
#consoleDiv {
    position:absolute;
    left:0px;
    right:0px;
    bottom:0px;
    height:120px;
}

Я хотел бы сделать что-нибудь подобное

position: absolute 10px 50px 50px 100px;

или

size: 400px 200px; 
4b9b3361

Ответ 1

Не существует коротких рук для объединения всех этих значений. Все это разные свойства, в отличие от, например, background, который имеет цвета, изображения, позиции и повторяющиеся инструкции и как таковые могут быть объединены в короткую форму.

Если вам действительно нужен этот тип управления, вы можете использовать что-то вроде SASS и создать mixin.

Ответ 2

Ответ - нет, поскольку они являются разными свойствами, поэтому их нельзя комбинировать. Однако вы можете немного упростить свой CSS, а не повторять определенные свойства, например:

#topDiv,
#centerDiv,
#consoleDiv {
    position:absolute;
    left:0;
    right:0;
}
#topDiv {
    top:0;
    height:100px;
}
#centerDiv {
    top:100px;
    bottom:120px;
}
#consoleDiv {
    bottom:0;
    height:120px;
}

Ответ 3

Если вам нужна стенография этого, вам нужно будет сделать так называемое микширование с Сасс. Не знаете, что это такое? Посмотрите это!

@mixin position($position, $args) {
  @each $o in top right bottom left {
        $i: index($args, $o);

    @if $i and $i + 1< = length($args) and type-of(nth($args, $i + 1)) == number  {
          #{$o}: nth($args, $i + 1);
    }
  }

  position: $position;
}

@mixin absolute($args) {
        @include position("absolute", $args);
}

@mixin fixed($args) {
        @include position("fixed", $args);
}

@mixin relative($args) {
        @include position("relative", $args);
}

Здесь ссылка, которая объясняет это:

http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/

Ответ 4

Я только что нашел это, искал то же самое, в итоге я использовал sass для верхнего, нижнего, левого, правого

вот мое решение

@mixin position($top, $right: $top, $bottom: $top, $left: $right) {
    top: $top;
    right: $right;
    bottom: $bottom;
    left: $left;
 }

работает как большинство сокращений css

@include position(5) // all 4

@include position(5,4) // vertical, horizontal

@include position(5,4,3) // top, horizontal, bottom

@include position(5,4,3,2) // top, right, bottom, left