以下是我的问题的地址。
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta name = "viewport"
content = "width = device-width, initial-scale = 1.0"
>
<link href = "CSS/Example.css"
rel = "stylesheet"
type = "text/css"
>
</head>
<body>
<header>
Header needs to be alignd with the container outer part
</header>
<div class="flex">
<section>content</section>
<section>content</section>
<section>content</section>
<section>content</section>
<section>content</section>
<section>content</section>
</div>
</body>
</html>
CSS
html,
*
{
border : 0;
box-sizing : border-box;
margin : 0;
padding : 0;
}
.flex
{
display : flex;
flex-wrap : wrap;
justify-content : center;
}
header
{
background : blue;
display : block;
height : 50px;
margin : auto;
width : 300px;
}
@media only screen and (min-width : 620px)
{
body header
{
width : 620px;
}
}
@media only screen and (min-width : 940px)
{
body header
{
width : 940px;
}
}
@media only screen and (min-width : 1260px)
{
body header
{
width : 1260px;
}
}
@media only screen and (min-width : 1580px)
{
body header
{
width : 1580px;
}
}
@media only screen and (min-width : 1900px)
{
body header
{
width : 1900px;
}
}
section
{
background : red;
display : block;
width : 300px;
height : 200px;
margin : 10px;
}
首先,在 CSS 文件中有段...
*
{
border : 0;
box-sizing : border-box;
margin : 0;
padding : 0;
}
通过将所有元素的border、margin 和padding 设置为0,您可以消除某些或所有浏览器可能为元素显示的那些属性的任何默认设置。通过添加box-sizing : border-box;,您所做的任何border 或padding 设置都将包含在元素的width 中而不是没有,从而使页面布局更加简单。
我倾向于包含这个 sn-p 作为预防措施。
至于设置header 的宽度,需要设置为固定宽度,只要视口达到特定宽度,就会发生这种情况。
标题的宽度,以及更改它的视口的宽度,将等于一整行中各部分的总宽度加上它们之间的边距的总宽度,即 300px、620px、940px、 1260 像素、1580 像素和 1900 像素。我已经使用媒体查询在这些点执行转换。
注意:由于在尝试使用媒体查询覆盖属性时引起的特殊性问题,我已将 body 放在每个媒体查询中 header 的定义前面。
由于header 的宽度不灵活且flex 主要用于分配section 的宽度,因此我将header 放置在flex 之外。
如果您对我的回答有任何疑问或意见,请随时回复。