Модераторы: Illuminaty

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по верстке таблицами или дивами 
:(
    Опции темы
Johny_03
Дата 22.1.2013, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Столкнулся с небольшой трудностью по верстке, выделенному красным цветом фрагменту. Дивами сверстать не получилось, постоянно какие-то непонятки выскакивают. (то ссылки не кликабельные, то с позиционированием что-то не то) Попробовал табличной версткой, но не знаю как сделать разницу высоты, отмеченную красной стрелкой на рисунке. Подскажите пожалуйста! Сам давно не занимался версткой, позабывал многое.
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 22.1.2013, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



вот этот блок у тебя должен выглядеть примерно так
Код

<div>
    <div>
        <div>Название</div>
        <div>Картинка</div>
        <div>Кнопка</div>
    </div>
    <div>
        <div>Название</div>
        <div>Картинка</div>
        <div>Кнопка</div>
    </div>
    <div>
        <div>Название</div>
        <div>Картинка</div>
        <div>Кнопка</div>
    </div>
    <div>
        <div>Название</div>
        <div>Картинка</div>
        <div>Кнопка</div>
    </div>
</div>

Высота у 4-х блоков одинаковая, я правильно понимаю ? В каждом три контейнера.. Что мешает сделать блок фиксированной высоток. Название прижать к верху, кнопку книзу?



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Johny_03
Дата 23.1.2013, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Цитата(Gold Dragon @ 22.1.2013,  22:47)

Высота у 4-х блоков одинаковая, я правильно понимаю ? В каждом три контейнера.. Что мешает сделать блок фиксированной высоток. Название прижать к верху, кнопку книзу?

высота 2-го и 4-го блоков немного меньше, чем 1-й и 3-й. Но у меня запарка получается с позиционированием. Absolute ставить не совсем подходит,  а relative - получается венегрет с координатами. Каждый последующий блок привязывается к координатам предыдущего. Конечно, может я что-то не так делаю. Попробую еще. Спасибо!
PM MAIL   Вверх
ksnk
Дата 23.1.2013, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Johny_03, А в чем вообще проблема?
http://jsfiddle.net/EQX3S/
Слегка доработанный макет от Gold Dragoncontainer добавлен для совместимости с IE, из за которого указывать размер одновременно с марджинами и паддингами небезопасно.

Стиль block можно делать как с float:left( тогда внизу нужно разметить элемент с clear:both), так и с inline-block, что тянет за собой дополнительных тараканов(несовместимость со старыми IE и учет размера пробельного символа между элементами), но зато позволяет выравнивать элементы с помощью text-align:justify



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Gold Dragon
Дата 23.1.2013, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



Цитата(Johny_03 @  23.1.2013,  09:55 Найти цитируемый пост)
высота 2-го и 4-го блоков немного меньше, чем 1-й и 3-й. Но у меня запарка получается с позиционированием. Absolute ставить не совсем подходит,

да я про это и говорю... поставь height


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 23.1.2013, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



вот что-то такое

Добавлено @ 13:16
Код

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        .block1,
        .block2,
        .block3,
        .block4{
            width: 100px;
            height: 200px;
            display:inline-table;
            vertical-align: baseline;
            margin: 0 10px;
            position: relative;
            text-align: center;
        }

        .main {
            min-width: 500px;
            margin: 0 auto;
        }
        .main:after{
            display: table;
        }
        .block1 > div:nth-child(1),
        .block2 > div:nth-child(1),
        .block3 > div:nth-child(1),
        .block4 > div:nth-child(1)
        {
            background-color: #ccc;
            height: 30px;
        }

        .block1 > div:nth-child(3),
        .block2 > div:nth-child(3),
        .block3 > div:nth-child(3),
        .block4 > div:nth-child(3)
        {
            position: absolute;
            background-color: #ccc;
            height: 30px;
            text-align: center;
            bottom: 1px;
            width: 100px;
        }
        .block1{
            border: 1px solid red;
        }

        .block2 {
            border: 1px solid blue;
        }

        .block3 {
            border: 1px solid green;
        }

        .block4 {
            border: 1px solid yellow;
        }
    </style>
</head>
<body>
<div class="main">
    <div class="block1">
            <div>Название</div>
            <div>Картинка<br>Картинка<br>Картинка</div>
            <div>Кнопка</div>
    </div>
    <div class="block2">
            <div>Название</div>
            <div>Картинка</div>
            <div>Кнопка</div>
    </div>
    <div class="block3">
            <div>Название</div>
            <div>Картинка<br>Картинка</div>
            <div>Кнопка</div>
    </div>
    <div class="block4">
            <div>Название</div>
            <div>Картинка</div>
            <div>Кнопка</div>
    </div>
</div>
</body>
</html>


Добавлено через 7 минут и 21 секунду
http://jsfiddle.net/jXqP7/

Это сообщение отредактировал(а) Gold Dragon - 23.1.2013, 13:20


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Johny_03
Дата 23.1.2013, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Спасибо, очень сильно помогли!
PM MAIL   Вверх
Johny_03
Дата 24.1.2013, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Ваши примеры работают в IE. А мой почему-то не хочет... Вместо блоков - пустота. http://jsfiddle.net/EQX3S/3/

И еще не получается установить ссылку на "Название" и на "Кнопку" (чтобы кликабельным был не только текст, но и фон-кнопка). Пробовал с <a href="#"></a> внутри дива и вне дива - все сдвигается и фон исчезает. Как правильно реализовать этот момент?

Это сообщение отредактировал(а) Johny_03 - 24.1.2013, 01:54
PM MAIL   Вверх
Gold Dragon
Дата 24.1.2013, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



ну по-первых, ты задаёшь высоту сначала для всех блоков, а потом для каждого да ещё разной высоты
Код

.block1, .block2, .block3, .block4 {
           height: 396px;
       }
       
       .block1 > div:nth-child(2) {
           height: 239px;
       } 
       .block2 > div:nth-child(2) {
          height: 179px;
       }
       .block3 > div:nth-child(2) {
           background-color:#9FBE94;
           height: 239px;
       }
       .block2 > div:nth-child(4), .block4 > div:nth-child(4) {
           background-color:#7DB6DB;
           height: 39px;
       } 
       .block4 > div:nth-child(2) {
           height: 179px;
       } 
/*картинка УСЛУГИ*/
       
       .block2 > div:nth-child(3), .block4 > div:nth-child(3) {
           position: absolute;
           background-color: #ccc;
           height: 44px;
           text-align: center;
           bottom: 57px;
           width: 230px;
       } /*нижняя кнопка-подробнее 2-го и 4-го блоков */


       
       .block1, .block2, .block3, .block4 {
           border: 0px solid red;
           color:#FFF;
       }


Цитата(Johny_03 @  24.1.2013,  01:46 Найти цитируемый пост)
чтобы кликабельным был не только текст, но и фон-кнопка
это как? поясни



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ksnk
Дата 24.1.2013, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Johny_03, как можно заметить - разметка у разных блоков разная. Где-то есть услуги, где-то нет. Раскраска разных блоков тоже разная, так что пользоваться :nth-child(X) не особенно разумно. Сейчас css слишком завязан на верстку, при смене разметки придется пперелопатить и стилевые правила. Imho, проще и понятнее назвать каждый конкретный див соответствующим классом и строить css в соответствии с классовыми селекторами. Приятным бонусом будет совместимость с IE8--  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Johny_03
Дата 24.1.2013, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Цитата(Gold Dragon @ 24.1.2013,  06:40)
Цитата(Johny_03 @  24.1.2013,  01:46 Найти цитируемый пост)
чтобы кликабельным был не только текст, но и фон-кнопка
это как? поясни



Например в этом блоке
Код

.block2 > div:nth-child(3), .block4 > div:nth-child(3) {
           position: absolute;
           background-color: #ccc;
           height: 44px;
           text-align: center;
           bottom: 57px;
           width: 230px;
       } /*нижняя кнопка-подробнее 2-го и 4-го блоков */

...будет текст "Подробнее" на фоне #ccc;
Нужно сделать так, чтобы работал клик на фоне #ccc, т.е. этот фон и является кнопкой, на которую нужно сделать клик. На макете выше это выглядит, как кнопка "Подробнее".
PM MAIL   Вверх
Gold Dragon
Дата 24.1.2013, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



Цитата(ksnk @  24.1.2013,  09:00 Найти цитируемый пост)
так что пользоваться :nth-child(X) не особенно разумно.
зато HTML чистый  smile 

Цитата(Johny_03 @  24.1.2013,  09:51 Найти цитируемый пост)
Нужно сделать так, чтобы работал клик на фоне #ccc, т.е. этот фон и является кнопкой, на которую нужно сделать клик. На макете выше это выглядит, как кнопка "Подробнее". 
попробуй сделать А блоком и задай размеры как у блока.. или повесь обработчик клика на блок


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Johny_03
Дата 24.1.2013, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.3.2008

Репутация: нет
Всего: нет



Понял, что чем дальше пытаюсь что-то сделать, тем больше проблем. Особенно с совместимостью IE. Перепробовал все, на что хватило мозгов - а результат неутешающий.
PM MAIL   Вверх
Gold Dragon
Дата 24.1.2013, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 9
Всего: 71



Цитата(Johny_03 @  24.1.2013,  23:24 Найти цитируемый пост)
 Особенно с совместимостью IE.
я на него забил... Смотрю чтобы совсем дизайн не поехал... да и то только если Осёл 8 и старше.. просто надоело... Чем больше народа будут игнорировать Осла, тем больше народа будет переходить на другие браузеры и тем быстрее мы заставим майкрософт следовать спецификации, а не жить в 90-х прошлого тысячилетия



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
wetrov
Дата 3.3.2013, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



согласен с Gold Dragon
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.1198 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.