2009-05-14 6 views
5

Me estoy enseñando CSS a través de libros y sitios web. He creado un sitio simple con un cuadro centrado seguido de dos columnas, y se muestra bien en Firefox 3 y Safari 3, pero no en IE7. Mi columna derecha permanece a la derecha, pero se empuja hacia abajo para que comience donde termina la columna izquierda. He visto muchos blogs sobre hacks de IE, pero no sé a cuál aplicar, o dónde debería agregarse en mi código. ¡Algún consejo sería de gran aprecio!¿Por qué mis dos columnas no se alinean correctamente en IE7?

Aquí es mi 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; 
} 

y este es mi 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

El sitio web se ve interesante :) – RSolberg

+3

Estoy de acuerdo, no GOV HEALTH CARE! –

+2

¡Eso es de lo que estoy HABLANDO! – jlembke

Respuesta

5

Creo que se está perdiendo el flotador justo en #rightcolumn

#rightcolumn { 
    float: right; 
} 

Usted podría también podrá eliminar estos valores de #rightcolumn.

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

Intenté agregar el flotador: justo antes, pero no pasó nada. Esta vez agregué float: right y eliminé los márgenes como sugeriste, ¡y funcionó en IE7! Y todavía funciona en los otros navegadores. ¡Muchas gracias por su ayuda! –

+0

No hay problema. Encantado de ayudar. Buena suerte con el sitio :) – RSolberg

3

Esto es lo que he hecho por tres divs columna (izquierda, central y derecha son todos los divs)

los tres llegará a ser 310px con 10px entre medio (un total de 950 píxeles), puede ajústelo para que se ajuste a sus dimensiones.

El truco está en el div medio, básicamente ocupa el espacio de toda la 'fila' pero tiene suficiente relleno para borrar los contenidos de los divs izquierdo y derecho que 'flotan' en la parte superior del div medio.

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

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

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