К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос к радикальным любителям DIV-ной верстки. Как сверстать без таблицы вот такое =)

Гость
0 - 19.09.2012 - 20:41


надеюсь, картинка видна.
нужно два блока, типо столбики. Как видим, в левом выравнивание по середине. И оба они растягиваюццо в зависимости от высоты текста в правом.

Расскажите, ув. господа, как такое сверстать дивами, обойдясь без таблицы.
Мне действительно интересно и я пока что еще не начинал верстать.
Но по прикидам, такое можно сбацать токо таблицей.
Или я неправ?



Гость
1 - 19.09.2012 - 20:42
если картинка не видна, то она вот
http://www.fotolink.su/pic_b/f96d0eb...04ae4a5b36.jpg

Гость
2 - 19.09.2012 - 23:07
Как-то сникли бойкие почитатели дивовой верстки.
Ладно, отложу верстку до завтра. Авось чо-то умное все ж народите. =)
Гость
3 - 19.09.2012 - 23:32
У блочных элементов есть такое замечательное свойство: display: table(table-row, table-cel и т.д.). Ими можно построить любую таблицу на дивах, не работает в IE 6,7 (но есть костыль), подробнее в мануале. пример: http://www.cyberforum.ru/html/thread431748.html

Ответ на поставленный вопрос - Можно сверстать не только таблицами.

Там же (в примере) написано то, что обсуждалось и здесь - "Таблицы как раз для отображения табличных данных и нужны. Использовать таблицы по их прямому назначению не запрещено."

То что на картинке - я бы сделал обычным TABLE и не заморачивался, как я понимаю это будет выводится где-то в середине страницы, ну а основную верстку, как радикальный любитель, Конечно же дивами..
Гость
4 - 19.09.2012 - 23:56
Цитата:
Сообщение от Kuba Посмотреть сообщение
То что на картинке - я бы сделал обычным TABLE и не заморачивался
это слишком легко, как для радикальных любителей дивов.
Добавлю: это что-то типо баннера. Токо реклама там будет каждый раз разная по высоте и если снять флажок, то грузиться реклама не будет. =)
Эта вещь будет внизу страницы.
Как видим, для таблицы она не особо подходит, т.к. это не вывод данных, а дизайн, поэтому те, кто сходили с ума в другой теме, доказывая что таблицами верстать вообще низя, просто таки обязаны подсказать как решить ЭТОТ случай с помощью дивов. =))
Так что слив не принимаеццо. =)
5 - 20.09.2012 - 11:52
Если эти блоки имеют конкретную ширину (то есть не "резиновые"), и только меняется высота в зависимости от содержимого, то можно сделать блоками :)
Нужно только знать что такое относительное и абсолютное позиционирование :)

А я бы сделал таблицей и не парился :)
Гость
6 - 20.09.2012 - 19:44
5-Искусственный Интеллект1 >
правый блок - %-ный. В данное время - 60%. Левый - фиксированный.

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
А я бы сделал таблицей и не парился :)
какие все стали покладистые, аж до тошноты =))
7 - 20.09.2012 - 21:39
6-Гавайские субтитры > разницу видишь между версткой страницы и версткой баннера, если это вообще можно назвать версткой.
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
5-Искусственный Интеллект1 > правый блок - %-ный. В данное время - 60%. Левый - фиксированный.
можно сделать с помощью блоков.
Гость
8 - 20.09.2012 - 22:21
7-Искусственный Интеллект1 >
гы, как? =)
Гость
9 - 20.09.2012 - 22:21
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
разницу видишь между версткой страницы и версткой баннера, если это вообще можно назвать версткой
нет не вижу. разницы нету. =)
Гость
10 - 20.09.2012 - 22:43
Откладываю еще на один день, в надежде, что будет подсказано крутое решение без таблицы =)
11 - 20.09.2012 - 22:53
8-Гавайские субтитры > а голова тебе на что? Чтоб туда только кушать и шапку носить? :) Думай :) Относительное и абсолютное позиционирование тебе в помощь :)
Гость
12 - 21.09.2012 - 00:03
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
а голова тебе на что? Чтоб туда только кушать и шапку носить?
а форум на что? Чтобы спрашивать.

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
Относительное и абсолютное позиционирование тебе в помощь :)
Хотя считаю это костылем, но пусть. Ладно.
А далее что?
Гость
13 - 21.09.2012 - 13:42
Считай это тоже костылем -
http://thexmails.narod.ru/

