Jump to content
  • 0

float:left блоки равной высоты в несколько строк


AKyHuH
 Share

Question

Добрый день, уважаемые форумчане!

Делаю сайт, левая колонка фиксированной ширины, правая (контент) резиновая. В правой колонке выводится список изображений с заголовками:

css:

.img {

width: 200px;

float: left;

margin: 0 10px 10px 0;

}

html:

<div class="img">

<img src="image.jpg" alt="" />

<h3>Title</h3>

</div>

<div class="img">

<img src="image1.jpg" alt="" />

<h3>Title</h3>

</div>

...

<div class="img">

<img src="imageN.jpg" alt="" />

<h3>Title</h3>

</div>

в итоге зрительно должно получиться подобие таблицы, где по ширине экрана выстраивается столько изображений, сколько позволяет экран, остальные переходят на следующую строку, потом на следующую и т.д. И все хорошо, пока высота колонок физически одинаковая, но как, например, заголовок одного изображения становится длиннее и занимает несколько строк вся картина нафиг портится... Выход пока вижу только один, каким-то образом сделать высоту всех равной высоте самой высокой, но как этого добиться... в этом собственно и сам вопрос.

Edited by AKyHuH
Link to comment
Share on other sites

Recommended Posts

  • 0

да, теперь действительно то, что надо, только осталась та же проблема что и в первом решении... фон по высоте не растягивается, но это, честно говоря, для меня не критично, просто ради интереса уже можно попробовать решить и эту проблему

Да, и подскажите, пожалуйста, для чего нужна эта строка: display: -moz-inline-stack; я так понимаю это правило для FF, но ведь он и так адекватно воспринимает свойство инлайн-блок...

Link to comment
Share on other sites

  • 0
Ладно, если не понял, объясните плз :)

Человек сказал, что у него верстка сыпется из-за появления второй строки заголовка в блоке, я подумал что вполне хорошим решением будет скрыть то, что вылазит за объемы блока.

Если же не скрывать то, что больше нужного размера, нужно использовать inline-block. Его кроссбраузерный код:

		width: 200px;
min-height: 250px;
border: 1px solid #000;
display: -moz-inline-stack;
display: inline-block;
vertical-align: top;
margin: 5px;
zoom: 1;
*display: inline;
_height: 250px;

Как будет выглядеть:

ib4.png

ПС: надеюсь в этот раз предложил правильное решение

Дело в том, что я в одном из постов предлагал такое же))

Link to comment
Share on other sites

  • 0
да, теперь действительно то, что надо, только осталась та же проблема что и в первом решении... фон по высоте не растягивается, но это, честно говоря, для меня не критично, просто ради интереса уже можно попробовать решить и эту проблему

Тебе колонки надо тянуть по самой высокой? Или их высота жестко заданна? Также ширины их тянутся или жестко заданны?

Link to comment
Share on other sites

  • 0
Тебе колонки надо тянуть по самой высокой? Или их высота жестко заданна? Также ширины их тянутся или жестко заданны?

По самой высокой, высота может быть разная.

Link to comment
Share on other sites

  • 0
ширина задана жестко, а высоту надо тянуть по самой высокой

Хочу заметить, то что я предложил идею с JS, это как раз решение Медведя, как то раз было дело... :)

Link to comment
Share on other sites

  • 0
ширина задана жестко, а высоту надо тянуть по самой высокой

И при этом еще чтобы колонка которая невлезла переносилась на новую строку?

Тогда джс.

Хочу заметить, то что я предложил идею с JS, это как раз решение Медведя, как то раз было дело...

Вот только осталось научится редактировать джс под свои нужды, так как там лишнее есть, ведь он был задействован в другом примере :)

Link to comment
Share on other sites

  • 0

psywalker, в общем-то решение подошло, спасибо большое!

остальным тоже спасибо за участие, если будут ещё варианты, с радостью посмотрю, т.к. может быть по глупым, но всё-таки убеждениям весь файл css стилей писал без inline-block, который неадекватно воспринимается старыми браузерами... но.... на безрыбье, как говорится...

И при этом еще чтобы колонка которая невлезла переносилась на новую строку?

Тогда джс.

Вот только осталось научится редактировать джс под свои нужды, так как там лишнее есть, ведь он был задействован в другом примере :)

отнюдь, psywalker предложил вполне приличный вариант без JS... конечно, если бы блоки были с фоном... но, у меня, слава богу, фона нет :)

Link to comment
Share on other sites

  • 0
отнюдь, psywalker предложил вполне приличный вариант без JS... конечно, если бы блоки были с фоном... но, у меня, слава богу, фона нет

Если фона нет то тогда другое дело.

Но я чтото путаю или тут были разговоры по поводу бг в колонках?

Edited by mishka2
Link to comment
Share on other sites

  • 0
Если фона нет то тогда другое дело.

Но я чтото путаю или тут были разговоры по поводу бг в колонках?

Кстати да, без фона вполне нормальный вариант и минимум кода.

Link to comment
Share on other sites

  • 0

Дабы не захламлять форум, задам свой новый вопрос тут :(

есть 2 флоэт лефт блока, левый фиксированной ширины, правый резиновый, при сужении окна браузера правый блок соскакивает под левый... и ничего не помогает...

чую, что вопрос нубский, но как быть ума не приложу, опять прошу помощи.

Link to comment
Share on other sites

  • 0
Дабы не захламлять форум, задам свой новый вопрос тут :(

есть 2 флоэт лефт блока, левый фиксированной ширины, правый резиновый, при сужении окна браузера правый блок соскакивает под левый... и ничего не помогает...

чую, что вопрос нубский, но как быть ума не приложу, опять прошу помощи.

Блин дружище, ну и вопросы у тебя, я весь инет перерыл, пока ответ нашёл. Двухколоночный макет, это тебе не просто так.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
*{ margin: 0; padding: 0; }
div.left{ float: left; width: 300px; background: blue;}
div.right { margin-left: 300px; background: red;}
</style>
</head>

<body>
<div class="left">Left</div>
<div class="right">Right</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

честно говоря уже нашел решение :( проблема не в том, что мне лень, а в том, что задолбался запрос формулировать... :( пока не дошло реально спросить яндеха про двухколоночный макет :())))

Link to comment
Share on other sites

  • 0
AKyHuH, посмотри как http://www.w3.org/ сверстано :(

ага, круто :( это типа так Лужков отвечает, когда к нему прорабы приходят и говорят "насяльника, так строить нивазможнама", а он говорит "посмотрите, как Бог за 7 дней построил" :(

о как!

#w3c_container {

font-size:108%;

line-height:1.41667;

}

advanced (строка 15)

самое крутое, когда экран сужаешь сильно, у них весь сайт в один столбец выстраивается и графика отключается... черная магия, ни иначе:)

Link to comment
Share on other sites

  • 0
ага, круто :( это типа так Лужков отвечает, когда к нему прорабы приходят и говорят "насяльника, так строить нивазможнама", а он говорит "посмотрите, как Бог за 7 дней построил" :(

Ну вообще-то в их верстке нет ничего невозможного. Касательно темы можно посмотреть, как сверстана шапка. 2 колонки, 1-я фиксированной ширины, 2-я плавающей. Опять же рекомендую поразбираться в коде, можно много интересного найти :(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy