参考:
https://blog.csdn.net/man_tutu/article/details/62224844
给子元素设置的margin结果作用在父元素身上,类似于“越级伪命令”
问题的解决办法有三种
1、为父元素设置padding。
2、为父元素设置border。
3、为父元素设置 overflow: hidden 。
注意
如果子元素不是div,p,h1等块级标签,而是a,span等行内标签的话,则不会出现margin击穿问题。此外,如果父元素和子元素之间还有别的内容,即html代码如下所示的话也不会导致margin击穿问题。
例如(react中)
- 这样子元素设置margin会设置给父元素
import React from 'react';
import '../Css/App.css';
//引入组件
import Header from '../Component/Header/Header.js';
import BodyContent from '../Component/Body/Body.js';
function App() {
return (
<div className="App">
{/* 头组件挂载 */}
<Header></Header>
<BodyContent></BodyContent>
</div>
);
}
export default App;
习惯给父元素加透明边框后解决
.App{
border-top: 1px solid transparent;
}
2. 父元素和子元素之间有内容
import React from 'react';
import '../Css/App.css';
//引入组件
import Header from '../Component/Header/Header.js';
import BodyContent from '../Component/Body/Body.js';
function App() {
return (
<div className="App">
{/* 头组件挂载 */}
<Header></Header>
React
<BodyContent></BodyContent>
</div>
);
}
export default App;