gpt4 book ai didi

html - 如何使用 flexbox 使固定宽度的侧边栏与灵活的内容对齐

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:44 27 4
gpt4 key购买 nike

我正在尝试使用 flexbox 模型设计布局样式。在我的布局中,右侧有一个固定宽度的侧边栏,左侧有一个灵活宽度的内容。左边的内容是元素列表(基本上是一个 ul - li 结构)。

左边的内容(ul-li结构)使用了flexbox布局使其灵活。因此,当我调整浏览器窗口大小时,列表项的间距是均匀的,这是所需的行为。

问题是,右侧的固定宽度侧边栏与主要内容中的列表项之间的左侧间距(边距)不同。

这是我的代码:http://codepen.io/anon/pen/ymfDI

<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.wrapper {
padding: 0 15px;
background: #ccc;
min-width: 700px;
max-width: 1890px;
width: auto;
height: auto;
margin: 0 auto;
position: relative;
}

.items {
order: 1;

display: -webkit-flex;
display: -ms-flexbox;
display: flex;

-webkit-flex-flow: row wrap;
-ms-flex-flow: row wrap;
flex-flow: row wrap;

padding: 0;
background: #aaa;

-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
}

.item {
height: 276px;
width: 307px;
margin: 10px;
background: #555;
border: 1px solid #dfdfdf;
list-style-type: none;
}

.title {
color: #333;
text-transform: uppercase;
font: normal 30px/50px Arial, Helvetica, sans-serif;
}

.sidebar {
order: 0;

display: block;
padding: 0;
margin: 0;
background: #bbb;

margin-left: 3.7%;

-webkit-flex: 0 0 329px;
-ms-flex: 0 0 329px;
flex: 0 0 329px;
}

.sidebarContent {
width: 307px;
height: 900px;
background: #5ab;
margin: 10px;
border: 1px solid #dfdfdf;
}

.wrapper {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;

-webkit-flex-flow: row nowrap;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;

padding: 0;
background: #aaa;

-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
}

</style>
</head>
<body>
<div class="wrapper">
<div class="itemlist">
<h2 class="title">itemlist</h2>
<ul class="items">
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
</ul>
</div>
<div class="sidebar">
<div class="sidebarContent"></div>
</div>
</div>
</body>
</html>

我还尝试将侧边栏和列表包装在包装器 div 中。我把整个包装器变成了一个 flexbox 容器。我还尝试使用值 - space-between 和 space-around;但我仍然想不出一种方法来在侧边栏和 div 之间使用“itemlist”类提供相同的边距(间距);它适用于类别为“item”的所有列表项。

这是一个截图:https://copy.com/n1MfKWmAmFY2

最佳答案

尝试,.items{justify-content: space-around;}

它会将元素彼此和父容器的边缘均匀地隔开。

http://codepen.io/chiranjeeb/pen/ouhFD

注意:侧边栏之前似乎有更多空间,这是 .sidebar {margin-left: 3.7%;}

添加的额外空间

类似地,两个连续元素之间的空间出现的空间比边缘之间的空间多两倍。它添加了两个元素的左右空间。它仅在您有不止一列的元素时可见。

关于html - 如何使用 flexbox 使固定宽度的侧边栏与灵活的内容对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com