css媒体查询必须包裹在选择器定义的规则集中,不能直接在@media块内写样式声明;否则会因缺少花括号包裹的选择器上下文而报错。
你遇到的错误源于一个常见的CSS语法误解:@media 规则本身只是条件容器,它不直接接受样式声明——所有CSS属性(如 display, justify-content, height)必须写在某个具体选择器的规则集(selector + { ... })内部。
你当前的代码:
@media screen and (max-width: 960px) {
display: flex;
justify-content: spacebetween;
height: 80px;
}❌ 是非法的,因为:
✅ 正确写法示例:
/* 假设你想为导航栏在小屏下启用弹性布局 */
.navbar {
/* 默认样式(可选) */
}
@media screen and (max-width: 960px) {
.navbar {
display: flex;
justify-content: space-between; /* ✅ 修正拼写 */
height: 80px;
}
}? 关键要点总结:
@media screen and (max-width: 960px) {
.sidebar { display: none; }
.content { width: 100%; }
header { padding: 1rem; }
}初学时容易混淆“哪里能写样式”,记住这个口诀:有选择器,才有声明;有@me
dia,必须套规则集。 理解了这一层结构,媒体查询就不再神秘。