Ну а для авторитетности - выдача гугла и яндекса построена аналогично..
Гость
14 - 21.09.2012 - 19:40
О, вроде оно.
Гость
15 - 21.09.2012 - 19:42
Скопировал ?? Я удаляю.
Гость
16 - 21.09.2012 - 19:53
Знаешь почему не поставлю?
Потому что левый блок не фиксированной ширины и контрол перекашивается при изменении ширины браузера.
Вот такое вот. =(
Да и вообще, top 50% это реальный изврат и токо имитация выравнивания посредине.
А если в левом блоке будет не токо чекбокс и высота его контента будет меняться в зависимости от ширины окна, то куда оно улетит?
Не. Низачот.
Но конечно благодарю за то, что хоть что-то сделал, а не токо языком это самое. =)
Гость
17 - 21.09.2012 - 20:09
Верстать сайт за тебя я не собирался.
то что на картинке, Конкретно поставленная задача решена. Поиграй со стилями на досуге, очень увлекательно решать не тривиальные задачи. чуть чуть фантазии и можно сверстать любой макет, но за тебя это делать никто не будет..
Гость
18 - 21.09.2012 - 20:27
17-Kuba >
это не решение, а хитрость.
Сам подумай - с таблицей, где valign=middle, оно будет по центру, хоть что ты с ней делай.
В той верстке - не будет. Будет только если ограничить ширину контейнера.
А мне надо, чтобы оно было "конкретно по центру", без всякого.
И, конечно же, я признателен за помощь в решении.
Гость
19 - 21.09.2012 - 21:20
Мдя.
Сделал, чтобы если выключено писало под контролом "реклама выключена".
Угадайте с трех раз куда оно все сдвинулось? =)))
Гость
20 - 21.09.2012 - 22:11
Гавайские субтитры > знаешь что такое jquery?
Гость
21 - 21.09.2012 - 22:28
tooltip
Гость
22 - 21.09.2012 - 22:44
20-lublurtk >
гыгы.
Дизигн надо делать чисто по css.
JQ и прочие игрушки - это для немного другого =)

21-Kuba >
га?
23 - 21.09.2012 - 23:29
Ради интереса все же сделал свой вариант.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<title>
Верстка баннера блоками div
</title>

<style type="text/css">

html ** height:100%; padding: 0px; margin: 0px; **
body ** background: #fff; text-align: left; margin: 0px; padding: 10px 10px; font-family: Tahoma, Geneva, sans-serif; font-size: 13px;

**

.banner_div ** padding: 15px; background: #ddd; **

.banner_one ** padding: 5px 0px; **

.banner_container ** background: #fff; position: relative; **

.banner_part_left ** position: absolute; left: 0px; top: 50%; width: 100px; text-align: center; **

.banner_part_left_contr_1 ** **

.banner_part_left_contr_2 ** position: absolute; left: 0px; bottom: 50%; width: 100%; **

.banner_part_right ** padding: 0px 0px 0px 100px; **
.banner_part_right_contr_1 ** padding: 0px 0px 0px 10px; background: #ddd; **
.banner_part_right_contr_2 ** padding: 5px 5px 5px 5px; background: #fff; **

</style>

</head>
<body>
<div>
Тут текст.
<div>
<div style="">
<div style="">
Баннер будет ниже: 100 px левая часть, остальная будет правая.
</div>
</div>
</div>
</div>

<div>

<div class="banner_div">

<div class="banner_one">
<div class="banner_container">
<div class="banner_part_left">

<div class="banner_part_left_contr_1">
&nbsp;
<div class="banner_part_left_contr_2">
<input type="checkbox" name="pf" value="">
</div>

</div>

</div>
<div class="banner_part_right">
<div class="banner_part_right_contr_1">
<div class="banner_part_right_contr_2">

<div>
Тут тект правой части баннера.<br>
Купите у нас какую-нибудь ерунду.<br>
Пусть она вам и не нужна<br>
Все равно купите.
</div>

</div>
</div>
</div>
</div>
</div>

<div class="banner_one">
<div class="banner_container">
<div class="banner_part_left">

<div class="banner_part_left_contr_1">
&nbsp;
<div class="banner_part_left_contr_2">
<input type="checkbox" name="pf" value="">
</div>

</div>

</div>
<div class="banner_part_right">
<div class="banner_part_right_contr_1">
<div class="banner_part_right_contr_2">

<div>
Тут тект правой части баннера.<br>
Тут какой-нибудь рекламный текст.<br>
И дальше убеждаем посетителя купитьт какую-нибудь лабуду пусть и абсолютно ему не нужную

</div>

</div>
</div>
</div>
</div>
</div>


</div>

</div>

</body>
</html>
Гость
24 - 21.09.2012 - 23:39
23-Искусственный Интеллект1 >
это прикол?
Гость
25 - 22.09.2012 - 11:14
22-Гавайские субтитры >в jquery определяешь height дива с текстом. потом задаешь этот размер и line-height диву с чекбоксом.

http://jsfiddle.net/ тут можно все это делать.

можно использовать таблицу + css.
можно в таблицу добавить div.

главное не ленись и пробуй все варианты)
26 - 22.09.2012 - 13:27
24-Гавайские субтитры > какой прикол, все работает нормально.
Гость
27 - 22.09.2012 - 20:34
26-Искусственный Интеллект1 >
неа. Не робит.

