这个问题与“如何在设置 Html css nav 样式时对齐引用?”无关。
我需要使用 CSS 使两个项目左对齐,一个接一个,第三个项目右对齐。
传统上我会使用 float: left 和 float: right 来实现此目的,但不再推荐。
如何使用 flex 或现代 CSS 属性之一来做到这一点?
我尝试过:
.flex-container {
display: flex;
justify-content: flex-start;
}
这产生了所有东西都漂浮起来的效果。我想将一项向右浮动,但不是全部。
我找到了一个答案,它在第三个元素上执行
margin-left: auto;
,但看起来像一个丑陋的黑客,这是最好的选择吗?
阅读此页面。 (是css中flexbox的完整概述)。
基本上我认为你可以使用align-self来覆盖第三个元素(flex-end)的初始flex(第一个和第二个元素的flex-start)。
刚刚在游乐场尝试过
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="src/style.css">
</head>
<body>
<div class="container">
<div class="card">
Card 1
</div>
<div class="card">
Card 2
</div>
<div class="card alignRight">
Card 3
</div>
</div>
</body>
</html>
.container{
border: 1px solid red;
width: 50%;
margin: 0 auto;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.card{
border: 1px solid blue;
width: 25%;
padding: 2px 5px;
background: gray;
text-align: center;
}
.alignRight{
align-self: flex-end;
}