首页 > 解决方案 > 如何在伪元素之后居中?

问题描述

我有一个元素列表,我在元素(垂直线)之后添加了,我想将它居中并且它应该是响应式的。

这就是我想要的 在此处输入图像描述

这是我的解决方案

.profile_card-bottom {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 64px;
}

li::after {
  -webkit-transition: all 0.15s ease-in-out;
  transition: all 0.15s ease-in-out;
  content: '';
  display: block;
  float: left;
  background-color: #979797;
  width: 1px;
  opacity: 0.1;
  height: 77px;
  position: absolute;
  bottom: 13px;
  right: -57px;
}

li:nth-child(3n)::after {
  display: none;
}

li:nth-child(4n)::after {
  display: none;
}

.likes,
.following,
.followers,
.follow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  position: relative;
}

.btn-follow {
  background: $button-color;
  border-radius: 100px;
  border: none;
  outline: none;
  height: 92px;
  width: 268px;
  font-size: 30px;
  color: #FFFFFF;
  font-weight: 600;
  letter-spacing: 4.2px;
  position: relative;
  right: 37px;
  top: 9px;
  text-transform: uppercase;
  cursor: pointer;
}

.assets-count {
  font-size: 48px;
  color: $li-span-color;
  letter-spacing: 0;
  font-weight: 400;
}

.assets-title {
  font-size: 20px;
  color: $h1-span-color;
  letter-spacing: 0;
  line-height: 11px;
  font-weight: $base-font-weight;
}


}
<ul class="profile_card-bottom">
  <li class="likes"><span class="assets-count">124</span><span class="assets-title">Likes</span></li>
  <li class="following"><span class="assets-count">727</span><span class="assets-title">Following</span></li>
  <li class="followers"><span class="assets-count">4437</span><span class="assets-title">Followers</span></li>
  <li class="follow"><button class="btn-follow">Follow</button></li>
</ul>

不幸的是,我的解决方案没有给我想要的结果,

我在解决方案中做错了什么?任何帮助将不胜感激,谢谢

标签: htmlcsspseudo-element

解决方案


我认为您可能会误解:after生成的内容在文档流中的最终位置。

::before 和 ::after 生成的伪元素包含在元素的格式化框...

所以 after 元素实际上并没有放在之后,而是放在的子节点<li>的末尾。<li>

.profile_card-bottom {
  display: flex;
  justify-content: space-between;
}

li {
  display: flex;
  flex: 1 1 auto;
}

li:not(:last-child):after {
  content: '';
  display: block;
  background-color: #979797;
  width: 1px;
  opacity: 1;
  height: 77px;
  margin: 0 auto;
  height: 100%;
}
<ul class="profile_card-bottom">
  <li class="likes"><span class="assets-count">124</span><span class="assets-title">Likes</span></li>
  <li class="following"><span class="assets-count">727</span><span class="assets-title">Following</span></li>
  <li class="followers"><span class="assets-count">4437</span><span class="assets-title">Followers</span></li>
  <li class="follow"><button class="btn-follow">Follow</button></li>

</ul>


推荐阅读