Содержание

Настройка экранов — Tailwind CSS

Настройка пользовательских экранов

Вы определяете контрольные точки вашего проекта в разделе theme.screens вашего файла tailwind.config.js. Ключи становятся вашими адаптивными модификаторами (например, md:text-center), а значения — это min-width, с которой должна начинаться контрольная точка.

Контрольные точки по умолчанию основаны на общих разрешениях устройств:

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      'sm': '640px',
      // => @media (min-width: 640px) { ... }
      'md': '768px',
      // => @media (min-width: 768px) { ... }
      'lg': '1024px',
      // => @media (min-width: 1024px) { ... }
      'xl': '1280px',
      // => @media (min-width: 1280px) { ... }
      '2xl': '1536px',
      // => @media (min-width: 1536px) { ... }
    }
  }
}

Не стесняйтесь иметь столько экранов, сколько хотите, называя их так, как вы предпочитаете для своего проекта.

​Отмена настроек по умолчанию

Чтобы полностью заменить контрольные точки по умолчанию, добавьте свою настраиваемую конфигурацию screens непосредственно под ключом theme:

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      'sm': '576px',
      // => @media (min-width: 576px) { ... }
      'md': '960px',
      // => @media (min-width: 960px) { ... }
      'lg': '1440px',
      // => @media (min-width: 1440px) { ... }
    },
  }
}

Все экраны по умолчанию, которые вы не переопределили (например, xl в приведенном выше примере), будут удалены и не будут доступны в качестве модификаторов экрана.

​Переопределение одного экрана

Чтобы переопределить один размер экрана (например,

lg), добавьте ваше собственное значение screens под ключом theme.extend:

tailwind.config.js

module.exports = {
  theme: {
    extend: {
      screens: {
        'lg': '992px',
        // => @media (min-width: 992px) { . .. }
      },
    },
  },
}

Это заменит значение по умолчанию screens с тем же именем, без изменения порядка ваших контрольных точек.

​Добавление больших контрольных точек

Самый простой способ добавить дополнительную контрольную точку большего размера — использовать ключ extend:

tailwind.config.js

module.exports = {
  theme: {
    extend: {
      screens: {
        '3xl': '1600px',
      },
    },
  },
  plugins: [],
}

Это добавит ваш настраиваемый экран в конец списка контрольных точек по умолчанию.

​Добавление меньших контрольных точек

Если вы хотите добавить дополнительную небольшую контрольную точку, вы не можете использовать extend , потому что маленькая контрольная точка будет добавлена в конец списка контрольных точек, а контрольные точки должны быть отсортированы от наименьшего к наибольшему, чтобы работать должным образом с система контрольных точек минимальной ширины.

Вместо этого переопределите ключ screens, повторно указав контрольные точки по умолчанию:

tailwind.

config.js

const defaultTheme = require('tailwindcss/defaultTheme')
module.exports = {
  theme: {
    screens: {
      'xs': '475px',
      ...defaultTheme.screens,
    },
  },
  plugins: [],
}

Мы предоставляем тему по умолчанию в tailwindcss/defaultTheme, поэтому вам не нужно самостоятельно поддерживать список контрольных точек по умолчанию.

​Использование пользовательских экранных имен

Вы можете называть свои пользовательские экраны как хотите, и не ограничиваться соглашением sm/md/lg/xl/2xl, которое Tailwind использует по умолчанию.

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      'tablet': '640px',
      // => @media (min-width: 640px) { ... }
      'laptop': '1024px',
      // => @media (min-width: 1024px) { ... }
      'desktop': '1280px',
      // => @media (min-width: 1280px) { ... }
    },
  }
}

Ваши адаптивные модификаторы будут отражать эти пользовательские имена экрана, поэтому их использование в HTML теперь будет выглядеть следующим образом:

<div>
  <!-- . .. -->
</div>

​Расширенная конфигурация

По умолчанию контрольные точки имеют минимальную ширину, чтобы стимулировать рабочий процесс mobile-first. Если вам нужен больший контроль над вашими медиа-запросами, вы также можете определить их с помощью синтаксиса объекта, который позволяет указать явные значения минимальной и максимальной ширины.

​Контрольные точки максимальной ширины

Если вы хотите работать с контрольными точками максимальной ширины вместо минимальной ширины, вы можете указать свои экраны как объекты с помощью ключа

