Llamo a $("#foobar").css("line-height")
y vuelvo a "normal". ¿Cómo traduzco esto a una cantidad de píxeles? ¿Está definido "normal" en la especificación de CSS o es específico del navegador?jQuery/CSS: altura de línea de "normal" ==? Px
Respuesta
Normal en realidad se conoce como abnormal
en several instances ya que hay una gran incoherencia del navegador.
declarar line-height: normal, no sólo variar de un navegador a otro, lo que me había esperado, de hecho, la cuantificación de esas diferencias fue el conjunto punto sino que también varían de una fuente cara a otro, y también puede variar dentro de una cara determinada.
Pensé que valía la pena ofrecer un enlace al sitio de Eric Meyer para conocer la fuente de su cita, para una lectura fascinante: http://meyerweb.com/eric/thoughts/2008/05/ 06/line-height-abnormal/ –
-1 ya que esto no se acerca a responder la pregunta. Buena información, pero debería haber sido un comentario. –
@MartinJespersen No voy a eliminar la respuesta ya que, incluso después de leerla ahora, sigo creyendo que respondí correctamente porque 'normal' es específico del navegador y, por lo tanto, no es coherente en el navegador y no debe traducirse a píxeles. Dicho esto, estoy muy agradecido de que se haya tomado el tiempo de dar su opinión sobre el voto a favor, ¡gracias! :) – Frankie
normal
es una opción válida para los line-height
por lo que no es realmente una forma de evitar que los navegadores para los que devolverán eso.
Como alternativa, puede usar .css('height')
, ya que solo contará la sección interior de un elemento, no el relleno/borde/margen. Se necesitaría un poco de creatividad si tuviera un elemento de varias líneas o un elemento con algo más que texto.
Editar: Un ejemplo de un trabajo en torno sería tener
<span id='def' style='line-height:inherit;display:none;'> </span>
dentro del elemento, a continuación, para encontrar la altura de la línea que sólo podría utilizar el .height()
de #DEF ya que siempre será solo una línea y, por lo tanto, la altura de línea del elemento padre.
Chrome en Windows XP es un ejemplo de un navegador que devuelve normal
en que jsFiddle menos que se especifique expresamente lo contrario. Firefox devuelve un conteo de píxeles. normal
es el valor inicial por especificación w3. http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height
Aparentemente, la solución que proporcionó parece ser la mejor opción. Gracias por eso. – inhan
Según this page, parece que la mayoría de los navegadores recientes utilizan el mismo valor para line-height: normal
: 1,14, id est la propiedad font-size
con un coeficiente de 1,14.
intentado con varios navegadores (en Windows XP):
- Chrome 21.0.1180.75
- Firefox 14.0.1
- Safari 5.1.7
- Opera 11.64
- IE 7
- IE 8
EDITAR
que estaba equivocado, line-height
depende de font-family
, font-size
, su navegador, tal vez su sistema operativo ...
Más información en Eric Meyers' website.
nota: line-height: 1em; == font-size: * any * px; –
¿Significa esto que "altura de línea: 1.14em" es la declaración equivalente pero explícita? –
Lo asumí, pero no es verdad. 'line-height' depende de' font-family', 'font-size', su navegador, tal vez su sistema operativo ... Encontrará algunas lecturas en [el sitio web de Eric Meyers] (http://meyerweb.com/ eric/thoughts/2008/05/06/line-height-abnormal /) – zessx
Es difícil calcular la altura de línea normal en píxeles. Sin embargo, según MDN es aproximadamente 1.2em.
Si usted tiene:
body{
font-size: 16px;
}
Por lo tanto, su sitio web tiene tamaño de fuente normal 16px entonces la línea de altura normal sería más o menos 24px
. Esto significa que puede calcular el valor de píxel de tamaño de fuente normal multiplicado por 1.5
que es 16px * 1.5 == 24px
Aviso: No multipliqué por 1.2 porque hay diferencia entre el valor px y el valor em.
Sin embargo, esto fue escrito hace mucho tiempo pero me ayudó a escribir una solución temporal en mi tarea. Estoy copiando este código que quizás otras personas puedan usarlo.
$('#lineHeightInc')
.click(function() {
var box = GetSelectedBox();
var ct = box.data('LineHeight');
if (isNaN(ct))
ct = 0;
ct++;
box.css('line-height', (parseFloat(box.css('font-size')) * 1.61 + ct) + 'px');
box.data('LineHeight', ct);
});
$('#lineHeightDic')
.click(function() {
var box = GetSelectedBox();
var ct = box.data('LineHeight');
if (isNaN(ct))
ct = 0;
ct--;
box.css('line-height', (parseFloat(box.css('font-size')) * 1.61 + ct) + 'px');
box.data('LineHeight', ct);
});
- 1. Obtener la altura de línea del elemento sin 'px'
- 2. ¿Cómo obtener x% de altura en px?
- 3. CSS - Altura 100% #px menos - Encabezado y pie
- 4. getheight() px o dpi?
- 5. tinyMCE: ¿Se puede configurar una altura de editor por debajo de 100 px?
- 6. altura frente a estilo de altura de línea
- 7. calc() 100% + #px
- 8. Problema de línea de altura de Cufon
- 9. ¿Hay alguna manera de establecer la altura mínima de línea en elemento en línea en CSS?
- 10. Conjunto altura de la línea de UITextView
- 11. FireFox 3 de altura de línea
- 12. texto de altura de línea textarea
- 13. ¿createScaledBitmap() usa px o dp?
- 14. ¿Cómo obtener la altura de línea de un tramo?
- 15. ¿Es posible cambiar la altura del texto en línea, no solo la altura de la línea?
- 16. Altura de línea en fpdf multicell
- 17. ¿La altura de línea afecta las imágenes?
- 18. Altura de la línea en Xcode
- 19. ¿Qué es la altura de línea: 1?
- 20. Altura de línea CSS y encabezado tradicional
- 21. HTML Estricto aumenta altura de línea
- 22. CSS Altura de Línea - inferior solamente
- 23. ¿Cómo calculo el vector normal de un segmento de línea?
- 24. JavaScript: Encuentre la altura de línea de DIV, no la propiedad CSS pero la altura de línea real
- 25. problema parseInt% y px
- 26. Invalidar propiedad de altura
- 27. ¿Cuál es la diferencia entre la altura de línea: 1.5 y la altura de línea: 150% en css?
- 28. ¿Por qué "NUNCA debes usar la altura en px en nada con texto dentro"?
- 29. Diseño de Photoshop de px a dp
- 30. de la lona se estira cuando se utiliza CSS pero normal con propiedades de "ancho"/"altura"
¿Qué navegador/plataforma usaba usted? Una demostración en vivo también podría ser de ayuda (http://jsbin.com y http://jsfiddle.net son buenos). Firefox 3.6.8 y Chrome 6.0.472.51 beta (en Ubuntu 10.04) devuelven valores de píxel, como se esperaba. En SO '$ ('div.container'). Css ('line-height');' devuelve 11.2px (FF). –
Chrome en Windows XP devuelve 'normal' – Robert