2011-02-01 19 views
7

基本的には、浮動要素のために平均画面解像度より下の場合、新しい行に折り返している特定のHTML要素(この場合はdiv)があります。私は実際には現在ラップされているか、またはサイズ変更/ onloadでラップされる場合、要素を配置および/またはスタイリングするこの動作を制御したいです。要素がラップされているかどうかを判断する方法はありますか?

これは可能ですか?

+0

ユーザーがCでサイズを強化したい場合はどう^ +またはその性質の何か。特定の要素を特定の幅にサイズ変更しますか?あなたが私が強化しようとしているものの大きさを変え続けると、それは私を苛立たせるでしょう。 – Chris

答えて

7

要素のボーダーボックスごとにClientRectオブジェクトを返すelement.getClientRects()を使用して、テキスト矩形の数を数えることができます。これは、独自のボーダーボックスを持っているテキストの各行について<span>としてインライン要素に行われなければならないが、それは使用するのに十分に簡単です:

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

私はあなたがここに向かう方向が好きですが、要素には単純なテキスト以上のものが含まれているとしましょう。 –

+1

@ChrisCashwell各要素の幅を計算し、要素の幅を累積し、累積幅がコンテナの幅を超えると、要素が折り返されていることがわかります。 –

+2

@ChrisCashwell:単純なテキストが含まれていない場合でも、 '???。lastElementChild.offsetTop> 0'を実行できます。 – ninjagecko

関連する問題