填充问题IE8 v IE7

时间:2010-08-24 14:47:11

标签: css internet-explorer-8 internet-explorer-7 padding ie8-compatibility-mode

我已经阅读了一些以前的文章,处理我在IE8和早期版本(IE7,6)之间遇到的填充问题。我已经尝试过重置我之前提到的CSS,但没有运气。任何帮助将不胜感激。提前谢谢!

最好用屏幕截图(见下文)说明这个问题,但在我附上的CSS中,我很确定问题存在于header_left和header_center中的填充中,这在IE6 / 7中没有得到正确反映。我的网站总宽度总是达到980px,所以我的数学还可以......

IE6或7(问题) alt text

IE8(没问题) alt text

这是我的HTML代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>Application Form</title>
<link href="xyx.css" rel="stylesheet" type="text/css" />

</head>
<body bgcolor="#999999">
<div class="wrapper">

<div class="header_separator"></div>

<div class="header_left"></div>

<div class="header_center">
<h2> Lorem ipsum dolor sit amet</h2>
  <h2> consectetur adipiscing elit </h2>
  <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin a nulla at nunc iaculis pretium. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse pellentesque dui quis urna volutpat a posuere nibh imperdiet.</p>
</div>

<div class="header_right"></div>

<div class="header_separator">
<hr align="center" color="#00B050" size="5">
</div>

<div class="body_left">
<h3> Lorem ipsum dolor:</h3>
    <ul class=noBulletIndent>
      <li> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin a nulla at nunc iaculis pretium. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse pellentesque dui quis urna volutpat a posuere nibh imperdiet. Donec eu tellus eu augue pellentesque venenatis ac v</li>
      </ul>
</div>

<div class="body_right">
<form action="insert.php" method="post">
<table width="630" border="0" cellspacing="0" cellpadding="0">
<tr height=40 valign="top">
<td width="200"><p><strong>Company Name:</strong></p></td>
<td width="430"><input name="companyname" type="text" id="companyname" size="40" /></td>
</tr>
<tr height=40 valign="top">
<td width="200"><p><strong>Company Website:</strong></p></td>
<td width="430"><input name="website" type="text" id="website" size="40" /></td>
</tr>
<tr height=125 valign="top">
<td width="200"><p><strong>Company Description:</strong></p></td>
<td width="430"><textarea name="description" id="description" rows="6" cols="40"></textarea></td>
</tr>
<tr height=40 valign="top">
<td width="200"><p><strong>Primary Contact Person:</strong></p></td>
<td width="430"><input name="contactperson" type="text" id="contactperson" size="40" /></td>
</tr>
<tr height=40 valign="top">
<td width="200"><p><strong>Contact Person Email:</strong></p></td>
<td width="430"><input name="contactemail" type="text" id="contactemail" size="40" /></td>
</tr>
<tr height=40 valign="top">
<td width="200"><p><strong>Contact Person Phone:</strong></p></td>
<td width="430"><input name="contactphone" type="text" id="contactphone" size="40" /></td>
</tr>
<tr>
</table>
<table width="630" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="300">
<?php
      require_once('recaptchalib.php');
      $publickey = "xyz";
      echo recaptcha_get_html($publickey);
?>
</td>
<td width="330" align="left" valign="bottom">
<input type="image" name="submit_acre" id="submit_acre" src="images/acre_submit.png" />
</td>
</tr>
</table>
</form>
</div>

</div>
</body>
</html>

这是我的xyz.css:

@charset "utf-8";
/* CSS Document */
.mainbody{
    margin-left: auto;
    margin-right: auto;
    width:980px;
    word-spacing: normal;
}
.wrapper {
    height: 100%;
    width: 980px;
    margin-right: auto;
    margin-left: auto;
}
.header_separator {
    background-color: #FFF;
    height: 10px;
    width: 980px;
    float: left;
    vertical-align: middle;
}
.header_left {
    background-color:#FFF;
    height:122px;
    width:110px;
    float: left;
    vertical-align: middle;
    padding-left: 10px;
}                       
.header_center {
    background-color: #FFF;
    height: 122px;
    width: 630px;
    float: left;
    font-family: arial;
    vertical-align: top;
    text-align: left;
    padding-left: 10px;
    padding-right: 10px;
}
.header_right {
    background-color: #FFF;
    height: 122px;
    width: 210px;
    float: left;
    vertical-align: middle;
}           
.body_left{
    background-color:#FFF;
    height:490px;
    width:300px;
    float:left;
    font-family: arial;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 10px;
}                       
.body_right{
    background-color:#FFF;
    height:490px;
    width:650px;
    float:left;
    padding-top: 10px;
    padding-left: 10px;
}
.noBulletIndent {
    padding: 0px;
    margin-left: 12px;
    margin-top: 0px;
}
p {
    margin: 0px;
    padding: 0px;
    font-family: Arial;
    font-size: 14px;
}
h2 {
    margin: 0px;
    padding: 0px;
    font-family: arial;
}
h3 {
    margin: 0px;
    padding: 0px;
    font-family: arial;
    font-size: 15px;
}
li {
    margin: 0px;
    padding: 0px;
    font-size: 14px;
    margin-left: 4px;
}

3 个答案:

答案 0 :(得分:4)

这真的是你的完整HTML吗?如果是这样,您处于没有doctype的怪癖模式。还要记住,IE6不能像IE7一样工作,IE8不能像IE9一样工作。 (祝大家好运!)

答案 1 :(得分:0)

首先在没有doctype的情况下,您正在以怪癖模式运行。

其次,我不太确定你的问题是什么......是HR上方和下方的填充是否会破坏正确的灰色条?如果是这样,可以通过快速重置HR来解决这个问题。

hr { padding:0px; margin:0px; }

答案 2 :(得分:-1)

我会在右边的侧边栏上放置一个overflow-x:hidden;,例如你的内容div或其他什么,以确保它不会超过你指定的任何像素,因为IE6 / IE7允许元素超出宽度。

如果不这样做的话,一个jsfiddle也会帮助在视觉上看到问题。