2012-04-10 114 views
0

我在IE7中遇到了一个简单的问题。Html css IE7内联块

在FF和其他浏览器中,我没有问题。

<form class="hotline_form"> 
    <fieldset> 
     <legend>TEST</legend> 
     <div class="field"> 
      <label class="question">Name:</label><input name="name" type="text"> 
     </div> 
     <div class="field"> 
      <label class="question">Username:</label><input name="name" type="text"> 
     </div> 
    </fieldset> 
</form> 

我的CSS样式:

form.hotline_form{ 
    margin:0; padding: 0; 
} 
form.hotline_form fieldset{ 
    border: 0; 
    padding: 0; 
    margin: 25px 0 0 0; 
} 
form.hotline_form fieldset legend{ 
    width: 100%; 
    padding: 0px 0px 5px 0px; 
    margin: 5px 0px 5px 0px; 
    border-bottom: 1px solid #999; 
} 
form.hotline_form fieldset div.field label{ 
    display: inline-block; 
    width: 130px; 
    padding: 0pt 20px 0pt 0pt; 
    margin-top:5px; 
    vertical-align: top; 
    zoom:1; *display: inline; _height: 15px; /* IE7 fix*/ 
} 
form.hotline_form fieldset div.field input, form.hotline_form fieldset div.field select, form.hotline_form fieldset div.field textarea{ 
    width: 330px; 
    margin: 5px 0px 0px 0px; 
    padding: 1px 0px 1px 0px; 
} 
form.hotline_form div.submit{ 
margin: 40px 0 0; 
padding: 0 0 5px; 
width: 100%; 
} 
form.hotline_form div.submit input{ 
    float: right; 
    padding: 0px 7px 0px 0px; 
} 

注意修复我曾尝试

zoom:1; *display: inline; _height: 15px; /* IE7 fix*/ 

我从http://flipc.blogspot.com/2009/02/damn-ie7-and-inline-block.html

在Firefox中显示,像这样:

enter image description here

和IE7:

enter image description here

+0

你有没有尝试删除您的修复程序为IE 7? IE 7默认支持'display:inline'元素的'inline-block',其中包括'

回答

1

我通常加载不同的.css文件的Internet Explorer,它让我的代码清洁:

<!--[if IE 7]> <link href="ie7.css" rel="stylesheet" type="text/css"> <![endif]--> 
<!--[if IE 8]> <link href="ie8.css" rel="stylesheet" type="text/css"> <![endif]--> 
0

看到这个很多的IE浏览器,它与IE浏览器如何格式化什么代码告诉它做

你最好的一个问题是使用使用JS以确定哪些浏览器正在运行再建一个用于IE的自定义样式表。这里有一些链接,以帮助

http://javascript.about.com/library/blbrsdet.htm

http://www.w3schools.com/js/js_browser.asp

祝您好运给你:)

+1

“最好的选择是使用JS来识别正在运行的浏览器,然后为IE构建一个自定义样式表。”[实际上并非如此。](http://www.quirksmode.org/css/condcom.html) – 2012-04-10 12:50:46

+0

Works 100%对我很好 – 2012-04-10 12:51:49

+0

当然,但它是不必要的JavaScript,并且在JavaScript关闭时不起作用。 – 2012-04-10 12:54:13

0

我会给div.field溢出:隐藏,然后浮动:左;无论是标签还是输入,都要确保为浮动元素使用边距时,给它们一个显示:inline;

没有必要的黑客,适用于所有浏览器,您可以为标签和输入设置高度和行高。