Este es un rascador de cabeza.DOCTYPE afecta la representación de la altura de línea
He creado un jsFiddle comentado para demostrar el fenómeno que encontré recientemente al usar el marco Bootstrap de Twitter para crear algunos botones desplegables.
http://jsfiddle.net/jackwanders/WKvPv/
Básicamente, cuando se utiliza un HTML 5, HTML 4 estricto DOCTYPE estricto o XHTML, el botón renders tal como fue diseñado. Sin embargo, al usar un HTML4 o XHTML Transitional DOCTYPE, el botón de intercalación se renderiza con una altura más corta. Aquí está la CSS relevante de Bootstrap para el <span class="caret">
(He quitado estilos que no tienen importancia, como los colores y los gradientes):
.caret {
display: inline-block;
width: 0;
height: 0;
vertical-align: top;
border-top: 4px solid #000000;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
content: "";
}
.btn .caret {
margin-top: 7px;
margin-left: 0;
}
.btn {
display: inline-block;
*display: inline;
padding: 4px 10px 4px;
margin-bottom: 0;
*margin-left: .3em;
line-height: 18px;
*line-height: 20px;
text-align: center;
vertical-align: middle;
}
¿Por qué afecta el DOCTYPE la altura del botón? Si line-height
se establece en 18px, ¿por qué la altura sería inferior a 18px?
PS - Sí, soy consciente de que Bootstrap requiere HTML5, pero me imagino que es con respecto al HTML 5 características que se utilicen, no cómo el DOCTYPE hace que los estilos CSS
Los DOCTYPEs de transición disparan lo que se llama modo casi estándar, que básicamente es el modo estándar con algunas peculiaridades. Como esto tiene que ver con el modelo de caja, * puede * encontrarse con uno de esos caprichos, pero no estoy seguro ... – BoltClock
Hace poco encontré [esta página de Microsoft] (http: // msdn. microsoft.com/en-us/library/ff405794%28v=vs.85%29) que describe las diferencias de manejo de altura de línea del modo casi estándar. Lo discuto en [esta respuesta] (http://stackoverflow.com/questions/11206730/html5-vs-html4-h1-tag-rendered-with-extra-space-how-to-remove/11217791#11217791) que también es relevante para tu pregunta. En particular, es la ausencia del manejo del puntal lo que causa la diferencia que usted ve. – Alohci
Solo haga clic en este problema. es 2016 afuera, pero todavía estamos lidiando con los mismos problemas :(¡gracias por su respuesta de todos modos! – vmg