Приховуємо останній елемент у рядку під час зміни ресайзи вікна браузера

Давненько, я нічого не писав про jQuery, все якось руки не доходили, хоча багато цікавих скриптів пишеться в проектах. Так ось про що я: зіткнувся з таким завданням: Є 5 елементів-товарів ширина, яких тягнеться (ресайзиться) на всю ширину обгортки, потрібно зробити, щоб при ширині обгортки менше ніж 1200 пікселів кількість елементів-товарів ставала 4, інакше кількість елементів-товарів має бути 5. Простіше кажучи виглядає це дуже ефектно та й зручно. Вирішенням цього завдання і займемося зараз.

Для загального уявлення, як виглядатиме елемент статті/товару/послуги подивитися на картинку нижче:

зміни

Для старту знадобитьсяhtml-каркас сторінки, я беру його звідси, і розмітка рядка товарів.

HTML розмітка рядка товарів

Отже, у нас є загальний контейнер .container, який тягнеться. Є рядок .one_row, який містить товари/послуги/статті. І є відповідно 5 контейнерів .grid_5, для послуг/товарів – у демо-прикладі будуть статті.

Розпишу детальніше про розмітку товару:

  • Посилання-контейнер .prod_item
  • Бокс для зображення .prod_thumb
  • Подвійна стрілка для боксу зображення .prod_arrow
  • Назву товару .prod_title

Забув сказати, що коли елементів у рядку стане 4, то рядку додасться слас .col_4 .

Я думаю, що з розміткою більш-менш розібралися, тепер давайте поринемо в правилаCSS.

Стилізація товарів/послуг/статей

Як Ви могли переконатися, вище я описав порядне число класів, яким потрібно задати стилі. До речі, забув згадати, що скидання стилів можна взяти тут. Почнемо із загальних правил:

Пару слів про загальні стилі.

Рядку .one_row за допомогою псевдоелементів :before і :after задаємо скидання обтікання, чому? Бо бокси .grid_5 вирівнюються в ряд обтіканням float і щоб все було чітко, обтікання потрібно скинути. Блокам .grid_5 крім обтікання задаємо ширину 20%, також уточнюємо якщо блоків у рядку буде 4, то ширина їх буде 25%; Тут теж є важливий момент ІЕ7 реально посмикується при ресайзі таких відсоткових широт, тому для .ie7 потрібно вказувати ширину поменше, в даному випадку це 24.8% і 19.8% - можете спробувати зменшити лише на 0.1%. І ще ми задаємо рядку .one_row негативний відступ ліворуч - це відступи між блоками товарів/послуг/статей.

Ще є клас .hidden - він додаватиметься останньому елементу рядка і стилів для нього аж один рядок display: none; . Ось загалом і пояснення для загальних стилів.

Приступимо до стилізації самих блоків товарів/послуг/статей:

В принципі нічого особливого не написав, але розжую)

Контейнер-посилання задаємо як блоковий елемент і вказуємо відступ зліва 20px - для себе Ви можете задати більший відступ, нічого не поламається, тільки не забувайте вказувати аналогічний негативний відступ зліва у рядка .one_row . Назвою задаємо колір, ширину, шрифт. Контейнер картинки задаємо рамку шириною 7px, висоту (також можете вказати ту яка Вам потрібна), вирівнювання картинок по центру, відступ знизу і вказуємо що позиція блоку відносна - це вказується для того, щоб позиціонувати стрілочки контейнера картинки.

Як Ви могли помітити першу стрілку я позиціоную абсолютно щодо контейнера картинки і задаю їй розмір: 20px висоту і 20px скоси з боків та колір червоний.Це дуже важливо, колір потрібно ставити у форматі rgba() тому, що Mozilla Firefox до стандартногозавдання кольору типу #ff0000 відноситься погано і домальовує навколо стрілки рамку і виглядає це жахливо. Природно ІЕ7-8 не розуміє rgba () тому для них окремо вказуємо колір стрілок. Другу стрілочку (білу) позиціонуємо абсолютно щодо першої стрілки, тобто накладаємо її поверх першої. Ось і всі таємниці стилізації.

jQuery скрипт

З написанням стилів покінчено, залишилося написати невеликий (мінімальний) скрипт, який візьме управління нашим завданням під свій контроль. Нагадаю завдання: при ширині обгортки менше ніж 1200 пікселів кількість елементів-товарів стає 4, інакше кількість елементів-товарів стає 5.

Суть завдання ясна, для вирішення скористаємося умовою: Якщо ширина тіла сайту менша ніж 1200px, то додаємо рядку клас .col_4 , знаходимо в ньому останній елемент додаємо йому клас .hidden ; інакше: видаляємо у рядка клас .col_4 і в останнього елемента також видаляємо клас .hidden . Напишемо, що промовили:

Майже ідеально, але головне далі. По суті ми напсіали лише умову, яка спрацює при завантаженні сторінки, а після ресайзу нічого не змінитися, тому потрібно скористатися функцією resize() і злегка дописати скрипт, ось так:

Ось тепер все ідеально! Скрипт досить простий та й усі пояснення криються у постановці завдання. Використанняланцюгових функцій jQuery значно зменшує скрипт.

Результат Ви можете побачити на сторінці демонстрації (нагадаю, що я вже писав статтю як зробити демонстрації уроків у WordPress), а також можете скачати вихідні дані нижче:

Скрипт працює у всіх популярних браузерах та в IE7+, в IE6 не перевіряв, тому що я з ним не працюю, і Вам не раджу)

Висновок

Намагався за таким принципомпобудувати мобільну версію сайту, щоб елементи зменшувалися відповідно до розширення екрану, але щось пішло не так(((

Через медіа запити було б простіше?

Alex, завдання так не стояло, та й тягнувся макет тільки в певних межах

логічно завдання вирішувати, довівши кількість блоків до 1 щоб не було горизонтального прокручування

Оптимізація підключення Google Maps, відключення непотрібних файлів стилів та шрифтів, відтворення картки струму у разі наявності контейнера на сторінці

Сьогодні поділюся з Вами моїм скриптом, який я використовую для простої перевірки полів форм на заповненість перед відправкою їх на сервер, за допомогою jQuery (скрипт може перевіряти кілька форм на сторінці)

Хочу поділитися з Вами HTML розміткою секції head, яку я використовую для верстки сайтів

У даному уроці ми розглянемо 5 кроссбраузерних, сучасних рішень CSS3, які дуже полегшують верстку складних, креативних проектів. Зокрема розберемося як зробити прозорість, тінь, поворот, градієнт та інверсію елементів

Нарешті випала вільна хвилина і на Ваші прохання я написав ще один, маленький скрипт для нециклічного слайдера з горизонтальною прокруткою, без використання плагінів

Responsive design = чуйний дизайн = аксіома. Мінімальна історія розвитку веб дизайну: його шлях від фіксованого до рідкого та до чуйного (реагуючого, адаптивного, responsive) дизайну

Сьогодні створимо дуже простий, можна сказати елементарний анімований циклічний слайдер з горизонтальним прокручуванням своїми руками, без використання плагінів (можна використовувати кілька слайдерів на сторінці)