gpt4 book ai didi

css - 绝对定位元素内的原生滚动条

转载 作者:技术小花猫 更新时间:2023-10-29 11:04:03 26 4
gpt4 key购买 nike

我在使用 position: absolute 的元素上遇到滚动条问题。我遇到的行为是 chrome 21 和 firefox 15 在框内显示滚动条,调整其内容的大小从而隐藏一些文本,但是 opera 12 和 internet explorer 9 也在内部显示它,但没有调整其内容的大小和调整大小而不是盒子(我认为这是正确的,因为盒子没有定义宽度)。有什么解决方案可以使这 4 种浏览器看起来一样吗?

JsFiddle:http://jsfiddle.net/Kukkimonsuta/GaMD7/2/

编辑:正如 Siva Charan 指出的那样,当 overflow-y 设置为“滚动”时它可以正常工作,但是它总是显示滚动条,这是不需要的

编辑:我的最终解决方案基于 Siva Charan 的答案和 anonymous down voting is lame

http://jsfiddle.net/Kukkimonsuta/GaMD7/15/

function updateAutoScroll(element) {
var $element = $(element);

if (element.scrollHeight > element.clientHeight)
$element.css("overflow-y", "scroll");
else
$element.css("overflow-y", "auto");
}

最佳答案

在所有浏览器中动态执行此操作的唯一方法是使用 JavaScript,为简单起见,我使用了 jQuery。

http://jsfiddle.net/iambriansreed/mYuQx/

$(function(){

// loops through each container
$('.container').each(function(){
if(this.scrollHeight>this.clientHeight)
$(this).children().wrapAll(
'<div style="padding-right:'+scrollbarWidth()+'px;"/>'
);
});

// gets the browsers current scrollbar width
function scrollbarWidth() {
var parent, child, width;
if(width===undefined) {
parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body');
child = parent.children();
width = child.innerWidth() -
child.height(99).innerWidth();
parent.remove();
}
return width;
};

});

关于css - 绝对定位元素内的原生滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12352851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com