max:

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      '2xl': {'max': '1535px'},
      // => @media (max-width: 1535px) { ... }
      'xl': {'max': '1279px'},
      // => @media (max-width: 1279px) { ... }
      'lg': {'max': '1023px'},
      // => @media (max-width: 1023px) { ... }
      'md': {'max': '767px'},
      // => @media (max-width: 767px) { ... }
      'sm': {'max': '639px'},
      // => @media (max-width: 639px) { . .. }
    }
  }
}

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

​Контрольные точки с фиксированным диапазоном

Если вы хотите, чтобы в ваших контрольных точках указывались как min-width, так и max-width, используйте вместе клчюи min и max:

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      'sm': {'min': '640px', 'max': '767px'},
      // => @media (min-width: 640px and max-width: 767px) { ... }
      'md': {'min': '768px', 'max': '1023px'},
      // => @media (min-width: 768px and max-width: 1023px) { ... }
      'lg': {'min': '1024px', 'max': '1279px'},
      // => @media (min-width: 1024px and max-width: 1279px) { ... }
      'xl': {'min': '1280px', 'max': '1535px'},
      // => @media (min-width: 1280px and max-width: 1535px) { ... }
      '2xl': {'min': '1536px'},
      // => @media (min-width: 1536px) { .
.. } }, } }

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

<div>
  Этот текст будет центрирован на средних экранах, но вернется к значениям
  по умолчанию (выравнивание по левому краю) для всех других размеров экрана.
</div>

​Контрольные точки с несколькими диапазонами

Иногда может быть полезно применить одно определение контрольной точки в нескольких диапазонах.

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

tailwind.config.js

module.exports = {
  theme: {
    screens: {
      'sm': '500px',
      'md': [
        // Sidebar appears at 768px, so revert to `sm:` styles between 768px
        // and 868px, after which the main content area is wide enough again to
        // apply the `md:` styles.
{'min': '668px', 'max': '767px'}, {'min': '868px'} ], 'lg': '1100px', 'xl': '1400px', } } }

​Пользовательские медиа-запросы

Если вам нужен полный контроль над сгенерированным медиа-запросом, используйте ключ raw:

tailwind.config.js

module.exports = {
  theme: {
    extend: {
      screens: {
        'tall': { 'raw': '(min-height: 800px)' },
        // => @media (min-height: 800px) { ... }
      }
    }
  }
}

Медиа-запросы, определенные с помощью ключа raw, будут выводиться как есть, а ключи min и max будут проигнорированы.

А ваши картинки крадут время?

Загружать большое изображение на мобильный телефон пользователя = проявить к нему неуважение. Как решить проблему неуместных картинок на вашем сайте.

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

В далеком (далеком ли?) прошлом для мобильных сайтов разрабатывалась отдельная, мобильная, версия.

Сейчас все чаще отдается предпочтение адаптивным или отзывчивым интерфейсам.

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

В этой прекрасной сказке есть один отрицательный герой — картинки.

Предположим, на вашем чудесном сайте есть hero image — большой и красивый баннер, привлекающий к себе взгляды посетителей. На компьютере сайт грузится быстро, баннер выполняет свою продающую роль, интерфейс выглядит отлично.

Чтобы картинка адаптировалась под разные экраны вы делаете что-то вроде:

Вес нашей картинки 110 КБ, размеры картинки — 960х539. Она восхитительно смотрится.

Но что произойдет, если ваш сайт открыть, например, на телефоне? Через мобильный интернет? В области?

Чтобы загрузить эту картинку через 3G в Питере, потребуется 3,34 сек. Три с половиной секунды только на картинку, Карл! Спросите себя, а нужен ли вам реальный размер этой картинки на маленьком экране телефона? Отвечу за вас — конечно нет.

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

Показать только нужное

Есть кардинальный вариант — вообще не показывать на мобильном устройстве эту картинку.

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

Делаем просто:

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

Но тут вас будет ждать огромное разочарование — картинка по прежнему скачивается, безжалостно пожирая трафик пользователя.

 

На фоне

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

Браузер загрузит только ту картинку, которая предусмотрена для текущего разрешения.

Profit!

Но вы потратите довольно много времени на то, чтобы подменять картинки на каждом разрешении. Ваш CSS слегка вспухнет. А рано или поздно кто-то забьет на это (от лени или по незнанию) и на мобильных снова полезут увесистые картинки.

И я уже молчу про вариант, когда действительно нужен , а background вам не подойдет.

 

Решабельно

В нынешней спецификации HTML есть отличное решение нашей с вами проблемы. Умные люди пишут эти спецификации!

Я настаиваю на вашем знакомстве с Отзывчивыми изображениями.

