CSS колонки: гибкие и гибкие по ширине
В 2011 году я был поставлен в тупик с 2 колонками. Мне стыдно.;)
Задача состоит в том, чтобы придумать это:
+--------------------------------------++----------------+
| This is a header with potentially || button div |
| || |
| long text that will wrap most likely |+----------------+
| |
| but can't go under the button to the |
| |
| right |
+--------------------------------------+
Ничего страшного в типичной 2-колоночной разметке, в которой вы устанавливаете поле левого столбца равным полям div справа. Переменная в этом конкретном примере, однако, заключается в том, что я не буду знать, насколько широким будет правый div в любой момент времени (он основан на строке текста, которая будет меняться.
В итоге мне нужно:
- 2 колонки
- обе колонки занимают всю ширину
- столбец справа настолько же широк, насколько и текст, который в нем содержится
- столбец слева такой же ширины, как оставшееся пространство
Кажется, я бы построил это раньше, но я в тупике.
Я открыт для решений CSS, JS или jQuery.
РЕДАКТИРОВАТЬ:
На самом деле, я уже вижу довольно простое решение jQuery. Я могу взять ширину рендеринга div справа, а затем сделать некоторую математику, вычтя эту ширину из ширины родительского контейнера, а затем установив одинаковую ширину левого столбца. Это будет мой запасной план, если не будет чистой опции CSS.
1 ответ
Смотрите: http://jsfiddle.net/vpADP/
Он будет работать в IE7+ и во всех современных браузерах.
HTML:
<div id="buttonDiv">button div as wide as text</div>
<div id="leftDiv">
left div
</div>
CSS:
#leftDiv {
overflow: hidden
}
#buttonDiv {
float: right
}
Это не типичное использование overflow: hidden
Прочитайте это для деталей.