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外部没有.
编辑:为了快速展示我在视觉上看到的东西,我拍了一个截图并指出了我所看到的:

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