Bueno, encontré la necesidad de una línea de altura para codificar un complemento, entonces, ¿puede dar un consejo, por favor? Gracias)¿Cómo determinar una 'altura de línea' usando Javascript (jQuery)?
Respuesta
$('selector').css('line-height');
$('selector').css('line-height');
Devoluciones alto de línea como un valor decimal en píxeles, con la unidad, por ejemplo, "22.5px"
Se debe tener cuidado con esta solución, ya que los diferentes navegadores reportarán resultados diferentes. He descubierto que no puede usar medidas sin unidades con altura de línea (por ejemplo, 2.2) en su CSS, ya que IE6 informará un resultado incorrecto (por ejemplo, 2px en lugar de, por ejemplo, 36px). Así que recomiendo usar alturas de línea basadas en unidades con esta medida.
Esto devolverá el valor de la propiedad en CSS, no necesariamente en píxeles. Por ejemplo, puede ser la cadena ''normal''. –
Cuidado: en muchos navegadores, obtienes un valor que se parece a '16px', pero en IE, a veces puedes obtener un' número 'desnudo como' 1.2'. Y tenga en cuenta que * no * simplemente recupera las unidades que utilizó en CSS. Échale un vistazo: http://jsfiddle.net/alanhogan/a6a8P/ –
No puede estar seguro de obtener una altura de línea calculada en píxeles entre navegadores. A veces, el valor es "normal" o "heredar", que se calcula en Firefox, pero no en IE, por ejemplo. Una solución para esto (dependiendo, por supuesto, en su caso de uso) es conseguir el tamaño de fuente calculada (que puede ver), y se multiplica por 1,5, lo cual es bastante standard:
var fontSize = $(el).css('font-size');
var lineHeight = Math.floor(parseInt(fontSize.replace('px','')) * 1.5);
Sí, es un poco asqueroso, pero funcionará perfectamente para cosas como determinar la altura correcta de un elemento en función de algunas líneas de texto, por ejemplo. Tenga en cuenta que puede/debe reemplazar 1.5 con cualquier relación estándar de altura de línea/tamaño de letra que ya esté utilizando en su sitio. Si no lo sabe, puede averiguar inspeccionando cualquier elemento de copia en Firebug y mirando el a) tamaño de letra calculado yb) el alto de línea. Luego, reemplace 1.5 con b/a. :-)
Espero que sea útil!
¡Esta es la mejor solución que he encontrado! ¡Muchas gracias! –
Esto no funcionará en IE si establece la altura de línea en un valor sin unidades (que es lo que [recomienda MDN] (https://developer.mozilla.org/es/CSS/line-height)). Ver [mi demo] (http://jsfiddle.net/alanhogan/a6a8P/). –
Es posible que desee utilizar parseFloat en lugar de parseInt, ya que obtendrá un valor más preciso para su lineHeight si su tamaño de fuente tiene un valor decimal. Alan, John ha codificado un valor de altura de línea en lugar de calcularlo, por lo que su comentario no parece relevante para esta respuesta. –
$('selector').css('line-height');
Si esto devuelve un número con px, puede usar el número. Si devuelve un% o un número sin unidades, puede multiplicarlo por el tamaño de fuente y usarlo. Si se vuelve normal, me las arreglé para trabajar con esto:
var height = $element.height();
var font_size = parseInt($element.css('font-size'));
var num = Math.floor(height/font_size);
for(; height % (height/num) != 0; --num)
;
return height/num;
Esto sólo funciona con "normal", porque se puede asumir que la altura de la línea siempre será mayor que el tamaño de la fuente.
Se basa en la idea height % line_height == 0
.
Técnicamente num == height/line_height
que lo hace incognoscible. Afortunadamente, el piso de height/font_size
es una buena heurística porque height/line_height
son generalmente iguales o cercanos, y si está apagado, siempre se sobrepasa, nuevamente porque "normal" garantiza que la altura de la línea es mayor que el tamaño de fuente, por lo que puede probar e intenta de nuevo.
Obtenga y almacene texto, establezca texto temporalmente en una línea de valor (como "x" o "& nbsp"), obtenga y almacene .height (o .inner, o .outer, lo que necesite), reemplace el texto con valor almacenado. De ser necesario, muéstrala (por ejemplo, el elemento está oculto), luego vuelve a esconderla si es necesario.
Esta (.height) le dará la altura total de línea (tamaño de fuente más ajuste de altura de línea) en un número (como 15 para el tamaño de letra 12 y altura de línea 1.25).
Utilice un div oculto para hacer todo esto si es necesario, mostrar, obtener altura, ocultar.
Esta alerta indica el valor numeral 15, todos los navegadores:
<div id="TestDiv">
Any text you want.
</div>
jQuery(document).ready(function()
{
var TestText = $("#TestDiv").text();
var TestDivLineHeight = $("#TestDiv")
.css("font-size", "12px").css("line-height", "1.25").text("x").height();
alert(TestDivLineHeight);
$("#TestDiv").text(TestText);
});
Editado desde la publicación original para cambiar "12" a "12px" –
También debe tener cuidado de eliminar el relleno superior e inferior si desea un valor correcto para Internet Evil 6 y 7 –
- 1. Establecer altura usando Javascript
- 2. ¿Cómo puedo determinar si una imagen se ha cargado usando JavaScript/jQuery?
- 3. Depuración de JavaScript línea por línea usando Google Chrome
- 4. ¿Puedo trazar una línea usando jQuery?
- 5. ¿Cómo puedo determinar el número de línea actual en JavaScript?
- 6. javascript/jquery: ¿cómo obtengo la altura interior de la ventana?
- 7. jQuery/CSS: altura de línea de "normal" ==? Px
- 8. Detectando cuando cambia la altura de un div usando jQuery
- 9. cómo determinar el navegador de la ópera usando javascript
- 10. JavaScript: Encuentre la altura de línea de DIV, no la propiedad CSS pero la altura de línea real
- 11. ¿Cómo obtener la altura de línea de un tramo?
- 12. jQuery: altura div dinámica
- 13. Dibujando una ruta con una línea en OpenLayers usando JavaScript
- 14. Cómo llegar altura de una línea en UITextView
- 15. efecto profundidad usando Javascript (jQuery)
- 16. Cómo contar palabras en JavaScript usando JQuery
- 17. jQuery altura elemento sortable
- 18. Detección de la altura del área de visualización usando Javascript
- 19. ¿Cómo puedo obtener la altura de la línea base de una cierta fuente?
- 20. Problema de línea de altura de Cufon
- 21. Altura de línea en fpdf multicell
- 22. Cargue una acción de Struts 2 usando jquery en javascript
- 23. ¿Cómo puedo obtener la altura de una ventana padre desde iFrame usando jQuery?
- 24. jquery simplemodal altura dinámica
- 25. Abrir Seleccione usando Javascript/jQuery?
- 26. altura frente a estilo de altura de línea
- 27. ¿Generar números de página usando javascript/jquery?
- 28. ¿Cómo dibujar una línea entre 2 elementos usando JQuery y refrescar esa línea?
- 29. Cómo establecer la altura de una ventana usando C#?
- 30. ¿Cómo muevo un elemento a una lista vacía usando jquery?
Oh, gracias, no puedo entender por qué, pero simplemente hay que olvidar que css() puede no sólo para establecer los valores, sino también para obtén ... –
¡Recuerda marcar la respuesta como correcta cuando es correcta! =) –
Sí, vale, soy nuevo aquí todavía) –