html - CSS ::after 样式影响垂直对齐
问题描述
我有三行描述用户的文本,它们是居中对齐的。
现在我试图为用户名添加一个图标,我已经在 CSS 中使用 ::after 样式完成了这个操作(见下文)。
但是,在将第一行居中时会考虑这一点。理想情况下,我希望用户名与文本的其余部分居中对齐,然后将图标放在其右侧而不影响对齐。
我怎样才能做到这一点?
HTML
<div class="user-name">
<p> David Wood </p>
</div>
<p class="user-type"> Teacher </p>
<p class="user-email"> d.wood@school.ac.uk</p>
(我的一部分)CSS
.user-name p::after {
content: '';
background: url('homeimages/dropdown-black.png') left center no-repeat;
vertical-align: middle;
background-size: 10px auto;
padding-left: 20px;
padding-top:-20px;
white-space:pre;
}
解决方案
与您用于flex
对齐用户元素的方式相同,您可以对<p>
用户名中的元素执行相同的操作。
.username p {
display: flex;
align-items: center;
}
这将确保元素内的所有.username p {}
元素都垂直对齐。请注意,只有当flex-direction
您的元素的 是默认值时,才会出现这种情况flex-direction: row
。但是,如果出于任何原因,您正在使用flex-direction: column
您将justify-content: center
用于垂直对齐。
Ps 我经常使用https://fontawesome.com/来获取图标。使用它们的内联<i>
图标元素作为文本的兄弟元素,用 flex 父元素包裹,通常也会带来漂亮、干净的外观。例如
<a class="flex-container"><i class="fas fa-users"></i>Buy</a>
推荐阅读
- c# - C# openid-connect server & client implementation with .NET Core 5+, (MSAL?) and Keycloak
- r-extension - 在 netlogo r-extension 中使用循环 (i)
- python - 如何在曲线 Python 下绘制随机值?
- java - 在 Mybatis 的嵌套集合中再次使用相同的结果集
- c++ - 对象范围问题
- python - 在引用原始变量后编辑它
- android - Android Kotlin - 从 url 下载视频到 InputStream / RAM 无需许可和共享
- javascript - 我的创建语音通道命令不起作用,我不明白为什么它无法识别“执行”,我该如何解决?
- r - 使用 dplyr 修改另一个向量中分组变量的最后一个元素的值
- string - 关于向量、字符串和映射的 c++ 任务