Отзывчивое изображение — загружается только та версия картинки, которая подходит по размеру области, экрана и DPI.

Вся эта магия реализуется при помощи дополнительных атрибутов к тегу img.

Так выглядит основной синтаксис, обеспечивающий вам отзывчивые изображения:

При помощи разных манипуляций с этой формулой мы можем обеспечить себе не только облегчение от груза картинок, но и:

  • Качественные картинки на ретине.
  • Показ подходящего формата в зависимости от знаний браузера.

 

Живой пример

Примечание: Codepen не очень дружит с отзывчивыми картинками. Аналогичные примеры http://responsiveimages.org/demos/variable-width/index.html и https://googlechrome.github.io/samples/picture-element/

В приведенном примере картинка занимает 700px при ширине экрана больше 700px и 100% ширины при меньших разрешениях.

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

Вы можете видеть, что адреса картинок указаны в ранее не используемом атрибуте srcset. У этого атрибута следующий синтаксис: srcset=“URL-картинки размер-в-w, URL-картинки размер-в-w”. И так нужное количество раз.

Дальше пишем еще один новый атрибут — sizes. Он содержит в себе информацию о том, сколько места занимает картинка на том или ином разрешении. Для брейкпоинтов используется обычное медиа-выражение. Синтаксис: sizes:”брейкпоинт размер-в-px/vw”. Вы можете перечислить нужное количество брейкпоинтов и задать для каждого размер отображаемой картинки. Можно указать одно значение, например, 100vw. Тогда картинка будет всегда на 100% ширины экрана.

 

Злоупотребление картинками

Советую вам сразу после прочтения этой статьи проверить свой сайт на размеры картинок.

Делаем следующее:

  1. Открываем Chrome в режиме инкогнито.
  2. Открываем Инструменты разработчика (DevTools).
  3. Переходим на вкладку Network, нажимаем Img.
  4. Заходим на наш сайт и видим внизу результат.

 

 

Заключение

Я не рассказала и десятой части о том, как можно решить проблему воровства трафика из-за больших картинок.

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

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

  • Проведите тест Тафта.
  • Проверьте финальную скорость загрузки.
  • Оптимизируйте изображение (крошечная панда).
  • Используйте новые атрибуты для img.

Пишите в комментарии, какие темы вас интересуют и я обязательно напишу о них в следующих статьях.

Полезные ссылки:

  • Получаем разные разрешения одной картинки РАЗ и ДВА.
  • Читаем документацию: раз, два, три.
  • Изучаем мануалы: первый, второй, третий.
  • Проверяем поддержку в браузерах.

Оцените статью

Средняя оценка 0 / 5. Всего проголосовало 0

Полноэкранное адаптивное фоновое изображение с помощью CSS

Как добавить полноэкранное адаптивное фоновое изображение с помощью CSS.

Glenn

2 мая 2014 г.

02.05.2014

Архивировано

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

Базовая реализация CSS3

Здесь мы используем свойство Background Shorthand, и в этом случае вы также можете добавить цвет фона.

Если вы используете элемент div, убедитесь, что он равен width: 100%; и высота: 100%;. Вам также может потребоваться установить значение body и html на 100%

Полноэкранное адаптивное фоновое слайд-шоу Реализация

Здесь мы предполагаем, что вы используете полноразмерное фоновое изображение в динамическом слайд-шоу/галерее, но если вы хотите, чтобы это было для одного изображения тогда вы можете просто использовать CSS для «слайд-шоу li» и раскомментировать /* */, чтобы вставить URL-адрес изображения. Если вы хотите увидеть демонстрацию со сценарием jQuery Cycle, посетите наш живой клиентский сайт здесь.

Полноэкранное адаптивное фоновое изображение с демонстрацией CSS

Реклама Эта статья может оказаться полезной.

ClickUp 3.0 — новый взгляд на производительность.

Новый этап эволюции командной производительности и совместной работы уже здесь. Откройте новое поколение производительности с бесконечными возможностями ClickUp 3. 0.

Promo Save on Clickup 3.0

Ad Вы можете найти это полезным

Wavebox — революционный браузер, который вы должны использовать прямо сейчас!

Работайте эффективнее с помощью приложений, удобных вкладок, входа в систему с несколькими учетными записями, единого поиска, гибких рабочих пространств и многого другого…

Получите СКИДКА 35 % промо ссылка внизу справа)

Промо Сохранить на Wavebox

Вам надоели одни и те же старые стоковые изображения?

