html - 调整内部内容大小时,字段集不调整大小

标签 html css

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 <style type="text/css">
        .box
        {
            background-color:Gray;
            width:300px;
            height:400px;
            position:relative;
            padding-top : 50px;
            padding-bottom : 50px;
            padding-left : 50px;
            padding-right : 50px;
        }

        fieldset
        {
            border-color : Red;
            width : 50% !important;
            padding-top : 50px;
            padding-bottom : 50px;
            padding-left : 50px;
            padding-right : 50px;
        }
 </style>
<script type="text/javascript">
    $(document).ready(function () {
        $("#resizable").resizable();
    });
</script>
</head>
<body>
<fieldset id="fdemo">
<div id="resizable" style="width: 100px; height: 100px;" class='box'></div>
</fieldset>
</body>
</html>

上面附上了带有字段集和字段集中可调整大小的 div 的 html 代码。

我的用户可以将 div 的大小调整为他希望的任何宽度。在我的实际应用程序中,我还有其他可以调整大小的元素。所以这只是一个相关的演示。 如果我的用户将控件(在本例中为字段集中的 div)调整为大于字段集宽度的宽度,则字段集的宽度应增加,以便 div 包含在字段集的范围内。

当您执行上述代码并将 IE8 或 IE9 置于怪癖模式时,您会注意到实现了预期的行为,字段集的宽度增加并且 div 包含在字段集中。

但是,当文档进入标准模式(即 IE8 标准模式或 IE9 标准模式)时,调整 div 的大小不会调整字段集的大小。字段集保持原样,div 移出字段集。

我无法理解为什么会发生这种情况,也不知道可能导致此问题发生的任何属性(property)的可用性或不可用性。

我需要一个可以让上述内容在 IE7、IE8 和 IE9 上运行的解决方案。 我知道这很可能是一个与 css 相关的问题,所以我想要一个可以全局应用的 css 解决方案。

如有任何帮助,我们将不胜感激。

提前致谢。

最佳答案

我整理了一个 jsfiddle 作为起点:http://jsfiddle.net/Rwdck/1/

根据要求在 IE 9 标准模式下进行测试。

我注意到 width : 50% !important; 防止 fieldset 调整大小超过某个点(这是有道理的)。宽度看起来不均匀是因为width的计算方式是width + padding + border,所以50%实际上大于可用区域的50%(除非box-sizing设置为border-box,IE 7 不支持)。

当我删除 width : 50% !important; 时,字段集随框一起调整大小,但它从 100% 宽度开始(因为它是 block 元素),我怀疑这是所需的行为。

无论如何,我没有发现字段集未随其内容进行逻辑调整(或未调整大小)的情况。

这是一个示例,其中我删除了 fieldsets 上的宽度限制并将它们 float :http://jsfiddle.net/Rwdck/5/

这可能更接近于所需的行为,因为它提供了流畅的布局,并且 fieldsets 可以按照您的预期调整大小。我在 IE 7/8/9 标准中进行了测试,调整大小工作正常。我确实注意到 IE 7 中存在 jQuery UI 或 JSFiddle 脚本错误。

这是另一个使用 display: inline-block 的例子 - http://jsfiddle.net/Rwdck/8/

关于html - 调整内部内容大小时,字段集不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545993/

相关文章:

html - CSS/表格 : how to put two versions of a text side-by-side?

javascript - event.pageY 位置总是根据笔记本电脑屏幕大小而不是根据滚动点击位置

javascript - 为什么我从 jQuery 和 HttpHandler 获取 html 标签?

Javascript 悬停事件

具有多个类和一个 ID 的 CSS 选择器

html - (8-1) - (4-2) - (2-4) - (1-8) 响应式元素网格 - 如何用纯 CSS 解决这个问题?

css - 苹果浏览器。拖动时光标错误

html - 媒体查询、移动 Img 渲染和 Android CSS 渐变问题

jquery - iOS 上 <a href ="url"> 和 window.location = "url"有什么区别?

html - 如何制作背景和边框整个视口(viewport)但将内容保留在容器内