css的cacl可以让渲染器动态计算出某一属性值,如calc(100% - 80px)
,注意减号两边要有空格。但是,这样的calc却无法依据元素的其他属性值计算某一属性值,比如伪代码width:calc(100% - left)
是不成立的。如果一定要这么做,也是有迂回的解决方案,不过不能纯靠css了,要在left属性发生变化时,调用js,将left属性复制到以双横线起始的css变量中:
css
div{--x:80px;left:80px;width:calc(100% - var(--x));}
js,当left属性变化时:
e.style.setProperty('--x', e.style.left);
var 安卓4的webview不支持。