Почему мои две колонки не выровнены должным образом в IE7? - PullRequest
5 голосов
/ 14 мая 2009

Я учу себя CSS через книги и веб-сайты. Я сделал простой сайт с центрированным прямоугольником, за которым следуют две колонки, и он отлично отображается в Firefox 3 и Safari 3, но не в IE7. Мой правый столбец остается справа, но толкается вниз, так что он начинается там, где заканчивается левый столбец. Я видел много блогов о взломах IE, но я не знаю, что применять, и где это должно быть добавлено в мой код. Любые советы будут с благодарностью!

Вот мой CSS:

#wrapper {
position:relative;
width:900px;
margin-right:auto;
margin-left:auto;
}

#centerbox {
background-color:#FFFFFF;
width:870px;
margin-left:auto;
margin-right:auto;
padding:10px 15px 10px 15px;
margin-bottom:30px;
text-align:left;
border:8px solid #E0BB24;
}

#leftcolumn {
float:left;
margin-left:10px;
width:410px;
padding:0px 10px 10px 10px;
color:#FFFFFF;
}

#rightcolumn {
width:395px;
margin-left:480px;
margin-right:10px;
padding:0px 15px 10px 10px;
background-color:#FFFFFF;
border:1px solid #26A9E0;
}

А это мой HTML:

<div id="centerbox" class="clear">
<h1>The physician's creed: &quot;First, do no harm&quot;</h1>
<h3>Politicians, policymakers, and public officials should take the same oauth</h3>
<p>Text</p>
</div>

<div id="leftcolumn">
<h2><img src="images/accept.png" alt="Putting Patients First" align="left"> </img>Putting Patients First</h2>
<p class="spaceafter"><a href="betterway.html">Read more about our idea of a better way to reform health care by putting patients first &raquo;</a></p>

<h2><img src="images/reject.png" alt="Principles for reform" align="left"></img>Principles for reform</h2>
<p class="spaceafter">Tell politicians in Washington you will follow these <a href="donoharm.html">principles</a> in judging any health reform proposal:</p>
<ul>
    <li>No new government-run health insurance plan</li>
    <li>No one-size government-dictated package of health benefits</li>
    <li>No new jobs-killing mandates on employers</li>
    <li>No requirement on individuals to buy this expensive coverage</li>
    <li>No federal institution that controls private health insurance</li>
    <li>No government intrusion into our medical privacy</li>
    <li>No federal government control over the practice of medicine through a federal health board, comparative effectiveness review, and other government intrusions into doctor-patient medical decision-making</li>
</ul>
<p><a href="donoharm.html">Read more &raquo;</a></p>
</div>

<div id="rightcolumn">
<h2><img src="images/signpetition.png" alt="Sign the petition" align="left">    </img>Sign the petition</h2>
<p>Dear Policymaker: I stand with millions of Americans who implore you to follow the Do No Harm principles &mdash; and do NOT destroy America's health care system!</p>
<iframe height="920px" width="400px" name="zoho-Do_No_Harm_Petition" frameborder="0" scrolling="auto" src="http://creator.zoho.com/galeninstitute/do-no-harm-petition/form-embed/Do_No_Harm_Petition/reAUnSRw7O3sfWaOssaxgN91NbXFRYWUEQ8AZ5v803j2bVG4OHpFAXkvuUuqDVX9zxfg5YMSfMD9TTeqds1OE1kbYQqSSmYbFh6Z/"></iframe>
</div>

Ответы [ 2 ]

5 голосов
/ 14 мая 2009

Я думаю, что вы пропустили поплавок прямо на # rightcolumn

#rightcolumn {
     float: right;
}

Вы также можете удалить эти значения из # rightcolumn.

margin-left:480px;
margin-right:10px; 
3 голосов
/ 14 мая 2009

Это то, что я сделал для трех столбцов div (слева, в середине и справа - div)

все три получат 310px с промежуточным 10px (всего 950px), вы можете отрегулировать его в соответствии с вашими размерами.

Трюк со средним div, он в основном занимает пространство всего «ряда», но имеет достаточно отступов, чтобы очистить содержимое левого и правого div, которые «плавают» поверх среднего div.

#left
{
    float: left;
    width: 310px;
}

#middle
{
    padding: 0px 320px 5px 320px;
}

#right
{
    float: right;
    width: 310px;
}
...