Pregunta

Estoy tratando de hacer frente a un error de Internet Explorer 7 en mi solicitud. Aquí está el código HTML / CSS

<div style="margin-left: 320px">
    <form method="post" action=""><fieldset>
        <textarea name="prj_comment" id="prj_comment" rows="5" cols="50" 
                  style="margin: 0; padding: 0"></textarea>
    </fieldset></form>
</div>

En Firefox / Opera / Webkit / IE6 que está bien, pero en el área de texto IE7 tener un 100px margen izquierdo. Si alguien tiene una punta para corregir esto, muchas gracias!

Aquí está una captura de pantalla de Internet Explorer 7 muestra esta muestra de HTML:

http://daneel.net/pub/img/ie7_bug_decalage.jpg

¿Fue útil?

Solución

Cosas raras. De hecho, me sale un (= padre margen div) 320px en IE7.

Puede sobrescribir con una única IE7 margen negativo, pero eso es horrible ...

EDIT: OK, no tengo ni idea de por qué esto funciona, pero funciona. este es sin duda un error:

<div style="margin-left: 320px; display:inline-block;">
    <form method="post" action=""><fieldset>
        <textarea name="prj_comment" id="prj_comment" rows="5" cols="50" 
                  style="margin: 0; padding: 0"></textarea>
    </fieldset></form>
</div>

Otros consejos

Esto parece el bug margen heredado (similar pero diferente del error de doble margen con flotadores). El área de texto está heredando el margen de la div alrededor de la forma. Localización ¿Todo lo describe con más detalle .

Las soluciones prácticas son:

  • Dar el área de texto un margen izquierdo negativo de -320px (para IE sólo, obviamente).
  • Poner un elemento en línea antes de que el área de texto, pero dentro del grupo de campos. Parece que se puede definir el estilo para mostrar:. Ninguno, pero el elemento no puede estar vacía
  • Envolver el área de texto en un / cualquier-otra-etiqueta div / span con tal de que no tiene ninguna regla de estilo que le da la disposición (que en realidad habría pensado que la forma o conjunto de campos iban a arreglarlo, pero parece que Don 't).

Parece ser un error con el estilo por defecto de IE para

. Mi conjetura sería que internamente, IE es fieldsets de estilo utilizando el código de activación float y el infame Double- bug margen .

Me las arreglé para derrotar el error simplemente poniendo un contenedor

directamente en el interior
.

otra solución (también horrible) sería añadir el &nbsp; justo en frente de <textarea> ... pero en mi humilde opinión, yo estoy bien con la lucha contra los insectos IE sucios con soluciones drity ... el fuego con fuego si se quiere ...;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top