表格内的UL高度为0px?

Mat*_*abe 1 html css safari firefox google-chrome

我有一个特定的问题,我能够用一个特定的结构,并且我不完全确定为什么.

下面是这样的情况:设计一个专门为iPad服务的网站,所以我在Windows Safari中进行了大部分开发(其他浏览器并不重要).jQTouch通常会为每个页面创建<ul>包含<li>项目的页面,因此我的表单包含所有这些内容.我遇到的一个特殊问题是,当我<ul><form>标签之外有一个块时,它会正确显示(如同,它会拉伸<ul>以匹配其内容所需的任何高度).目视检查这个的简单方法是查看背景颜色<ul>.然而,每当我把它放入一个form标签时,它就<ul>不能再告诉其内容的高度,并且Safari会分配它height: 0px(在第一个例子中,它分配了一个像素数量,它是用其内容的高度来计算的,==正确)

试图在示例中仅提取重要的HTML标记和CSS样式 - 复制Safari应用于每个标记的复合CSS,以便准确显示我的应用程序在所有类中生成的内容等,并有目的地使用模糊的选择器例:

CSS:

div {
    -webkit-box-flex: 1;
    -webkit-box-orient: vertical;
    -webkit-transform: matrix(1, 0, 0, 1, 0, 0);
    -webkit-user-select: none;
    background-color: #DADFE3;
    background-image: -webkit-repeating-linear-gradient(left, transparent, transparent 1px, #D4DADF 1px, #D4DADF 7px);
    bottom: auto;
    display: -webkit-box;
    font-family: 'Helvetica Neue', Helvetica;
    left: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 0px;
    min-height: 100%;
    overflow-x: hidden;
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    position: absolute;
    right: auto;
    top: 0px;
    width: 1406px;
    z-index: 10;
}

form {
    -webkit-margin-after-collapse: separate;
    -webkit-margin-before-collapse: separate;
    -webkit-user-select: none;
    bottom: auto;
    display: inline-block;
    font-family: 'Helvetica Neue', Helvetica;
    height: 671px;
    left: auto;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 0px;
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    position: static;
    right: auto;
    top: auto;
    width: 1406px;
}

ul {
    -webkit-box-shadow: rgba(255, 255, 255, 0.148438) 0px 1px 0px 0px;
    -webkit-margin-after-collapse: separate;
    -webkit-margin-before-collapse: separate;
    -webkit-user-select: none;
    background-color: maroon;
    border-bottom-color: #CACFD6;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    border-left-color: #CACFD6;
    border-left-style: solid;
    border-left-width: 1px;
    border-right-color: #CACFD6;
    border-right-style: solid;
    border-right-width: 1px;
    border-top-color: #CACFD6;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    border-top-style: solid;
    border-top-width: 1px;
    bottom: auto;
    box-shadow: rgba(255, 255, 255, 0.148438) 0px 1px 0px 0px;
    color: gray;
    display: block;
    font-family: 'Helvetica Neue', Helvetica;
    font-size: 18px;
    font-style: normal;
    font-variant: normal;
    font-weight: bold;
    left: auto;
    line-height: normal;
    list-style-type: disc;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 10px;
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    position: static;
    right: auto;
    text-shadow: white 0px 1px 0px;
    top: auto;
    width: 1335px;
    clear: both;
}

li {
    width: 40%;
    float: left;
    display: inline-block;
    height: 30px;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
    <head>
        <title>Test</title>
        <style type="text/css">
            /* CSS above here */
        </style>
    </head>
    <body>
        <div>
            <form action="/some/action" method="GET">
                <ul>
                    <li>Some items</li>
                    <li>Some items</li>
                    <li>Some items</li>
                    <li>Some items</li>
                    <li>Some items</li>
                    <li>Some items</li>
                </ul>
            </form>

            <ul>
                <li>Some items</li>
                <li>Some items</li>
                <li>Some items</li>
                <li>Some items</li>
                <li>Some items</li>
                <li>Some items</li>
            </ul>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以尝试提供更多信息 - 但是在Safari(Win)中将上述代码放在一起将会复制问题:表单内的UL没有高度,UL外部没有.

编辑:为了快速展示我在视觉上看到的东西,我拍了一个截图并指出了我所看到的: 在Windows 7上的Safari(Safari 5.1.2)中出现上述问题

编辑:显然这在Firefox中以相同的方式出现.为了这个目的,我正在做一些繁重的AJAX工作并且更熟悉Firefox的Firebug扩展,所以我检查了它在Firefox中的样子,它也出现在那里.如果没有明确设置,UL的高度为0.

j08*_*691 9

添加overflow:auto;UL标记的规则列表,或删除标记的float:left;规则LI.

overflow:auto;添加了规则的 jsFiddle示例.