2012-03-06 8 views
6

div内の順序付けられていないリスト内のアイテムのリストがオーバーフローで隠されています。リスト内の項目は、テキストの内容と境界を囲むボックスで表されます。これは、重要な情報ではない有用な情報の長いリストになる可能性があり、小さなデバイスで使用すると隠れる可能性があります。CSS:クリップされたときに要素全体を削除します

リストの一部がオーバーフローしている場合は、オーバーフローする項目全体を非表示に設定したいと思っています。クリップされたときに

現在のリストは次のようになります。

--------- 
| A | 
|  | 
--------- 

--------- 
| B | 

それのBオーバーフローが半分だけが表示されますので。これが発生した場合は、Aのみを表示することをお勧めします。

項目は順序付けられていないリストにある必要はなく、何でも構いません。 htmlとcssだけでこれを行う方法はありますか?

私はjQueryでそれを行うことができますが、それを行うCSSの方法があるかどうかは疑問です。

+4

私はあなたがCSSでそれを行うことができるとは思わない... – Andre

+0

私はHTMLとCSSを使用して、この問題に対する簡単な解決策はないと思います。私がこれを行うと考えることができる唯一の方法は、リスト内の各項目がoverflow:hiddenプロパティを持つ包含divと同じ高さであることを確認することです。 –

+0

オーバーフローボックスとリストアイテムの高さについて表示する前に何か知っていますか?または、すべてが完全にランダムですか? – ScottS

答えて

5

「Flex」プロパティでも可能です。参照:http://jsfiddle.net/dsmzz4ks/

ウィンドウ内の表示幅を小さくします。ウィンドウが大きくなるまで、完全に削除されたリスト項目は表示されません。

li:before句を使用して箇条書きを追加している点でちょっとホッケーですが、それでも機能します。

CSS:

.box { 
    width: 30%; 
    float: left; 
    margin: 8px 16px 8px 0; 
    position: relative; 
    border: 1px solid black; 
    padding: 15px; 
} 

ul { 
    height: 90px; 
    display: flex; 
    flex-direction: column; 
    flex-wrap: wrap; 
    overflow: hidden; 
    padding-left: 15px; 
    justify-content: space-around; 
    margin: 0; 
} 

li { 
    display: block; 
    width: 100%; 
    padding-left: 10px; 
    position: relative; 
} 

li:before { 
    content: '\2022'; 
    position: absolute; 
    left: -5px; 
} 
+2

非常に役に立ちます!これは答えとしてマークする必要があります – lopata

関連する問題