Jump to content
  • 0

Сайт без вертикальной прокрутки, адаптивный, футер прижат книзу


sejunctus
 Share

Question

Очень нужна помощь опытных верстальщиков. Визуально ТЗ на картинке.
Требования следующие:
1) футер прижат книзу
2) фоновый слайдер-карусель (выглядит именно так, по бокам предыдущая и следующая фотографии чуть затемненные)
3) полностью адаптивный, другими словами не должно быть ни горизонтальной, ни вертикальной прокрутки при любых разрешениях экрана
4) контент расположен в блоке поверх карусели
5) все это должно работать на CMS Joomla

Я уже чего только не пробовал. Универсального решения не нашел. Фиксишь футер, остается пространство между каруселью и футером.
Подгонять по высоте и прописывать стили для всех типов разрешений... Вряд ли оптимальный способ.
На ум приходит использовать карусель, чтобы картинки были фоновыми и использовать background-size: cover, но вот не придумал как это осуществить.
Высоту хедера и футера можно зафиксить (100 пкс)

В общем, очень надеюсь на помощь.
Думаю, данная задачка будет интересна многим. Вряд ли такие сайты попадаются на каждом шагу. (хотя, может есть примеры?)

mockup.jpg

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
3 минуты назад, Mary_RND сказал:

Такой пример подходит?

http://www.giulianovars.ru/

Не совсем. Есть прокрутка вертикальная. А в ТЗ сказано - никаких прокруток при любых разрешениях.

Попробовал погуглить разметку "святой грааль" (holy grail layout). Понравился вариант https://htmlacademy.ru/blog/29

Только пока не могу придумать, как это использовать в случае с каруселью.

Link to comment
Share on other sites

  • 0
24 минуты назад, Switch74 сказал:

судя по всему вам тупо карусельку нужно по размерам окна браузера

В том то и дело, что не просто "тупо карусельку".  Футер должен быть прижат книзу.
Прижимаем футер - при уменьшии окна браузера появляется зазор между каруселькой и самим футером.
А нужно, что это все вместе красиво адаптировалось. Знаете, как в случае с background-size: cover, когда уменьшаешь окно, и фон уменьшается пропорционально.

Link to comment
Share on other sites

  • 0

А что насчет height: 100vh? Футер же не абсолютный, из потока не выпал, то вся высота 100vh для слайдера будет занимать от хедера до футера. Или нет. Тогда margin'ами можно отделиться от верха и низа. В общем, попробуйте. Также не забывайте про flexbox, там может найтись решение.

 

Link to comment
Share on other sites

  • 0
8 часов назад, Switch74 сказал:

https://jsfiddle.net/cmzn284v/

в .middle запихиваете карусельку и все

Вот что получается (разрешение - 1920*1200 пкс).
Нужно избавиться от белого зазора между каруселью и футером. Если растянуть картинки по высоте до 100% и ширину поставить auto, то пропадает футер.

test_01.jpg

5 часов назад, kattiperk сказал:

А что насчет height: 100vh? Футер же не абсолютный, из потока не выпал, то вся высота 100vh для слайдера будет занимать от хедера до футера. Или нет. Тогда margin'ами можно отделиться от верха и низа. В общем, попробуйте. Также не забывайте про flexbox, там может найтись решение.

 

Про 100vh не очень понял, что вы имеете в виду. Скрипт или calc()?
Flexbox не совсем кроссбраузерно получится.

А что, если перебрать через медиа-запросы все возможные варианты высоты экрана? И под эти разрешения подгонять высоту.
Правда, получится довольно топорно и громоздко, особенно учитывая широкое разнообразие разрешений.

По идее, должен же быть более красивый способ

Link to comment
Share on other sites

  • 0
12 часа назад, Switch74 сказал:

каким образом футер исчезает, если картинкам поставить 100% высоты?

https://jsfiddle.net/cmzn284v/1/

Спасибо! Вроде получилось: http://steiner-glass.tmweb.ru/01/

Но теперь другая загвоздка: нужно центральное изображение сделать шире 2 других, а их напротив, ужать по бокам.
Карусель owl-carousel. Может, есть какой-нибудь способ? Через css криво как-то выходит...

Link to comment
Share on other sites

  • 0

не пойму почему у вас 4 active ставится, мне казалось нужно всего 3

у вас есть классы для центрального .active.center увеличиваете ширину, для всех остальных уменьшаете

Link to comment
Share on other sites

  • 0
42 минуты назад, Switch74 сказал:

не пойму почему у вас 4 active ставится, мне казалось нужно всего 3

у вас есть классы для центрального .active.center увеличиваете ширину, для всех остальных уменьшаете

Странно, вроде там 3 active стоит.

Проблема как раз в том, что непонятно, какие размеры прописывать у боковых картинок.
Вот смотрите: при разрешении в 1920 пкс скрипт делит всю ширину поровну между слайдами и всем прописывает 512 пкс.
При разрешении в 1920 мне нужно центральный слайд сделать шириной 1170 пкс. Что прописать у боковушек?
Прописывать нужно конкретную ширину, дабы перебить inline стиль.
В идеале было бы найти в скрипте функцию, которая делит ширину экрана поровну между всеми слайдами.
Но скрипт огромный, с кучей функций, а я в js не очень силен.

Link to comment
Share on other sites

  • 0

в идеале не стоит использовать сторонние скрипты, чтобы потом их переписывать :)

левый и правый блоки можно указывать в px или в %, например если вы им выделите по 20%, то центральному останется 60%
display:inline-block нужен будет и желательно сделать для этих блоков overflow:hidden;
я бы картинки вставлял через img, а не background и выравнивал по центру этих блоков

Link to comment
Share on other sites

  • 0
3 минуты назад, Switch74 сказал:

в идеале не стоит использовать сторонние скрипты, чтобы потом их переписывать :)

левый и правый блоки можно указывать в px или в %, например если вы им выделите по 20%, то центральному останется 60%
display:inline-block нужен будет и желательно сделать для этих блоков overflow:hidden;
я бы картинки вставлял через img, а не background и выравнивал по центру этих блоков

Проценты не годятся, т.к. ширина берется от родительского блока, а в карусели он - это сумма всех изображений.
7680 пкс - 20% это 1536 пкс.
Картинки через background, чтобы использовать свойство background-size: cover, в противном случае блок будет подстраиваться по высоте либо, что еще хуже, изображения будут вытягиваться (у нас же height: 100%).
Может, вы знаете скрипт карусели попроще? Без таких наворотов?

Link to comment
Share on other sites

  • 0
42 минуты назад, sejunctus сказал:

Может, вы знаете скрипт карусели попроще? Без таких наворотов?

А что если элементы карусели сделать списком?

<ul class="carusel">
  <li></li>
  <li class="active"></li>
  <li></li>
</ul>

тот элемент, который с классом active делать по ширине 60% (ну или в px), а два других делать узкими. Элементам <li> можно поставить через background-image.

 

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