仅目标移动断点
Target mobile only breakpoint
我正在使用 Tailwind v3。
我在 javascript:
的内联样式中应用了自定义背景颜色
<div style="background-color: RANDOM_GENERATED_COLOR" />
但是在移动断点中,我希望它忽略这种背景颜色,我不想要背景。所以我所做的是添加 !bg-transparent
,使用“!”修饰符我让它覆盖内联样式:
<div style="background-color: RANDOM_GENERATED_COLOR" class="!bg-transparent" />
但是我不希望内联样式在所有其他断点 sm
及以上被覆盖。
是否可以将 !bg-transparent
定位到仅限移动设备的断点?
您可以添加自定义 variant,它将仅像 @media max-width: 640px
一样在移动设备屏幕上应用样式。一般来说,对于自定义变体,您可以添加任何额外的媒体或您需要的状态
const plugin = require('tailwindcss/plugin')
module.exports = {
plugins: [
plugin(function ({ addVariant }) {
addVariant('mobile-only', "@media screen and (max-width: theme('screens.sm'))"); // instead of hard-coded 640px use sm breakpoint value from config. Or anything
}),
],
}
<div style="background-color: RANDOM_GENERATED_COLOR" class="mobile-only:!bg-transparent" />
由于内联样式
,仍然需要使用!important
标志
彩色DEMO - 调整右侧演示屏幕的大小
更新: Noitidart 建议使用 CSS 变量的另一种方法 - 这更干净,在 !important
中不需要
module.exports = {
theme: {
extend: {
colors: {
shading: 'var(--shading)'
}
}
},
}
<div style="--shading: RANDOM_GENERATED_COLOR;" class="bg-shading sm:bg-transparent">
</div>
我正在使用 Tailwind v3。
我在 javascript:
的内联样式中应用了自定义背景颜色<div style="background-color: RANDOM_GENERATED_COLOR" />
但是在移动断点中,我希望它忽略这种背景颜色,我不想要背景。所以我所做的是添加 !bg-transparent
,使用“!”修饰符我让它覆盖内联样式:
<div style="background-color: RANDOM_GENERATED_COLOR" class="!bg-transparent" />
但是我不希望内联样式在所有其他断点 sm
及以上被覆盖。
是否可以将 !bg-transparent
定位到仅限移动设备的断点?
您可以添加自定义 variant,它将仅像 @media max-width: 640px
一样在移动设备屏幕上应用样式。一般来说,对于自定义变体,您可以添加任何额外的媒体或您需要的状态
const plugin = require('tailwindcss/plugin')
module.exports = {
plugins: [
plugin(function ({ addVariant }) {
addVariant('mobile-only', "@media screen and (max-width: theme('screens.sm'))"); // instead of hard-coded 640px use sm breakpoint value from config. Or anything
}),
],
}
<div style="background-color: RANDOM_GENERATED_COLOR" class="mobile-only:!bg-transparent" />
由于内联样式
,仍然需要使用!important
标志
彩色DEMO - 调整右侧演示屏幕的大小
更新: Noitidart 建议使用 CSS 变量的另一种方法 - 这更干净,在 !important
module.exports = {
theme: {
extend: {
colors: {
shading: 'var(--shading)'
}
}
},
}
<div style="--shading: RANDOM_GENERATED_COLOR;" class="bg-shading sm:bg-transparent">
</div>