Перейдите на сайт JumpStory, чтобы получить неограниченный доступ к миллионам подлинных стоковых изображений, застрахованных по всему миру.

Получите скидку 25% на все планы JumpStory  сегодня с эксклюзивной скидкой Slick Media JumpStory .

Промо Сохранить на JumpStory

Объявление Возможно, вам будет полезно

Запишите свой экран, чтобы лучше общаться

Loom — это самый быстрый способ записать быстрое видео вашего экрана. Он прост в использовании и идеально подходит для гибридных рабочих мест. БЕСПЛАТНЫЕ и доступные платные планы.

Получить ткацкий станок

Начать запись бесплатно

Промо Экономьте на Loom

Самый быстрый и простой конструктор электронной почты и целевых страниц.

BEE FREE  и позволяют создавать великолепные, отзывчивые электронные письма за считанные минуты. BEE PRO  и создавайте электронные письма и целевые страницы очень быстро. Код не требуется!

Получите BEE Free и BEE Pro

Начните проектирование

Promo Сэкономьте на BEE Free и BEE Pro

Получите самый популярный в мире менеджер паролей со скидкой 50%

1Password — самый простой способ хранения и поделитесь логинами , надежные пароли, кредитные карты и многое другое. С 1Password вам нужно запомнить один пароль!

Воспользуйтесь рекламной акцией Slick Media 1Password и получите уникальную скидку 50% на 1Password , просто нажав на ссылку.

Промо Сохранить на 1Password

Этот контент может содержать ссылки на тщательно отобранных партнеров, за регистрацию которых мы можем получать комиссию.

Свяжитесь с нами

Полноэкранный режим — Документация Smart Slider

Кнопка для разворота слайдера на весь экран. Это удобно для просмотра больших изображений без ограничений экрана или проведения презентаций.

☝️ Примечание: Этот элемент управления доступен только в Про версия!

Вы можете найти этот элемент управления в Настройках ползунка → вкладка Элементы управления. Он доступен только для ползунков типа «Простой» и «Блок».

⚠️ Предупреждение: iOS не поддерживает полноэкранный API, поэтому полноэкранный элемент управления там не появится!
К нормальному

Выберите одну из полноэкранных кнопок. Вы также можете выбрать свой собственный образ.

Цвет

Цвет полноэкранной кнопки.

Зеркало

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

Полноэкранный стиль

Здесь вы можете настроить свою кнопку.

Позиция

Выберите позицию, в которой вы хотели бы разместить полноэкранную кнопку в слайдере.

  • Стек — Порядок элементов управления, которые вы ставите в одинаковое положение.
  • Смещение — это то, как далеко ваша полноэкранная кнопка будет от выбранной позиции. Если вы перейдете в расширенный режим, вы можете указать позицию, и здесь вы также сможете использовать наши управляющие переменные.
Настольный/планшет/мобильный размер

Полноэкранный контроль будет масштабирован до этих значений для рабочего стола, планшета и мобильного устройства. 1 — исходное соотношение размеров.

Показывает при наведении

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

Скрыть

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

Скрыть на слайдах

Вы можете скрыть управление полноэкранным режимом на определенных слайдах, разделенных запятыми. Используйте индекс слайда (1 = первый слайд) вместо идентификатора слайда.

☝️ Примечание: Если вы хотите, чтобы на слайдере были слои, которые будут отображаться только в полноэкранном режиме, проверьте этот учебник.
1
Как сделать, чтобы слой отображался только в полноэкранном режиме?

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

  1. Добавьте к слою собственный класс CSS, например: showinfull
  2. Скрыть свой слой на всех устройствах
  3. Перейдите в настройки слайдера → вкладка «Разработчик» и вставьте этот код в поле CSS:
     . n2-in-fullscreen .showinfull{
    дисплей:блокировать!важно;
    }
    
  4. Это сделает каждый слой, который имеет showinfull Класс виден, когда ползунок находится в полноэкранном режиме.

2
Как сделать, чтобы слой не отображался в полноэкранном режиме?

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

  1. Добавьте к слою пользовательский класс CSS, например: donthowinfull
  2. Перейдите в настройки слайдера → вкладка «Разработчик» и вставьте этот код в поле CSS:
     .n2-в полноэкранном режиме .dontshowinfull{
    отображение:нет !важно;
    }
    

Это сделает каждый слой с классом dontshowinfull скрытым, когда ползунок находится в полноэкранном режиме.

Вы получили ответ на свой вопрос?

Спасибо за ответ Не удалось отправить отзыв.
Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *