我有一個包含圖像的框,它具有float:left set和textual contents。CSS:調整元素的大小而不是清除浮點數
-------------------------------------
|--------- |
|| | |
|| Image | |
|| | Content |
|--------- |
| |
| |
| |
--------------------------------------
Fig. 1
我通常認爲讓內容在圖像周圍浮動是一件好事。然而,在使用名單的情況下,下面看一下是煩人:
-------------------------------------
|--------- |
|| | List |
|| Image | |
|| | 1. Item |
|--------- 2. Item |
| 3. Item |
| 4. Item |
| |
--------------------------------------
Fig. 2
我寧願它通過以下方式(至少在相當短名單,讓我們假設該列表是短現在)
-------------------------------------
|--------- |
|| | List |
|| Image | |
|| | 1. Item |
|--------- 2. Item |
| 3. Item |
| 4. Item |
| |
| Additional content (not in list) |
--------------------------------------
Fig. 3
我通過使列表display: inline-block
(和任一插入列表之前一個<br>
,或在塊級元素包裹它)
然而,在任何長的列表項的情況下(長於得到上述外表內容字段的小寬度) 浮動清除。
-------------------------------------
|--------- |
|| | |
|| Image | |
|| | |
|--------- |
| 1. Item |
| 2. A very long item, which makes |
| the list box just as wide as the|
| outer box. |
| 3. More items |
-------------------------------------|
Fig. 4
爲什麼這種情況對我來說似乎很清楚。在浮動環境中,首先,將列表呈現爲一個塊(因爲display: inline-block
),使用外部框的寬度作爲環境寬度。由於存在較長的物品,所得到的區塊將與外框一樣寬。在第二步中,塊試圖放在浮動圖像旁邊,它不適合。最後,浮動清除。
有沒有辦法修改這種情況?就像,首先嚐試使用更短的寬度渲染列表,如果失敗,重新渲染?或者完全不同的方式來實現我想要的?
列表上不會有'max-width'嗎? – bfavaretto
@bfavaretto:不,如果浮標已被清除,則列表應占據整個空間。 –