CSS中h4元素margin属性值无效问题求助
为啥你的h4 margin设置没生效?
一眼就揪出问题啦——你的CSS语法写错了!
先看你写的这段代码:
main div h4 { margin: 20px, 0, 0, 0; /* want to change top margin */ }
CSS里的margin(包括padding这类简写属性),多个值之间是用空格分隔的,不是逗号!逗号是给box-shadow、background这类需要多组独立值的属性用的,你这里加了逗号,浏览器根本识别不了这个margin声明,直接就忽略了。
把代码改成下面这样就正常生效了:
main div h4 { margin: 20px 0 0 0; /* top margin现在会生效了 */ }
要是改完还是没效果?再排查这几个点:
- 优先级被覆盖:有没有其他更具体的选择器(比如
.card h4或者#content h4),甚至是h4标签上的内联样式style="margin: ..."把这个设置覆盖了?打开浏览器F12开发者工具,看元素的computed样式,就能看到最终生效的margin是哪来的。 - margin折叠坑:如果h4的父div没有设置
padding、border或者overflow: hidden,可能会发生margin折叠——h4的top margin会和父元素的margin合并,看起来就像没生效。给父div加个padding-top: 1px试试,就能验证是不是这个问题。 - 选择器没匹配上:确认你的HTML结构真的是
main下面套div、div下面套h4吗?有没有中间多了其他嵌套元素?开发者工具里用选择器校验功能,就能知道main div h4有没有选中目标元素。
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

