display: flex,两个div在一行一个占20%一个占80%
时间: 2024-10-15 19:30:42 浏览: 190
在CSS中,`display: flex;` 是一种用于创建弹性布局的属性,它使得元素可以响应容器空间的变化,并允许它们在其父级内轻松地对齐和排列。如果你想让两个 `div` 元素在一行上分别占据20%和80%的宽度,你可以这样做:
```html
<style>
.container {
display: flex;
/* 如果父元素不是固定宽度,可以使用 'flex-wrap: wrap;' 防止溢出 */
flex-wrap: wrap;
}
.box1 {
width: calc(20% - 10px); /* 减去一些边距或填充来避免边距重叠 */
}
.box2 {
width: calc(80% - 10px);
}
</style>
<div class="container">
<div class="box1">占20%</div>
<div class="box2">占80%</div>
</div>
```
这里设置了 `.container` 的 `display` 属性为 `flex`,`.box1` 和 `.box2` 分别设置了宽度为各自百分比宽度减去一定的边距(`calc()` 函数计算),这样就可以达到期望的效果。记得检查浏览器兼容性,`calc()` 可能需要一些老版本的浏览器添加特定前缀。
相关问题
display: flex; 怎么一行排两个
在使用display: flex布局时,可以通过设置flex容器的flex-wrap属性为wrap,然后在子元素上设置flex属性来实现一行排两个的效果。
下面是一个示例代码[^2]:
```html
<style>
.list_cai {
display: flex;
justify-content: space-around;
flex-direction: row;
flex-wrap: wrap;
}
.item {
flex: 0 0 48%;
margin-bottom: 10px;
}
</style>
<div class="list_cai">
<div class="item">第一个元素</div>
<div class="item">第二个元素</div>
<div class="item">第三个元素</div>
<div class="item">第四个元素</div>
<div class="item">第五个元素</div>
<div class="item">第六个元素</div>
</div>
```
在上面的代码中,通过设置.item的flex属性为0 0 48%来控制每个子元素的宽度为父容器的48%,并且通过设置flex-wrap属性为wrap来实现换行排列。通过设置justify-content属性为space-around来实现子元素的水平居中对齐。
这样,就可以实现一行排两个的效果。
display: flex上下各两个
`display: flex` 是 CSS 中的一种弹性盒布局模式,它可以让元素在一行或一列内自动调整位置和大小以适应容器。如果你想要创建一个有两个元素在上,两个元素在下的布局,可以这样做:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<style>
.container {
display: flex;
flex-direction: column; /* 设置为垂直方向 */
}
.top-blocks {
flex: 0 0 auto; /* 定义顶部块占据固定高度 */
width: 50%; /* 或者自适应宽度,视情况而定 */
background-color: #f1f1f1;
padding: 20px;
}
.bottom-blocks {
flex: 0 0 auto; /* 定义底部块占据固定高度 */
width: 50%; /* 同理 */
background-color: #eaeaea;
padding: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="top-blocks">上部内容区</div>
<div class="top-blocks">上部内容区2</div>
<div class="bottom-blocks">下部内容区</div>
<div class="bottom-blocks">下部内容区2</div>
</div>
</body>
</html>
```
在这个例子中,`.container` 设置了 `flex-direction: column`,意味着元素会从上到下堆叠。`.top-blocks` 和 `.bottom-blocks` 分别设置了固定的宽度和高度,并且使用 `flex: 0 0 auto` 来保持它们在堆叠中的顺序。
阅读全文