25-lublurtk >
ага щас.
Буду вязать стокилобайтную либу ради выравнивания по центру. Еще чего. =)
28 - 23.09.2012 - 12:01
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
26-Искусственный Интеллект1 &gt; неа. Не робит.
ты просто скопировал код, или все же заменил в коде две звездочки на открывающую фигурную скобку?
Гость
29 - 23.09.2012 - 13:23
подтверждаю, код рабочий..
Гость
30 - 23.09.2012 - 16:23
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
или все же заменил в коде две звездочки на открывающую фигурную скобку?
предупреждать надоть, что там еще менять что-то =)
Ща еще раз скопирну и поменяю.
Щас...
Гость
31 - 23.09.2012 - 21:41
Пацаны, вы или не понимаете, или прикидываетесь.
Вы понимаете что такое центр по вертикали или не?
То что вы предлагаете, это не центрирование в контейнере по вертикали, а отдаление от верха контейнера на 50%.

Вы же должны знать, что при центрировании учитывается еще и высота объекта, подлежащего центрированию.
Вот что делать, когда флажок снимается, и при таком условии ниже флажка появляется текст "реклама выключена"?
Угадайте, куда сместится центр при таком варианте?
Веть высота объекта, который вы предлагаете "отталкивать" от верха - измениццо. =))
Гость
32 - 23.09.2012 - 21:43
Да и вообще, учитывая что объект имеет хоть какую высоту, top уже не может быть 50%. А 49, или даже 48, а может и меньше.
=)
Это даже не костили. Это гнилые подпорки, а не центрирование. =)))
33 - 23.09.2012 - 23:11
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
Вы же должны знать, что при центрировании учитывается еще и высота объекта, подлежащего центрированию. Вот что делать, когда флажок снимается, и при таком условии ниже флажка появляется текст "реклама выключена"?
где в посте указано что при снятии флажка должен выводиться текст? Ты не умеешь составлять ТЗ :) так что это уже твои проблемы :)

Если все же надо сделать центрирование по высоте при добавлении текста после чекбокса, то нужно кое-что добавить в коде: после кода

<div class="banner_part_left_contr_1">
&nbsp;

нужно будет добавить
<br>&nbsp;
34 - 23.09.2012 - 23:17
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
Да и вообще, учитывая что объект имеет хоть какую высоту, top уже не может быть 50%. А 49, или даже 48, а может и меньше. =)
никаких 49 или 48 нет у меня в коде. все центрируется по середине, то есть указывается 50%.

Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
Это даже не костили. Это гнилые подпорки, а не центрирование. =)))
во-первых. Никто и не обещал, что будет легко и просто :)
во-вторых. видать ты еще не видел настоящих извратов в верстке :) особенно для браузера ie6 :)
Гость
35 - 23.09.2012 - 23:35
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
где в посте указано что при снятии флажка должен выводиться текст? Ты не умеешь составлять ТЗ :) так что это уже твои проблемы :)
вопрос был "как центрировать контент по вертикали", а не "как оттолкнуть верх контента в центр".
Разницу понимаешь? =))

Если бы мне надо было поставить верхний край элемента посредине, я бы не спрашивал, как отцентрировать, понятно? =)

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
во-первых. Никто и не обещал, что будет легко и просто :) во-вторых. видать ты еще не видел настоящих извратов в верстке
Вон как у вас безтабличная верстка называется, не знал. =)

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
никаких 49 или 48 нет у меня в коде. все центрируется по середине, то есть указывается 50%.
верх дива с чекбоксом находится на 50% высоты.
Тебе не кажется что это не то, что спрашивалось? =)

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
нужно будет добавить &nbsp;
бугагась. А если оно на две строчки перенесет?
Ты вообще понял про что вопрос? Про центрирование ЭЛЕМЕНТА по вертикали.
Этот ваш изврат - это НЕ центрирование ЭЛЕМЕНТА по вертикали. =))
Гость
36 - 23.09.2012 - 23:56
http://shpargalkablog.ru/2012/03/vyr...vertikali.html интересно почитать. несколько способов вертикального выравнивания. не так просто как в таблице, но знать о них стоит.
Гость
37 - 25.09.2012 - 02:12
div.classname
**
margin-top: -120px; /* margin-top = -(X/2) */
height: 240px; /* height = X */
top: 50%;
**

Не канает?
Гость
38 - 25.09.2012 - 15:42
Есть такой изврат: разложить все дивы в точности по структуре как в таблице (таблица, заголовок, строки, ячейки) и назначить диву тип отображения «table-cell» ну или как-то так (забыл, давно было дело) то есть по сути та же таблица, но определённая через CSS а не тегами: гланды через жопу.
Гость
39 - 25.09.2012 - 16:01
в третьем посте я говорил об этом, в IE6,7 не работает, а хак для них просто заменяет эти дивы обычной таблицей. Определенный изврат в этом есть ))


К списку вопросов






Copyright ©, Все права защищены