我不确定我是否需要一个包装器来分隔容器的最大宽度。
header
的宽度为100%,.wrapper
的最大宽度为1000px。
有没有办法避免使用.wrapper
div?
body { margin: 0; }
header {
margin: 0;
padding: 0;
background-color: DarkRed;
}
.header-wrapper {
margin: auto;
max-width: 500px;
padding: 10px 0;
}
#logo, #tagline, #menu {
margin: auto;
padding: 5px;
}
#logo {
flex: 2;
background-color: Crimson;
}
#tagline {
flex: 5;
background-color: Salmon;
}
#menu {
flex: 3;
background-color: IndianRed;
}
@media (min-width: 768px){
.header-wrapper {
display: flex;
}
}

<header>
<div class="header-wrapper">
<div id="logo">Logo</div>
<div id="tagline">Tagline</div>
<div id="menu">Menu</div>
</div>
</header>
&#13;
答案 0 :(得分:0)
这取决于您的确切需求,在设计页面时,没有关于您的确切html结构的快速规则。
如果您想要一个扩展整个100% width
的背景颜色,但您希望内容具有隐藏的左/右屏障,您可能需要一个包装器来强制该屏障规则。否则,红色背景将仅与1000px
规则一样宽(或者您设置的居中范围)
如果您不需要屏障并希望内容/导航项目跨越整个宽度,那么您就不需要包装。
再次,它取决于组件的整体设计
,它取决于你答案 1 :(得分:0)
设置所有div max-width,等于1000px
答案 2 :(得分:0)
您可以修改媒体查询并删除额外的包装器和弹性值。
下面的代码段就像你的代码集一样......使用更少的包装器:
body {
margin: 0;
}
header {
margin: 0;
padding: 0;
background-color: DarkRed;
padding: 10px 0;
}
#logo,
#tagline,
#menu {
padding: 5px;
}
#logo {
background-color: Crimson;
}
#tagline {
background-color: Salmon;
}
#menu {
background-color: IndianRed;
}
@media (min-width: 768px) {
header {
display: flex;
justify-content: center;
}
#logo {
width: 100px;
}
#tagline {
width: 250px;
}
#menu {
width: 150px;
}
}
<header>
<div id="logo">Logo</div>
<div id="tagline">Tagline</div>
<div id="menu">Menu</div>
</header>