具有 3 div 秒的布局。我怎样才能使中间 div 保持在其他两个下方?
Having a 3 divs layout. How can I make the middle div to stay below the other two?
我正在寻找一种方法来制作像这样的响应式设计
我在 parent div
中有 3 divs
<div style="display: flex">
<div class="logo">some image here</div>
<div class="menu-items">
<a href="/home">Home</a>
...
</div>
<div class="login-logout">Here is the login component</div>
</div>
如何仅使用 css 和 sass 来制作类似这样的响应版本?
<div style="display: flex; flex-direction: column">
<div style="display: flex">
<div class="logo">some image here</div>
<div class="login-logout">Here is the login component</div>
</div>
<div class="menu-items">
<a href="/home">Home</a>
...
</div>
</div>
我希望中间的 div 保持在其他两个下方
我猜测这可以使用网格布局实现,但老实说我不太了解它并且更喜欢使用 flex。因此,如果可以使用 flex 实现这一点,我将不胜感激
编辑:
我希望布局的图像。
flex 基本上是一维的,而 grid 允许二维布局。
此代码段采用您的代码,但将容器设置为显示网格。
grid-template 区域以 2/3/1 的比例布置在较宽的屏幕上,在顶行中以 2/1 的比例布置在较窄的屏幕上。
显然您需要设置适合您特定情况的相对大小。
.container {
width: 100vw;
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-template-areas: 'logo logo menu menu menu login';
gap: 2vw;
padding: 2vw;
box-sizing: border-box;
}
.container>* {
border: 3px solid;
box-sizing: border-box;
}
@media (max-width: 768px) {
.container {
grid-template-columns: repeat(3, 1fr);
grid-template-areas: 'logo logo login' 'menu menu menu';
}
}
.logo {
grid-area: logo;
}
.menu-items {
grid-area: menu;
}
.login-logout {
grid-area: login;
}
/* borders added fordemo */
.logo {
border-color: red;
}
.menu-items {
border-color: blue;
}
.login-logout {
border-color: green;
}
<div class="container">
<div class="logo">some image here</div>
<div class="menu-items">
<a href="/home">Home</a> ...
</div>
<div class="login-logout">Here is the login component</div>
</div>
我正在寻找一种方法来制作像这样的响应式设计 我在 parent div
中有 3 divs<div style="display: flex">
<div class="logo">some image here</div>
<div class="menu-items">
<a href="/home">Home</a>
...
</div>
<div class="login-logout">Here is the login component</div>
</div>
如何仅使用 css 和 sass 来制作类似这样的响应版本?
<div style="display: flex; flex-direction: column">
<div style="display: flex">
<div class="logo">some image here</div>
<div class="login-logout">Here is the login component</div>
</div>
<div class="menu-items">
<a href="/home">Home</a>
...
</div>
</div>
我希望中间的 div 保持在其他两个下方
我猜测这可以使用网格布局实现,但老实说我不太了解它并且更喜欢使用 flex。因此,如果可以使用 flex 实现这一点,我将不胜感激
编辑:
我希望布局的图像。
flex 基本上是一维的,而 grid 允许二维布局。
此代码段采用您的代码,但将容器设置为显示网格。
grid-template 区域以 2/3/1 的比例布置在较宽的屏幕上,在顶行中以 2/1 的比例布置在较窄的屏幕上。
显然您需要设置适合您特定情况的相对大小。
.container {
width: 100vw;
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-template-areas: 'logo logo menu menu menu login';
gap: 2vw;
padding: 2vw;
box-sizing: border-box;
}
.container>* {
border: 3px solid;
box-sizing: border-box;
}
@media (max-width: 768px) {
.container {
grid-template-columns: repeat(3, 1fr);
grid-template-areas: 'logo logo login' 'menu menu menu';
}
}
.logo {
grid-area: logo;
}
.menu-items {
grid-area: menu;
}
.login-logout {
grid-area: login;
}
/* borders added fordemo */
.logo {
border-color: red;
}
.menu-items {
border-color: blue;
}
.login-logout {
border-color: green;
}
<div class="container">
<div class="logo">some image here</div>
<div class="menu-items">
<a href="/home">Home</a> ...
</div>
<div class="login-logout">Here is the login component</div>
</div>