我有 jquery accorion id#accordion
和 header class name 中的一些内容.simpleColor
。现在我想给 .simpleColor 一个计算好的边距。在伪......它看起来像这样,
.simpleClass {
margin-left: ((#accordion.width/2) - (.simpleColor.width/2));
}
如果可能的话,我愿意使用任何其他技术(如 javascript)来实现这一点。
我有 jquery accorion id#accordion
和 header class name 中的一些内容.simpleColor
。现在我想给 .simpleColor 一个计算好的边距。在伪......它看起来像这样,
.simpleClass {
margin-left: ((#accordion.width/2) - (.simpleColor.width/2));
}
如果可能的话,我愿意使用任何其他技术(如 javascript)来实现这一点。
有一个名为calc的 CSS 函数开始得到很好的支持。语法如下:
width: calc(50% - 100px);
(请注意,运算符周围的空格很重要)
这允许在 CSS 中实现真正的动态计算支持。使用预处理器,您只能将静态长度与静态长度以及相对长度与相对长度结合起来。
此时 calc 已获得广泛支持,应该可以安全使用,除非您有支持旧版浏览器的特定需求。
jQuery('.simpleClass').css('margin-left', (jQuery('#accordian').width() / 2) - (jQuery('.simpleColor').width() / 2) + 'px');
应该做你想做的事。但是你需要在 javascript 中做这样的事情,你不能在纯 CSS 中做到这一点,除非 #accordian 和 .simpleColor 的宽度是预先知道的(因此是预先计算好的)。
我相信 CSS 应该是纯样式定义。我不喜欢将一些计算与它混合在一起。我会在我的 javascript 中这样做
var accWidth=parseInt($("#accordion").css("width").replace("px",""));
var simpWidth=parseInt($(".simpleColor").css("width").replace("px",""));
var marginLeft=((accWidth/2)-(simpWidth/2));
$(".simpleClass").css("margin-left",marginLeft);