2011-02-01 13 views
7

Temelde, belli bir HTML öğesi (bu durumda, bir div) nedeniyle kayan elemana, bir aşağıda ortalama ekran çözünürlüğü durumunda yeni bir satıra sarma. Bu davranışı kontrol etmek, gerçekten şu anda sarılıysa veya yeniden boyutlandırma/yük üzerine sarılacaksa elemanı farklı şekilde yerleştirmek ve/veya şekillendirmek istiyorum.Bir öğenin sarılı olup olmadığını belirlemek için herhangi bir yol var mı?

Bu mümkün mü?

+0

Ya: Bu tür kendi sınır-kutusu metnin her satırı için <span> olarak bir satır içi elemanı üzerinde yapılan, ancak kullanmak için yeterince basit olmalıdır + ya da bu doğadan bir şey. Belirli bir genişliğe sahip olmak için verilen öğeyi yeniden boyutlandırmak istiyor musunuz? Artmaya çalıştığım şeyi yeniden boyutlandırmaya devam edersen, bu beni sinirlendirirdi. – Chris

cevap

7

Bir öğenin her bir kenar kutusu için bir ClientRect nesnesi döndüren element.getClientRects() kullanarak oluşturduğu metin dikdörtgenlerinin sayısını belirleyebilirsiniz.^Bir kullanıcı C boyutunu artırmak istiyor

window.onresize = function() { 
    var span = document.getElementById("myDiv").getElementsByTagName("span")[0], 
     rect = span.getClientRects(); 

    if (rect.length > 1) // more than 1 line of text 
     doSomethingWithElement(span.parentNode); 
} 
+0

Burada yönettiğiniz yönü beğeniyorum - ama öte öğenin basit metinlerden daha fazlasını içerdiğini varsayalım? –

+1

@ChrisCashwell Her bir elemanın genişliğini hesaplayın, döngü yaparken, eleman genişliklerini toplayın ve birikmiş genişlik kabın genişliğini aştığında, bu elemanın sarıldığını bilirsiniz. –

+2

@ChrisCashwell: Basit bir metin içermiyorsa, “???. LastElementChild.offsetTop> 0” yapabilirdiniz. – ninjagecko

İlgili konular