【问题标题】:How to vertical-center text inside this span如何在此范围内垂直居中文本
【发布时间】:2015-12-05 04:40:27
【问题描述】:

我有一段我正在编写的网站的代码,但我不知道。

.program_category_description {
  background-color: #e0e0e0;
  margin-bottom: 20px;
  max-width:1300px;
}
.program_category_description .description {
  display: table-cell;
  padding: 2% 1% 2% 1%;
}
.program_category_description .title {
  font-weight: bold;
  font-size: 20px;
  padding-bottom: 2%;
  font-family: 'Lato', sans-serif;
}
.program_category_description .more_info {
  text-align: center;
  vertical-align: middle;
  display: table-cell;
  width: 15%;
  background-color: #CE6D2B;
}
.program_category_description .more_info a {
  color: white !important;
}
.more_info_btn {
  font-size: 20px;
  display: inline-block;
  height: 100%;
  width: 100%;
  text-align: center;
  cursor: pointer;
  -o-transition: background-color .2s ease-in;
  -moz-transition: background-color .2s ease-in;
  -webkit-transition: background-color .2s ease-in;
  transition: background-color .2s ease-in;
}
.more_info_btn:hover {
  background-color: #b96226;
}
.more_info_btn:active {
  background-color: #ccc;
}
<div class="article_body_section program_category_description">
  <div class="description">
    <div class="title">Short Term Programs</div>
    <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
      Nulla nec aliqu.</div>
  </div>
  <div class="more_info"><a href="#"><span class="more_info_btn">More Info</span></a>
  </div>

</div>

跨度的原因是整个橙色块都是可点击的链接。问题是我希望“更多信息”文本始终在块内居中。我不想给它特定的像素属性,因为我希望它在调整大小时拉伸或变大。唯一的限制是最大宽度为 1300 像素。

我已经尝试过垂直对齐,或者添加基于百分比的填充,但没有任何效果。您可能会说,我在这方面的经验并不丰富,并且每天都在学习,所以如果您在代码中看到其他值得指出的地方或其他解决方案,请执行。

【问题讨论】:

  • 对我来说,文本完全与中心对齐?垂直和水平?
  • 居中对齐,垂直和水平。有什么问题?
  • @Aaron “更多信息”部分绝对没有与中心对齐,在顶部。我认为垂直对齐是名称?如果你愿意,我可以截屏。
  • 点击Run code sn -p你会看到它是垂直对齐的吗?
  • 啊哈,我用的是 firefox...它不在 chrome 中:)

标签: html css


【解决方案1】:

您可以将display: flexalign-items: center 一起使用:

.program_category_description {
  background-color: #e0e0e0;
  margin-bottom: 20px;
  max-width: 1300px;
}
.program_category_description .description {
  display: table-cell;
  padding: 2% 1% 2% 1%;
}
.program_category_description .title {
  font-weight: bold;
  font-size: 20px;
  padding-bottom: 2%;
  font-family: 'Lato', sans-serif;
}
.program_category_description .more_info {
  text-align: center;
  vertical-align: middle;
  display: table-cell;
  width: 15%;
  background-color: #CE6D2B;
}
.program_category_description .more_info a {
  color: white !important;
  display: inline-block;
  height: 100%;
  width: 100%;
  text-decoration: blink;
}
.more_info_btn {
  font-size: 20px;
  height: 100%;
  display: inline-block;
  width: 100%;
  text-align: center;
  cursor: pointer;
  -o-transition: background-color .2s ease-in;
  -moz-transition: background-color .2s ease-in;
  -webkit-transition: background-color .2s ease-in;
  transition: background-color .2s ease-in;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}
.more_info_btn:hover {
  background-color: #b96226;
}
.more_info_btn:active {
  background-color: #ccc;
}
<div class="article_body_section program_category_description">
  <div class="description">
    <div class="title">Short Term Programs</div>
    <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
      Nulla nec aliqu.</div>
  </div>
  <div class="more_info"><a href="#"><span class="more_info_btn">More Info</span></a>
  </div>

</div>

第二个例子很长的文本:

.program_category_description {
  background-color: #e0e0e0;
  margin-bottom: 20px;
  max-width: 1300px;
}
.program_category_description .description {
  display: table-cell;
  padding: 2% 1% 2% 1%;
}
.program_category_description .title {
  font-weight: bold;
  font-size: 20px;
  padding-bottom: 2%;
  font-family: 'Lato', sans-serif;
}
.program_category_description .more_info {
  text-align: center;
  vertical-align: middle;
  display: table-cell;
  width: 15%;
  background-color: #CE6D2B;
}
.program_category_description .more_info a {
  color: white !important;
  display: inline-block;
  height: 100%;
  width: 100%;
  text-decoration: blink;
}
.more_info_btn {
  font-size: 20px;
  height: 100%;
  display: inline-block;
  width: 100%;
  text-align: center;
  cursor: pointer;
  -o-transition: background-color .2s ease-in;
  -moz-transition: background-color .2s ease-in;
  -webkit-transition: background-color .2s ease-in;
  transition: background-color .2s ease-in;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}
