1

要素のコンテンツがオーバーフローした場合 (垂直方向のみ) にアクションを実行するために、検出する (または少なくとも、疑似クラスなどを使用していくつかの要素を表示/非表示にする) HTML/CSS のみの方法があるかどうかを知りたいです。はい、私はそれができることを知っており、その方法を知っています(これについてJSの例は必要ありません、お願いします)、 javascriptなしで賢い方法があるかどうか知りたいだけです。

オーバーフローが発生した場合にのみ表示される「もっと...」ボタンを表示しようとしており、可能であればJSなしでこれを達成しようとしています。

4

2 に答える 2

6

高さ 100% のソリューション

これは、高さ 100% のこのソリューションのバージョンです。したがって、コンテンツがページ全体よりも多くを占めようとすると、「もっと...」リンクが表示されます。これはすべてのブラウザで正常に動作します。

http://jsfiddle.net/nottrobin/u3Wda/1/

「別の行を追加」コントロール (デモ用) にのみ JavaScript を使用しました。実際のソリューションで使用される JavaScript はありません。

警告:

  • ユーザーのブラウザーの高さは可変であるため、「詳細」リンクのポイントで行が半分に切断されないようにする方法や、「詳細」リンクが完全に表示されるようにする方法はありません。

オリジナルソリューション

コンテナ要素overflow: hiddenを作成し、それにmax-height. 次に、「詳細」リンクをそのコンテナー要素内に配置します。position: absoluteそのため、そのmax-height. コンテナ内のコンテンツがコンテナをその にプッシュしない限り、「詳細」リンクは表示されませんmax-height

に注意すればline-height、線が半分に切り刻まれるのを防ぐことができるはずです。

例:
十分なテキスト: http://jsfiddle.net/nottrobin/MrAKv/17/
テキストが多すぎる: http://jsfiddle.net/nottrobin/MrAKv/16/

短いバージョンは、次をサポートするブラウザでのみ機能しますmax-height:
http://caniuse.com/#search=max-height

IE6 のサポートが必要な場合は、次のやや簡潔なソリューションを使用してください:
http://jsfiddle.net/nottrobin/MrAKv/18/
(免責事項 - Google Chrome でのみテスト済み)

于 2011-08-22T00:19:34.943 に答える
1

これは固定高コンテナ用のものです: http://jsfiddle.net/NGLN/PC94w/

于 2011-08-22T01:02:57.927 に答える