html - 如何对齐两个 flexbox 元素?
问题描述
我对 flexbox 有疑问。我试图对齐两个元素;一个在容器的顶部,另一个在中心。大多数 flexbox 示例都使用三个元素,而不是两个元素。所以我尝试了自己的解决方案。
#main {
display: flex;
flex: 1;
flex-direction: column;
justify-content: space-between;
height: 100px;
background-color: #dfdfdf;
}
#box1 {
display: flex;
justify-content: flex-end;
background-color: #ff0000;
}
#box2 {
display: flex;
background-color: #00ff00;
}
#dummy {
display: flex;
opacity: 0;
}
<div id="main">
<div id="box1">box1</div>
<div id="box2">box2</div>
<div id="dummy">dummy</div>
</div>
...我也将它应用于水平案例。
#main {
display: flex;
flex: 1;
flex-direction: row;
justify-content: space-between;
height: 100px;
background-color: #dfdfdf;
}
#box1 {
display: flex;
justify-content: flex-end;
background-color: #ff0000;
width: 200px;
}
#box2 {
display: flex;
background-color: #00ff00;
width: 100px;
}
#dummy {
display: flex;
opacity: 0;
width: 200px;
}
<div id="main">
<div id="box1">box1</div>
<div id="box2">box2</div>
<div id="dummy">dummy</div>
</div>
但是,它需要一个无用的虚拟元素。我认为这不是一个好主意:(
有没有更好的方法来解决这个问题?
解决方案
你不必添加这个“虚拟”div。根据我的说法,您应该在容器中保留显示 flex,但将 justify-content: space-between 更改为 justify-content: center。
然后只需先将绝对位置添加给您,子元素并将其显示在容器顶部。还要记住为您的容器添加相对位置。
这是工作代码:
#main {
display: flex;
flex: 1;
flex-direction: column;
justify-content: center;
height: 100px;
background-color: #dfdfdf;
position: relative;
}
#box1 {
display: flex;
justify-content: flex-end;
background-color: #ff0000;
position:absolute;
top:0;
width:100%;
}
#box2 {
display: flex;
background-color: #00ff00;
}
推荐阅读
- sql - 将自定义格式字符串转换为日期
- java - JPA 嵌套映射到没有基表的视图
- swift - tableView 中的步进器,发送了无法识别的选择器
- mysql - 不能将“MAX(CASE WHEN value ='first_name' THEN value END)中的列标签值用作'Förnamn'
- jupyter-notebook - reload 在 jupyter notebook 中不起作用,但在 Ipython 中起作用
- python - 如何设置创建 gen_py 的路径 (win32com.__gen_path__)
- list - 在 Haskell 中过滤具有相同数量的不同元素的列表
- java - 错误::收到致命警报:handshake_failure:javax.net.ssl.SSLHandshakeException,使用 java REST 客户端连接到弹性搜索时
- angular - 来自 Angular 输出的字符串连接发出,未按预期工作
- python - Run edited python script step by step / without reloading dataset