CSS 中彼此相邻的垂直对齐项目
Vertical aligning items in CSS which are next to each other
我在 div 中有 2 个图标和 1 个 link 作为按钮使用
.A {
width: 50px;
height: 50px;
border: 1px solid black;
display: inline-flex;
justify-content: center;
align-items: center;
margin: 5px;
}
a {
text-decoration: none;
}
.B {
width: 100px;
height: 50px;
}
/* when i change font-size for example to 10px then the element moves down a bit*/
.A span {
text-transform: uppercase;
color: black;
font-size: 10px;
}
<script src="https://kit.fontawesome.com/4254229804.js" crossorigin="anonymous"></script>
<a href="#">
<div class="A">
<i class="fab fa-facebook-f"></i>
</div>
</a>
<a href="#">
<div class="A">
<i class="fab fa-youtube"></i>
</div>
</a>
<a href="#">
<div class="A B">
<span>sign up</span>
</div>
</a>
这里是 link 代码笔 https://codepen.io/hanzus/pen/GRrMbbm
当“注册”link 的 span 元素的字体大小为 16px 时,一切都居中,但是当我将它更改为例如 10px 时,link 向下移动了一点,它是与 facebook 和 youtube 的其他 div 不在同一行 links.
当我更改 1 个元素的字体大小时,如何让这些 link 出现在同一行?
在 flex 中包装:
.container {
display: flex;
}
<div class="container">
<a href="#">
<div class="A">
<i class="fab fa-facebook-f"></i>
</div>
</a>
<a href="#">
<div class="A">
<i class="fab fa-youtube"></i>
</div>
</a>
<a href="#">
<div class="A B">
<span>sign up</span>
</div>
</a>
</div>
我知道我有点晚了,但可以让它更简单:
.container {
display: inline-flex;
width: 300px;
height: 50px;
}
.container a {
width: 33%;
margin: 5px;
border: 1px solid black;
display:inline-flex;
justify-content:center;
align-items:center;
font-size: 16px;
}
<div class="container">
<a href="#">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#">
<i class="fab fa-youtube"></i>
</a>
<a href="#">
<span>sign up</span>
</a>
</div>
您应该只添加“flex-direction: column;”对于您的 CSS 代码。
.container{
display: flex;
flex-direction: column;
}
.A {
width:50px;
height: 50px;
border: 1px solid black;
display:inline-flex;
justify-content:center;
align-items:center;
margin: 5px;
}
a {
text-decoration:none;
}
.B {
width: 100px;
height: 50px;
}
.A span {
text-transform: uppercase;
color:black;
font-size: 10px;
}
我在 div 中有 2 个图标和 1 个 link 作为按钮使用
.A {
width: 50px;
height: 50px;
border: 1px solid black;
display: inline-flex;
justify-content: center;
align-items: center;
margin: 5px;
}
a {
text-decoration: none;
}
.B {
width: 100px;
height: 50px;
}
/* when i change font-size for example to 10px then the element moves down a bit*/
.A span {
text-transform: uppercase;
color: black;
font-size: 10px;
}
<script src="https://kit.fontawesome.com/4254229804.js" crossorigin="anonymous"></script>
<a href="#">
<div class="A">
<i class="fab fa-facebook-f"></i>
</div>
</a>
<a href="#">
<div class="A">
<i class="fab fa-youtube"></i>
</div>
</a>
<a href="#">
<div class="A B">
<span>sign up</span>
</div>
</a>
这里是 link 代码笔 https://codepen.io/hanzus/pen/GRrMbbm
当“注册”link 的 span 元素的字体大小为 16px 时,一切都居中,但是当我将它更改为例如 10px 时,link 向下移动了一点,它是与 facebook 和 youtube 的其他 div 不在同一行 links.
当我更改 1 个元素的字体大小时,如何让这些 link 出现在同一行?
在 flex 中包装:
.container {
display: flex;
}
<div class="container">
<a href="#">
<div class="A">
<i class="fab fa-facebook-f"></i>
</div>
</a>
<a href="#">
<div class="A">
<i class="fab fa-youtube"></i>
</div>
</a>
<a href="#">
<div class="A B">
<span>sign up</span>
</div>
</a>
</div>
我知道我有点晚了,但可以让它更简单:
.container {
display: inline-flex;
width: 300px;
height: 50px;
}
.container a {
width: 33%;
margin: 5px;
border: 1px solid black;
display:inline-flex;
justify-content:center;
align-items:center;
font-size: 16px;
}
<div class="container">
<a href="#">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#">
<i class="fab fa-youtube"></i>
</a>
<a href="#">
<span>sign up</span>
</a>
</div>
您应该只添加“flex-direction: column;”对于您的 CSS 代码。
.container{
display: flex;
flex-direction: column;
}
.A {
width:50px;
height: 50px;
border: 1px solid black;
display:inline-flex;
justify-content:center;
align-items:center;
margin: 5px;
}
a {
text-decoration:none;
}
.B {
width: 100px;
height: 50px;
}
.A span {
text-transform: uppercase;
color:black;
font-size: 10px;
}