如何将文本左对齐到多个垂直堆叠的div的中心?

问题描述

我有下面的代码片段,展示了包含文本跨度的垂直堆叠的div:

.WBG {
    background-color: #e6e6e6 !important;
}
.mt-buffer-lg {
    margin-top: 20pt;
}
.tb-border {
    border-style: solid;
    border-width: 1px;
    border-color: #bfbfbf;
}
.pad-sm {
    padding: 5pt;
}
.tb-border-top {
    border-top-style: solid;
    border-top-width: 1px;
    border-top-color: #bfbfbf;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<div class="container-fluid">
  <div class="row mt-buffer-lg">
      <div class="col-12">
          <div class="row">
              <div class="col-sm-3">
                  <div class="WBG tb-border">
                      <div class="pad-sm text-center">
                          <span>123456789</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234567</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>123456</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                  </div>
              </div>
              <div class="col-sm-9">
                  <div class="WBG tb-border pad-sm">
                      2
                  </div>
              </div>
          </div>
      </div>
  </div>
</div>

Example of what I want it to look like

这表明文本都在每个数字字符串的第一个字符上对齐,但仍在每个div的“中间”-水平。如何最好地实现?

解决方法

这有点欺骗,但这里的主要见识是您需要将display:inline-block设置为.WBG并将display:block设置为您的跨度

.WBG {
    background-color: #e6e6e6 !important;
    display:inline-block;
}
.mt-buffer-lg {
    margin-top: 20pt;
}
.tb-border {
    border-style: solid;
    border-width: 1px;
    border-color: #bfbfbf;
}
.pad-sm {
    padding: 5pt;
}
.tb-border-top {
    border-top-style: solid;
    border-top-width: 1px;
    border-top-color: #bfbfbf;
}

span{
display:block;
text-align:left;}

.col-sm-2{
text-align:center;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<div class="container-fluid">
  <div class="row mt-buffer-lg">
      <div class="col-12">
          <div class="row">
              <div class="col-sm-2">
                  <div class="WBG tb-border">
                      <div class="pad-sm text-center">
                          <span>123456789</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234567</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>123456</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                  </div>
              </div>
              
          </div>
      </div>
  </div>
</div>

,

这有点欺骗,但这里的主要见识是您需要将display:inline-block设置为.WBG并将display:block设置为您的跨度

如果您想使所有东西都居中,则需要在骑行引导程序上

.WBG {
    background-color: #e6e6e6 !important;
    display:inline-block;
}
.mt-buffer-lg {
    margin-top: 20pt;
}
.tb-border {
    border-style: solid;
    border-width: 1px;
    border-color: #bfbfbf;
}
.pad-sm {
    padding: 5pt;
}
.tb-border-top {
    border-top-style: solid;
    border-top-width: 1px;
    border-top-color: #bfbfbf;
}

span{
display:block;
text-align:left;}

.col-sm-2{
text-align:center;
}

@media (min-width: 576px){
.col-sm-2 {
        max-width:100%!important;
        flex:none!important;
        }
    }
    
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<div class="container-fluid">
  <div class="row mt-buffer-lg">
      <div class="col-12">
          <div class="row">
              <div class="col-sm-2">
                  <div class="WBG tb-border">
                      <div class="pad-sm text-center">
                          <span>123456789</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234567</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>123456</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                      <div class="tb-border-top pad-sm text-center">
                          <span>1234</span>
                      </div>
                  </div>
              </div>
              
          </div>
      </div>
  </div>
</div>