2009-05-14 5 views
5

Uczę się CSS poprzez książki i strony internetowe. Zrobiłem prostą stronę z wyśrodkowanym pudełkiem, po której następują dwie kolumny, i wyświetla się dobrze w Firefoksie 3 i Safari 3, ale nie w IE7. Moja prawa kolumna pozostaje po prawej stronie, ale jest przesunięta w dół, tak aby zaczynała się tam, gdzie kończy się lewa kolumna. Widziałem wiele blogów na temat hacków IE, ale nie wiem, który z nich zastosować, ani gdzie powinien on zostać dodany w moim kodzie. Wszelkie wskazówki będą mile widziane!Dlaczego moje dwie kolumny nie są poprawnie wyrównane w IE7?

Oto mój 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; 
} 

I to jest mój 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> 
+3

Strona wygląda interesująco :) – RSolberg

+3

Zgadzam się, nie dbam o zdrowie GOV! –

+2

Właśnie o tym mówię! – jlembke

Odpowiedz

5

Myślę, że jesteś brakujące pływaka tuż #rightcolumn

#rightcolumn { 
    float: right; 
} 

Mógłbyś również można usunąć te wartości z #rightcolumn.

margin-left:480px; 
margin-right:10px; 
+0

Próbowałem dodać float: tuż przed, ale nic się nie stało. Tym razem dodałem float: right i usunąłem marginesy zgodnie z sugestią, i zadziałało to w IE7! I nadal działa w innych przeglądarkach. Dziękuję bardzo za Twoją pomoc! –

+0

Bez problemu. Miło, że mogłem pomóc. Powodzenia ze stroną :) – RSolberg

3

To co mam zrobić dla trzech div kolumn (lewy, środkowy i prawy są DIV)

wszystkie trzy wyjdzie za 310px z 10px pomiędzy nimi (łącznie 950px), można dostosuj to do swoich wymiarów.

Sztuczka dotyczy środkowego elementu div, w zasadzie zajmuje całe pole "wiersza", ale ma wystarczającą ilość wypełnienia, aby wyczyścić zawartość lewego i prawego elementu div, który "unoszą się" na środku środkowego elementu div.

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

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

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