.more_info_btn:hover {
  background-color: #b96226;
}
.more_info_btn:active {
  background-color: #ccc;
}
<div class="article_body_section program_category_description">
  <div class="description">
    <div class="title">Short Term Programs</div>
    <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis. Nulla nec aliqu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis. Nulla nec aliqu.</div>
  </div>
  <div class="more_info"><a href="#"><span class="more_info_btn">More Info</span></a>
  </div>

</div>

【讨论】:

  • 您好 Alex,正如您在运行它时所看到的,它破坏了作为链接的整个橙色框。有办法解决吗?谢谢你的时间。
  • 至少对我来说,在更新的代码中,该框仍然不是链接。仅包含文本的部分,直到框的两侧,而不是上方或下方。
  • 所以关于我们的答案,我们也建议您相同的答案
  • 我撤回了,没看到你是怎么做到的。不幸的是,将其设置在固定的行高不起作用,因为有像这样的不同框,当您扩展/收缩它们时,会有更多的文本行,并且更多的信息不会适应新的高度盒子。
  • @Gerardo 检查一下,我认为现在还可以。
【解决方案2】:

我认为这可能会解决您的问题..

您只需将.more_info_btn 中的display:inline-block 更改为display:table-cell

并将div 设置为a 标记,这样整个盒子就会变成link

