在SASS中,有没有一种方法可以获取当前元素的设置宽度?

5

如何让绝对定位的元素水平居中?我需要将当前宽度除以2并设置为负的左边距值。但我不想这样做:

#elem {
    width: 75px;
    margin-left: -(75/2)px;
}

现在我如果更新宽度,就必须在两个地方进行更新。那么,在SASS中是否有一种方式可以引用当前选择器的设置宽度呢?

伪代码:

#elem {
    width: 75px;
    margin-left: -(this.width/2)px;
}
2个回答

4

我本来也想建议与@GEspinha相同的方法,但如果您要在许多不同元素上执行此操作,使用mixin可能是值得的:

@mixin absolute-width($width) {
    margin-left: -($width/2);
    width: $width;
}

#elem {
    @include absolute-width(75px);
}

#elem2 {
    @include absolute-width(50px);
}

2

最简单灵活的实现方式是创建一个变量并在类中使用它。在SASS中仍然无法定位元素的特定属性值。

$var: 75px;

#elem {
    width: $var;
    margin-left: -($var/2);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接