我margin
在配置文件中扩展了 tailwind 属性:
module.exports = {
theme: {
extend: {
'margin': {
'1/5': '20%',
'1/4': '25%',
'1/3': '33.333333%'
}
}
},
variants: {
margin: ['responsive']
},
plugins: []
}
然后将其应用于我css
的以下内容:
@screen xl {
.content-section.contract {
@apply ml-1/5;
}
}
@screen lg {
.content-section.contract {
@apply ml-1/4;
}
}
@screen md {
.content-section.contract {
@apply ml-1/3;
}
}
但是,与其margin-left: 20%
在超大屏幕和margin-left: 25%
大屏幕上使用,不如在中型屏幕的值上覆盖样式。
我尝试!important
在不同的屏幕尺寸中添加每种样式,但无法按预期工作。我相信这不能在繁琐的过程中重现,因为tailwindcss的CDN版本不支持自定义实用程序。
根据该图像,查询的顺序负责此行为。
这是因为每当有相同优先级的多个CSS规则应用于一个元素时,最后一个将获胜。
在这种情况下,只要屏幕大小达到xl查询所需的宽度,则对较小屏幕的查询也将适用。由于中型查询是最后一个查询,因此它将覆盖之前声明的查询的样式。
经验法则是使用min-width
(移动优先)时,将查询从最小到最大排序。使用max-width
(首先使用台式机)时,反之亦然。
这里的解决方案是使用max-width
而不是min-width
或更改查询的顺序,因此最小的屏幕在前,最大的屏幕在后。
示例(颠倒顺序):
@screen md {
.content-section.contract {
@apply ml-1/3;
}
}
@screen lg {
.content-section.contract {
@apply ml-1/4;
}
}
@screen xl {
.content-section.contract {
@apply ml-1/5;
}
}