提问人:David Buddrige 提问时间:11/13/2023 最后编辑:Abderrahmene Rayene MihoubDavid Buddrige 更新时间:11/15/2023 访问量:34
如何使 div 位于方向设置为 column 的 flex 容器的右侧?
How do I make a div sit to the right of a flex container that has its direction set to column?
问:
我正在将 flex 用于标题栏和页面上的导航栏。
标题栏应位于屏幕顶部,导航栏应位于左侧。
内容应显示在标题栏下方和导航栏右侧。
但是,我(还)无法弄清楚如何让内容出现在导航栏的右侧(它想在导航栏下方的下一行)。
.flex-container-1 {
display: flex;
background-color: skyblue;
color: white;
}
.flex-body-1 {
padding: 1em;
}
.content-body {
background-color: skyblue;
color: white;
}
.flex-body-1:hover {
background-color: white;
color: skyblue;
}
.flex-container-2 {
display: flex;
width: min(90%, 100em);
/* have a width which is the lesser of these two compared to viewport */
margin-inline: auto;
padding: max(1em, 2vh);
/* choose whichever is bigger- 2% of viewport height, or 1em */
}
.nav-container {
display: flex;
flex-direction: column;
width: 10em;
}
.nav-items {
width: 10em;
}
.nav-items:hover {
background-color: white;
color: skyblue;
}
<html>
<head>
<link rel="stylesheet" href="flex-2.css">
</head>
<body>
<div class="flex-container-1">
<div class="flex-body-1">Home</div>
<div class="flex-body-1">About</div>
<div class="flex-body-1">Contact</div>
</div>
<div class="content-body">
<div class="nav-container">
<div class="nav-items">Item 1</div>
<div class="nav-items">Item 2</div>
<div class="nav-items">Item 3</div>
<div class="nav-items">Item 4</div>
<div class="nav-items">Item 5</div>
</div>
<div>
<h1>Main content</h1>
<p>This is the main page of information that I want to display on my page.</p>
<p>IT should sit to the right of the nav elements which should go along the left side of the page.</p>
</div>
</div>
</body>
</html>
答:
0赞
user22379202
11/13/2023
#1
嘿,如果我正确理解了您的问题,这就是解决方案。
你只需要将 'content-body' 变成一个 flex 容器,并使用属性 'justify-content:space-between' (也可以试试 'justify-content:space-around' 可能更适合你)。我还建议您在 css 的顶部设置默认边距和填充 0,以确保标题和 2 个段落上丑陋的边距和填充不会弄乱设计。
下面是修改后的 css:
* {
margin: 0;
padding: 0;
}
.content-body {
background-color: skyblue;
color: white;
display: flex;
justify-content: space-between;
}
评论
0赞
David Buddrige
11/13/2023
感谢 Heaps 的@ayus_98。我认为这解决了它。(我将直接向各种元素添加其他边距/填充以调整相对布局。此外,我将对齐内容设置为“left”——这似乎更适合。但感谢堆展示了如何完成这种布局:)
评论
grid