2012-12-10 3 views
0

Я пытаюсь подстроить некоторый HTML (который был сгенерирован ужасным PHP-скриптом, который я не хочу futz, если я могу его избежать), который имеет по существу следующий структура.Порядок divs, vs css float left & right

<div class="outer"> 
    <div class="imageContainer"><img src="image42.png" /></div> 
    <h1>The Title String</h1> 
    <div class="description">Lorem ipsum dolor sit amet, ... </div> 
    <div class="details">These are the details...</div> 
</div> 

Я хочу div.imageContainer плавать слева, и div.details плавать правильно, с текстовым описанием, стекающей между ними (а затем по изображению слева, если есть много текста описания).

Следующая CSS получает право div.imageContainer и div.description, но ставит div.details ниже и справа от описания, глядя, как если бы он был дан "clear:left" (в действительности, он падает полностью вне div.outer):

.imageContainer { float: left; } 
.description { width: 50%; } 
.details  { width: 50%; 
        float: right; } 

Следуя совету нескольких других должностей, которые я нашел здесь на SO, я попробовал, добавив:

.outer   { overflow: hidden; } 

который удлиняет div.outer, так что он охватывает div.details - но оставляет div.details в том же положении относительно div.description.

В моем примере HTML, я нахожу, что если я обмениваюсь порядком тегов div.description и div.details, я получаю его точно так, как хочу. Это замечательно, поскольку пример идет, но не помогает мне вникать в мужество этого вопиющего ужасного PHP-кода, который генерирует HTML-код, который действительно действительно хочет стиль. : -/

Есть ли способ для меня сделать это с помощью только CSS?

(я понимаю, что я могу играть на скрипке в DOM с JavaScript/JQuery, но кажется, что запутано мне.)

+0

Хорошо, так как ужасающий, как код РНР, это было не так трудно переместить 'div.description', как я сначала думал. Но как кто-то, чьи навыки и чувства CSS нуждаются в разработке *, мне все равно хотелось бы узнать, есть ли чистое решение для CSS ... – Hephaestus

ответ

0

Я создал в JSBin.com в sample для вашего запроса.

В образце я применил стиль float:left; к элементу div.description и очищенный плавающий элемент для элемента div.outer.

Проверьте обновленный источник here

+0

К сожалению, это не делает то, что я хочу, и на самом деле предотвращает текст описания из потока вокруг изображения. Я немного добавил пример [JSBin] (http://jsbin.com/exejuq/5), чтобы показать, как он выглядит, когда текст описания имеет реалистичную длину, а также показать, как я действительно хочу, чтобы он выглядел - хотя мне пришлось поменять порядок дивизий, как отмечалось в моем OP, для его достижения. (Спасибо за создание примера, хотя! :-) – Hephaestus