2012-04-01 4 views
0

div内に配置された画像とその画像の説明があります。説明が十分な長さである場合親要素の幅がわからないときに折り返しを有効にする方法

<div> 
    <img src="pic.jpg"> 
    <span>Lorem ipsum dorus blablabla foo bar woo yay hoopla doo</span> 
</div> 

は、それが画像よりも広くなるようにdiv要素を伸ばします。この場合、どうすれば説明を折り返すことができますか? divの正確な幅を指定すると動作しますが、残念ながら画像のサイズが変わってしまい、あらかじめ幅を知ることができません。

+0

あなたのimgタグにidを付けて、きれいなjavascriptを使って画像の幅/高さを取得してください。 – hjpotter92

+0

でも動作しますが、私はjavascriptを使わずにこの問題を解決したいと考えていました。 –

+0

Erm、何か特別な理由はありますか? – hjpotter92

答えて

1
<table>> 
    <caption align=bottom>Lorem ipsum dorus blablabla 
    foo bar woo yay hoopla doo</caption> 
    <tr><td><img src="pic.jpg"> 
</table> 

キャプションテキストhttp://jsfiddle.net/3Qucb/1/は水平に、デフォルトではセンタリングされますが、CSSを使って左整列させることができます。他の方法やこれがなぜうまくいくか説明するには、http://www.cs.tut.fi/~jkorpela/www/captions.html

+0

これは結局私が解決した解決策です。ありがとう! –

0
$(document).ready(function() { 

if(your_condition) 
{ 
    // Enable word-wrapping 
    $("span").wordWrap('on'); 
}else 
{ 
    // Disable word-wrapping 
    $("span").wordWrap('off'); 
} 
}); 

<div> 
    <img src="pic.jpg"> 
    <span>Lorem ipsum dorus blablabla foo bar woo yay hoopla doo</span> 
</div> 
1

スパンが絶対配置されるのは問題ですか? http://jsfiddle.net/d2GQa/

マークアップ:

<div> 
    <img src="picture.gif" alt="picture"/> 
    <hr /> 
    <span class="cl-left">Text text text text text text text text text...</span> 
</div> 

CSS:私は短期間で javascriptをせずに解決を見つけられませんでした

div { 
    background: red; 
    float: left; 
    position: relative; 
} 

span { 
    display: inline-block; 
    position: absolute; 
    width: 100%; 
} 

hr { 
    clear: both; 
    border: none; 
    visibility: hidden; 
    margin: 0; 
    padding: 0; 
} 
+0

これは動作するようです。ニース!唯一の欠点は、インラインブロックがすべてのブラウザで動作しないことです。しかし、それらはとにかく更新する必要があります:) –

+0

Safari> = 2、Opera> = 9、IE> = 8、Firefox> 3しかし、インラインブロックをIE <8:display:inline;ズーム:1; – roger

+0

また、説明のサイズが囲むdivの高さに反映されていないことに気付きました。私はそれがあなたが問題の意味であったことだと思います。これは、要素が上位の記述を「食べる」ため、要素を積み重ねることに苦労します。まあ、私はちょうどdivの高さのためのいくつかの余裕を提供し、それを残すことができます。 –

0

。フロートについて不思議に思っているならば、それは全ての収縮に対してです。

関連する問題