正如其他人所提到的那样,没有办法仅使用CSS来调整基于滚动条件的div的宽度.
您可以找到一个解决方法,例如将固定宽度为demo here中的滚动条的宽度.这是一个简单有效的scollbar出现在您的内容中,但滚动条出现时不会更改容器的宽度.
CSS无法根据滚动条存在设置容器的条件宽度,如:
>如果我有一个滚动条给我这个宽度
>如果我没有滚动条,请给我另一个宽度
所以为了达到这个确切的行为,你不能使用CSS.
我写了这个简单的JS(没有库需要它是轻量级的)代码,给你你正在寻找的行为:
var div= document.getElementById('ListHolder');
var hasVerticalScrollbar= div.scrollHeight>div.clientHeight;
if (hasVerticalScrollbar > 0) {
div.style.width = '530px' ;
}
现在,这只适用于页面加载.如果您在窗口调整大小时还需要此行为,则可以添加:
window.addEventListener( 'resize',function( event ) {
var hasVerticalScrollbar= div.scrollHeight>div.clientHeight;
if (hasVerticalScrollbar > 0) {
div.style.width = '530px' ;
}
else{
div.style.width = '500px' ;
}
},false );
对于独角兽爱好者的注意事项,我知道四月份已经完成,但在演示中有一个晚期的复活节彩蛋