Css 使用更少的内存动态读取宽度?

Css 使用更少的内存动态读取宽度?,css,less,Css,Less,我有以下几点: &.settings-prompt .panel { margin-left: -190px; width: 380px; height: 200px; } &.create-playlist-prompt .panel { margin-left: -165px; width: 330px; height: 180px; } 基本上,我总是希望.panel的左边距为其宽度的-50%。是否可以用较少的值来表示?使

我有以下几点:

&.settings-prompt .panel {
    margin-left: -190px;
    width: 380px;
    height: 200px;
}

&.create-playlist-prompt .panel {
    margin-left: -165px;
    width: 330px;
    height: 180px;
}

基本上,我总是希望
.panel
的左边距为其宽度的-50%。是否可以用较少的值来表示?

使用纯较少值,您可以为面板创建一个参数化的mixin,然后使用它根据下面的输入参数生成
左边距。这不需要使用单独的变量,只需要使用mixin,而不是每次分配宽度。它还以更少的时间减少了代码行

更少:

&.settings-prompt .panel {
    .panel(330px);
    height: 200px;
}

&.create-playlist-prompt .panel {
    .panel(130px);
    height: 180px;
}

.panel(@width){ /* Updated based on comment by seven-phases-max */
    margin-left: (@width / -2); /* calculate -50% of width and use as margin-left */
    width: @width; /* assign the input param as width */
}
.settings-prompt .panel {
  margin-left: -165px;
  width: 330px;
  height: 200px;
}
.create-playlist-prompt .panel {
  margin-left: -65px;
  width: 130px;
  height: 180px;
}
编译输出:

&.settings-prompt .panel {
    .panel(330px);
    height: 200px;
}

&.create-playlist-prompt .panel {
    .panel(130px);
    height: 180px;
}

.panel(@width){ /* Updated based on comment by seven-phases-max */
    margin-left: (@width / -2); /* calculate -50% of width and use as margin-left */
    width: @width; /* assign the input param as width */
}
.settings-prompt .panel {
  margin-left: -165px;
  width: 330px;
  height: 200px;
}
.create-playlist-prompt .panel {
  margin-left: -65px;
  width: 130px;
  height: 180px;
}

使用jQuery:(以防万一未来的读者会寻找此选项)


如何分配宽度?它是一个变量吗?不,每个面板可以有不同的宽度。我可以为每个面板创建变量,但这似乎太多了,因为该变量将仅用于给定面板的宽度(对于左边距的数学,但希望我可以只读取面板的宽度而不需要过多的变量)。你有一个例子吗?我对LESS的唯一经验是严格使用CSS。以防万一,您不需要在mixin中删除和添加单元,
左边距:(@width/-2)
应该足够了(将保留一个单位的
@width
参数)。@seven Phase max:谢谢您的配合。我不知道直接分工会起作用。