gpt4 book ai didi

jquery - 宽度值改变但 div 的实际宽度不变

转载 作者:行者123 更新时间:2023-11-28 11:20:35 26 4
gpt4 key购买 nike

我正在处理一个更大的元素,但我对其进行了简化,以便我可以运行一些测试并尝试解决此错误。这是我为此测试创建的代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
function browserWidth(){
$('#bWidth').html( $(window).width() );
$('#foo').removeAttr();
$('#foo').attr('width', $(window).width() );
$('#dWidth').html( $('#foo').attr('width') );
}
$(window).resize(browserWidth);
</script>
<style>
body
{
background-color: black;
color: orange;
}

#foo
{
border-style: outset;
border-width: 5px;
border-color: green;
margin: 0 auto;
width: 150px;
text-align: center;
}
</style>
</head>

<body>

<div id="foo">
<h1>H1 text</h1>
<h2>H2 text</h2>
<h3>H3 text</h3>
</div>

<p>browser width: <span id="bWidth"></span></p>
<p>div width: <span id="dWidth"></span></p>

</body>

这样做的目的是改变 div 的宽度以匹配当前窗口的宽度。如果你保存它并在浏览器中打开它,你会看到底部的两个

标签更新为应该的(窗口宽度和 div 的宽度属性的值)但是 div 的宽度保持在 150px(因为它最初是在 #foo css 规则中设置的)。这尤其令人困惑,因为如果您检查该元素,您会发现 width 属性的值随着窗口大小的变化而变化

最佳答案

您需要更改样式值,而不是宽度属性

jQuery(function () {
function browserWidth() {
$('#foo').css('width', $(window).width());
$('#bWidth').html($(window).width());
$('#dWidth').html($('#foo').width());
}
$(window).resize(browserWidth).resize();//the last call to resize is to trigger a manual resize event so that the initial values will be set properly
})

演示:Fiddle

关于jquery - 宽度值改变但 div 的实际宽度不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21567879/

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