2012-01-31 16 views
2

dt要素と同じ大きさであるため、dd要素である画像キャプションを取得しようとしています。私は幅とディスプレイを使用したくない:インラインと浮動:左は動作しません。私はここにコードと例を持っています:http://jsfiddle.net/PnyHs/11/。私はFirefox 9を使ってテストしています。htmlのdd要素の改行がありません

私が今すぐに思い付く唯一の解決策は、javascriptを使ってdt要素を測定し、その幅をdd要素に設定することです。

ご協力いただきありがとうございます。

+0

これは見た目がより難しいです。 IE7をサポートする必要がありますか? – thirtydot

+0

はい、IE7のサポートが必要ですし、あなたが正しいです、それは見た目よりも難しいです。私は少しのjavascriptで私の問題を解決しました。私はhtmlを変更せずに他の解決策を知っています。 –

答えて

2

あなたは、私は、これは不可能であり、ここではその理由であると言うことを敢えて、max-widthを使用してHTMLの構造を維持しないようにしたい場合は:あなたはimgを期待している

dd要素を拘束するオブジェクト。しかし、両方の要素は兄弟であり、親によって幅の面でのみ制約を受けることができます(あるいは要素が子要素によって引き伸ばされる)。したがって、ddは、親要素がそれを制限しないため、必要なだけ拡大します。

もちろん、これは親要素の幅を設定することで解決できますが、ピクチャのサイズが異なるため、これをやりたくないと述べました。

残念ながら、あなたがHTML構造を変更しない限り、これはJavaScriptなしでは実現できません(私はここでは何かが分からない限り)。

+0

ありがとうございます。私はこの答えを頭に上げました。なぜなら、それは私の思考や発見と一致しているからです。私は実際にjavascriptでこの問題を解決しました。 –

0

dl要素に幅を追加できますか?このようなあなたのイメージと同じ幅http://jsfiddle.net/PnyHs/12/

+0

イメージの幅はさまざまなので、幅を使用したくない場合があります。私はこれが可能かどうか分からない。上記のように、私の最後の手段は、あなたの例で行ったように幅を設定することですが、動的にjavascriptを使用します。 –

+0

私は参照してください。あなたが言うように、あなたが幅を知っていない限り、私は残念なことにhtml/cssでこれが可能だとは思わない。 – MrMisterMan

+0

ちょっと考えてみましょう.200pxの「最大幅」を追加して妥協するのはどうですか? – MrMisterMan

1

dlイメージにマークアップを使用すると、キャプションは人工的であり、スタイリングが容易になりません。スクリプティングやイメージ幅を明示的に設定する必要のない問題(キャプションをイメージと同じにする)への唯一のアプローチは、fiddlemy page on image captionsを参照して、caption要素の単一セルテーブルを使用することです。例:

<table class="photo"> 
    <caption align="bottom">Image Caption with a very very very very very long  
    text</caption> 
    <tr><td> 
     <img title="" alt="" src="http://dummyimage.com/120x100/82d91f/fff"> 
    </td></tr> 
</table> 
+0

私はhtmlを変更せずにこれを解決したい。リンクをありがとう、私は次回のためにそれにつきます。 –

関連する問題