2012-04-20 13 views
3

我想實現一個DIV其中包含了一些文本,和行爲方式如下:如何創建一個擴展到一個高度然後顯示滾動條的DIV?

  • 固定寬度(500像素)

  • 封頂高度(最高400像素)

    1. 如果文本呈現爲012px400px(比如說100px高),則包含的DIV與文本(本例中爲100px)的高度相同。

    2. 如果文本呈現爲> 400px,則包含div的高度僅爲400px,並且Oveflow通過DIV中的垂直滾動條處理。

我知道如何實現#2(overflow: auto; position: relative),但這種行爲取決於是否有height=400px這當然否定#1所需的行爲。

這怎麼能通過CSS來實現?

我更喜歡合理的跨平臺soluion,如果這太難了,必須在IE7,IE8和FireFox 10+上工作。

+0

@ c0d3Junk13 - 正如我試圖通過標籤進行溝通,只有純粹的CSS – DVK 2012-04-20 18:38:57

+1

@ c0d3Junk13 - 你可以。查看我對他的回答的評論 – DVK 2012-04-20 19:21:26

回答

6

嘗試使用max-heightoverflow: auto;的組合。

Example

+0

這對IE6不起作用。請參閱http://stackoverflow.com/a/297802/119280製作IE6兼容版本 – DVK 2012-04-20 19:21:08

+1

是的,但您沒有指定它必須在IE6上工作,只是IE7。另外,爲什麼你仍然支持IE6?即使微軟不再支持它。感謝您的接受! – twaddington 2012-04-20 19:53:30

0

可以使用max-height屬性,而不是height,但它不會工作在IE6,不尊重任何最小/最大性能。如果IE6的用法是必須的,那麼你將不得不使用Javascript(唯一的另一種方法是使用IE專有的CSS表達式,但是它們性能很差,並且依賴於JS來啓用)。

+0

你可以使用[這裏](http://stackoverflow.com/a/297802/119280)的方法,這是我最終做的 – DVK 2012-04-20 19:20:28

+1

@DVK - 你也可以使用javascript,因爲表達式只有在if JS已啓用,而JS是一個更好的解決方案,因爲如果使用不當,CSS表達式可能會成爲性能責任。當用戶將鼠標移動到頁面上時,他們實際上會得到評估*,因此效率非常低。 – 2012-04-20 20:58:43

相關問題