【讨论】:

    【解决方案3】:

    您需要从.more_info_btn 中删除显示内联块:)

    .program_category_description {
      background-color: #e0e0e0;
      margin-bottom: 20px;
      max-width:1300px;
    }
    .program_category_description .description {
      display: table-cell;
      padding: 2% 1% 2% 1%;
    }
    .program_category_description .title {
      font-weight: bold;
      font-size: 20px;
      padding-bottom: 2%;
      font-family: 'Lato', sans-serif;
    }
    .program_category_description .more_info {
      text-align: center;
      vertical-align: middle;
      display: table-cell;
      width: 15%;
      background-color: #CE6D2B;
    }
    .program_category_description .more_info a {
      color: white !important;
    }
    .more_info_btn {
      font-size: 20px;
     /* display: inline-block;*/
      height: 100%;
      width: 100%;
      text-align: center;
      cursor: pointer;
      -o-transition: background-color .2s ease-in;
      -moz-transition: background-color .2s ease-in;
      -webkit-transition: background-color .2s ease-in;
      transition: background-color .2s ease-in;
    }
    .more_info_btn:hover {
      background-color: #b96226;
    }
    .more_info_btn:active {
      background-color: #ccc;
    }
    <div class="article_body_section program_category_description">
      <div class="description">
        <div class="title">Short Term Programs</div>
        <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
          Nulla nec aliqu.</div>
      </div>
      <div class="more_info"><a href="#"><span class="more_info_btn">More Info</span></a>
      </div>
    
    </div>

    【讨论】:

    • 大声笑,喜欢没有评论的-1?删除显示属性是否垂直对齐?
    【解决方案4】:

    只需添加您的a 标签而不是您的 div: (这是一个跨浏览器的解决方案。它适用于firefox、chrome和IE)

    .program_category_description {
      background-color: #e0e0e0;
      margin-bottom: 20px;
      max-width:1300px;
    }
    .program_category_description .description {
      display: table-cell;
      padding: 2% 1% 2% 1%;
    }
    .program_category_description .title {
      font-weight: bold;
      font-size: 20px;
      padding-bottom: 2%;
      font-family: 'Lato', sans-serif;
    }
    .program_category_description .more_info {
      text-align: center;
      vertical-align: middle;
      display: table-cell;
      width: 15%;
      background-color: #CE6D2B;
    }
    .program_category_description .more_info a {
      color: white !important;
    }
    .more_info_btn {
      font-size: 20px;
      display: inline-block;
      width: 100%;
      text-align: center;
      cursor: pointer;
      -o-transition: background-color .2s ease-in;
      -moz-transition: background-color .2s ease-in;
      -webkit-transition: background-color .2s ease-in;
      transition: background-color .2s ease-in;
    }
    .more_info:hover {
      background-color: #b96226;
    }
    .more_info:active {
      background-color: #ccc;
    }
    <div class="article_body_section program_category_description">
      <div class="description">
        <div class="title">Short Term Programs</div>
        <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
          Nulla nec aliqu.</div>
      </div>
      <a class="more_info" href="#"><span class="more_info_btn">More Info</span></a>
      </div>
    
    </div>

    【讨论】:

    • .more_info_btn的高度:100%
    【解决方案5】:

    .program_category_description {
      background-color: #e0e0e0;
      margin-bottom: 20px;
      max-width:1300px;
    }
    .program_category_description .description {
      display: table-cell;
      padding: 2% 1% 2% 1%;
    }
    .program_category_description .title {
      font-weight: bold;
      font-size: 20px;
      padding-bottom: 2%;
      font-family: 'Lato', sans-serif;
    }
    .program_category_description .more_info {
      text-align: center;
      vertical-align: middle;
      display: table-cell;
      width: 15%;
      background-color: #CE6D2B;
    }
    .program_category_description .more_info a {
      color: white !important;
      width: 100%;
      text-align: center;
      display: table;
    }
    .more_info_btn {
      font-size: 20px;
      display: table-call;
      height: 100%;
      width: 100%;
      text-align: center;
      cursor: pointer;
      -o-transition: background-color .2s ease-in;
      -moz-transition: background-color .2s ease-in;
      -webkit-transition: background-color .2s ease-in;
      transition: background-color .2s ease-in;
    }
    .more_info_btn:hover {
      background-color: #b96226;
    }
    .more_info_btn:active {
      background-color: #ccc;
    }
    <div class="article_body_section program_category_description">
      <div class="description">
        <div class="title">Short Term Programs</div>
        <div class="description_description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
          Nulla nec aliqu.</div>
      </div>
      <div class="more_info"><a href="#"><span class="more_info_btn">More Info</span></a>
      </div>
    
    </div>

    【讨论】:

      【解决方案6】:

      请尝试以下代码

      CSS

       .program_category_description {
            background-color: #e0e0e0;
            margin-bottom: 20px;
            max-width:1300px;
          }
          .program_category_description .description {
            display: table-cell;
            padding: 2% 1% 2% 1%;
          }
          .program_category_description .title {
            font-weight: bold;
            font-size: 20px;
            padding-bottom: 2%;
            font-family: 'Lato', sans-serif;
          }
          .program_category_description .more_info {
            text-align: center;
            vertical-align: middle;
            display: table-cell;
            width: 15%;
            background-color: #CE6D2B;
          }
          .program_category_description .more_info a {
            color: white !important;
      
          }
          .more_info_btn {
            font-size: 20px;
            display: inline-table;
            height: 100%;
            width: 100%;
            /*Padding:51px 0px 0px 7px;*/
            text-align: center;
            cursor: pointer;
            -o-transition: background-color .2s ease-in;
            -moz-transition: background-color .2s ease-in;
            -webkit-transition: background-color .2s ease-in;
            transition: background-color .2s ease-in;
          }
          .more_info_btn:hover {
            background-color: #b96226;
          }
          .more_info_btn:active {
            background-color: #ccc;
          }
      

      HTML

      <div class="article_body_section program_category_description">
              <div class="description">
                  <div class="title">Short Term Programs</div>
                  <div class="description_description">
                      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis euismod lacus vitae dui fermentum, quis lacinia risus viverra. Nulla aliquam leo quis velit dictum viverra. Duis vehicula pharetra imperdiet. Duis eleifend orci eget ultrices convallis.
                      Nulla nec aliqu.
                  </div>
              </div>
              <div class="more_info">
                  <a href="#"><span class="more_info_btn">More Info</span></a>
              </div>
      
          </div>
      

      这可能在 Firefox 中有效。

      【讨论】:

      • 请告诉我你真正想要什么?
      • 您好,很抱歉我无法回复,因为我被答案淹没了。我已经尝试了一个不同的,它的工作。最好的祝福。 PS:我不是反对者。
      • 我没有投反对票。因为我是新帐户,所以我什至不能投反对票。
      • 但您可以将其签入作为答案。请这样做。
      【解决方案7】:

      阿米特·辛格是正确的

      如果你给你的一个类块

       <div class="more_info"><a href="#" class="block"><span class="more_info_btn">More Info</span></a>
      

      然后在css中创建.block类

      .block{display:block;}
      

      问题解决了

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 2011-11-28
        • 2013-10-15
        • 1970-01-01
        • 2016-07-29
        • 2014-03-23
        • 2011-07-23
        • 1970-01-01
        • 2014-10-19
        相关资源
        最近更新 更多