Tailwind CSS — отзывчивые точки останова как компоненты

Что делать с чувствительными точками останова в качестве компонентов Tailwind?

Без Tailwind я раньше объявлял точки останова как миксины scss:

@mixin tablet-portrait {
  @media (min-width: 700px) {
    @content;
  }
}

Потом:

@include tablet-portrait {
  // whatever
}

Я знаю, что в Tailwind есть адаптивные вспомогательные классы, чтобы использовать их как встроенные в качестве md:color-red, но мне нужно абстрагировать эти точки останова как компоненты, как в приведенном выше примере.

Как извлечь точки останова Tailwind из конфигурационного файла Tailwind?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
17
0
22 198
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Я нашел директиву @screen, которая решает этот вопрос:

https://tailwindcss.com/docs/functions-and-directives/#экран

так же легко, как

@screen md {
  // whatever
}

По попутному ветру Вы можете использовать и настроить точки останова по умолчанию для вашего проекта.

  1. Открой свой tailwind.config.js

  2. Обновите/добавьте screens внутри вашего 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) { ... }
      }
    }
    

Источник: https://tailwindcss.com/docs/breakpoints

@screen md не работает при использовании SCSS.
Между тем, если у вас есть точки останова (ключ screens), установленные в вашем tailwind.config.js, вы можете использовать это

.your-selector {
  // your usual CSS
  @media (min-width: theme('screens.xl.min')) {
    // your media-queried CSS when > xl breakpoint
  }
}

Я обнаружил, что @screen md отлично работает в SCSS в моей настройке, но это решение интересно отметить, поскольку его можно использовать для max-width точек останова без изменения настройки точки останова по умолчанию: @media (max-width: theme("screens.md")) { ... } (обратите внимание, что это на 1 пиксель от идеального, но должно работать в 99,9% ситуаций).

fredrivett 08.09.2021 16:35

в tailwind.config.js

const defaultTheme = require("tailwindcss/defaultTheme");

module.exports = {
  
  theme: {
    screens: {
      // adding xs to the rest
      xs: "475px",
      // if you did not add this, you would have only "xs"
      ...defaultTheme.screens,
    },
  },
  
};

Вместо того, чтобы использовать тему по умолчанию, вы можете использовать свойство «extend», чтобы разрешить расширение размеров экрана... v1.tailwindcss.com/docs/breakpoints#пользовательские медиа-запросыv2.tailwindcss.com/docs/…tailwindcss.com/docs/screens#adding-larger-breakpoints

Justin L 21.02.2022 11:24

Другие вопросы по теме