2011-12-22 24 views
5

span'un line-height'unu (veya diğer satır içi öğeleri) JavaScript/jQuery'de almanın bir yolu var mı? Bir açıklığın çizgi yüksekliğini nasıl alabilirim?

Ben tam piksel yılında line-height bilgisayarlı ihtiyaç değil sıralama 1.2em, fontSize * 1.5 gibi normal veya sezgisel değerleri.

Yapmam gereken şey, hattın tüm yüksekliğini doldurmak için span'un arka planını genişletmektir. Açıklığı genişletmek için dolgu ekleyebileceğimi düşündüm, ama bunun için tam olarak line-height'a ihtiyacım var. Birisi başka bir yaklaşım sunabilirse, bu da yararlı olacaktır.

+0

Yayınınızda görüntüleme olması gerekir: block, span gibi bir şey {line-height: 12px; display: block;} ' –

cevap

3
$("span").css("line-height"); 

Hesaplanan px değerini örneğin "16px" dizesi olarak alır. Kapakların altında IE currentStyle veya standart getComputedStyle kullanır. Bir setter olarak çalıştığı zaman, bu farklı bir şey olan elem.style.something = value gibi şaşırtıcı bir şeydir. Açıklığın bir div içinde bulunduğunu varsayarak

+0

TFM tarafından desteklendiği gibi: http://api.jquery.com/css/ ;-) – PPvG

+1

Bu, denediğim ilk şeydi elbette. Ne yazık ki WebKit tarayıcılarında, "line-height" değerini manuel olarak ayarlamadığım sürece "normal" dizesini döndürür. JQuery 1.6.1 kullanıyorum. Sonraki sürümlerde farklı davranışları var mı? –

+0

@RadanGanchev, doğru, bazı öğeler için normal döndürür. '[] .forEach.call (document.getElementsByTagName (" * "), function (v) { console.log (getComputedStyle (v) .lineHeight); }); 'Bu, bu sayfada px değerini döndürür. elemanlar olsa da. – Esailija

0

.

göreli ve% 100 yüksekliğini alır bir blok olarak yayılma:

Eğer pozisyona div ayarlayabilirsiniz.

Bu sayede açıklığı istediğiniz gibi gereceksiniz.

+0

Bir "span" kullanıyorum çünkü satır içi bir öğeye ihtiyacım var. Amacım, bir satırın ortasında başlayacak bazı metinleri işaretlemektir. 'display: block' benim için çalışmıyor. –

0

tasarım bunun için izin veriyorsa, uygulayabilirsiniz: Örnek here (.. Şeffaf yayılma arka plan rengini değiştirmek, etkisini görmek için Kırmızı div görmek gerekir notu)

Eğer outerHeight kullanmak ardından hedeflemesi ve elemanlarına inline-block ... bunu yapmanın

var inlineHeight = $('.inline-height').css("display", "inline-block").outerHeight(); 
//console.log('Inline Height:' + inlineHeight); 
2

kolay bir yoludur:

var style = window.getComputedStyle(element); 
var lineHeight = style.getPropertyValue('line-height'); 

Bu, jQuery kullanmadan satır yüksekliğinin hesaplama değerini alır ve IE9'dan itibaren tüm tarayıcılarda çalışır.

İlgili konular