CSS高度问题。 IE8似乎正确Firefox似乎错了。任何修复?

时间:2010-03-31 19:28:47

标签: html css

下面是一个显示问题的完整html页面。

“myDiv”的高度应为22px(包括边框)。第1项在其边框与“myDivs”边框之间应有1px的空间。在IE8中它是。

在FF 3.6.2虽然它是24px但我不明白为什么。最终我的目标是使用相同的CSS在两个浏览器中创建相同的结果。

这让我发疯了!任何帮助将不胜感激:)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title></title>
        <style type="text/css">
            div.aclb {background:#EEF3FA; color:#666; cursor:text; padding:1px; overflow-y:auto; border:#BBC8D9 1px solid; }
            div.aclb:hover {border:#3399FF 1px solid;}
            div.aclb.focus {background:#FFF; border:#3399FF 1px solid;}
            div.aclb ul {padding:0; margin:0; list-style:none; display:table; vertical-align:middle; }
            div.aclb li {float:left; cursor:default; font-family:Arial; padding:0; margin:0;}
            div.aclb li.block {padding:0px 2px; height:16px; white-space:nowrap; border:solid 1px #BBD8FB; background:#f3f7fd; font-size:11px; line-height:16px;}
            div.aclb li.block:hover {border:solid 1px #5F8BD3; background:#E4ECF8; color:#000;}
            div.aclb li.input {}

            div.aclb input {margin:0; padding:0; height:18px; background:transparent; border:none; color:#666; overflow:hidden; resize:none; font-family:Arial; font-size:13px; outline:none;}
            div.aclb input:focus {margin:0; padding:0; height:18px; background:transparent; border:none; color:#22F; overflow:hidden; resize:none; font-family:Arial; font-size:13px; outline:none;}

            div.aclb a.d {cursor:pointer; display:block; color:#6B6B6B; width:13px; height:12px;float:right; margin:1px 0 1px 4px; border:solid 1px transparent; font-family:Verdana; font-size:11px; text-align:center;  line-height:10px;}
            div.aclb a.d:hover { border:solid 1px #7DA2CE; background:#F7FAFD; color:#AD0B0B;}
            div.aclb a.d:active {border:solid 1px #497CBB; background:#BAD8E8; color:#A90909;}
        </style>
    </head>
    <body>

    <div id="myDiv" style="width:250px" class="aclb">
        <ul>
            <li class="block">
                <a class="d">x</a><span>Item 1</span>
            </li>
            <li class="input">
                <input type="text" style="width:30px" maxlength="30"/>
            </li>
        </ul>
    </div>

    </body>

    </html>

2 个答案:

答案 0 :(得分:2)

我刚刚在firefox中查看过,感谢firebug,问题就在于li.input。它太高了,可能是因为浏览器默认设置,并推动容器更高。

div.aclb li.input设置为高度为18px或更低。对我来说,至少,它将它修复为FF。

答案 1 :(得分:0)

您是否尝试过使用CSS条件? http://www.quirksmode.org/css/condcom.html我知道你说你想为两者使用相同的CSS,但这可能会更快地解决问题。只需为IE设置一组CSS,为其他人设置一组。如果这不起作用,请告诉我。我会深入挖掘,看看能否找到通用解决方案。