画像例:
そしてJSBIN のコード。
状況は、それぞれの横に「情報アイコン」が付いたラベルが付いたチェックボックスのリストを作成しようとしているということです。
アイデアは、ラベルをクリックすると、チェックボックスがトリガーされ (そうあるべきです)、JS でいくつかのアクションを開始するというものです。
情報アイコンは、クリックして詳細情報を取得するためのツール ヒントです。情報アイコンには独自の相互作用があるため、ラベルがチェックボックスの相互作用を開始するため、ラベル内にインラインで貼り付けることはできません。
だから私がやろうとしているのは、情報アイコンをラベルテキストにできるだけ近づけることです。残っているすべてのラベルをフローティングして、必要なだけ小さく折りたたむことでこれを行いました。次に、情報アイコンを次の行に押し込まないように、ラベルに最大幅を指定します。
問題: ラベルが折り返されていない場合 (最初のラベル)、ラベルが折りたたまれてテキスト (緑の境界線) と同じ幅になることに注意してください。ただし、ラベルを折り返す必要がある場合 (他のすべての例)、ラベルは最大幅のサイズになります。緑の境界線を取り除くと、情報アイコンがテキストから任意の一見ランダムな距離に視覚的に浮かんでいるように見えるので、これはおかしいように見えます。
質問: テキストが折り返されたときに、フローティング オブジェクトをテキストと同じ幅に折りたたむ方法はありますか、それとも CSS で機能するのですか?
編集:
明確にするために、上記のサンプル画像/コードが次のようなものを生成することを望みます:
すべてのラベル (緑色の境界線) が折りたたまれて、テキストが折り返されている場合でも、幅がテキストと同じになることに注意してください。
編集2:
私は問題を理解していると思います...問題は、最大幅があるためにテキストが折り返されていることです。つまり、コンテンツ (テキスト) は最大幅よりもはるかに広いため、明示的に指定されていない場合、div を特定の幅に折りたたむことはできません。
そのため、これに対する解決策はないと思います。CSS は、これを処理するように設定されていません。