简体   繁体   English

如何在此范围内使文本垂直居中

[英]How to vertical-center text inside this span

I have a piece of code for a website that I'm writing, that I can't figure out. 我有一个我正在写的网站代码,但我不知道。

 .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> 

The reasoning for the span is so that the whole orange block is a clickable link. 跨度的原因是整个橙色块都是可单击的链接。 The problem is that I want the "more info" text to be centered within the block at all times. 问题是我希望“更多信息”文本始终始终位于块内。 I don't want to give it specific pixel properties as I want it to stretch or get bigger when resized. 我不想给它特定的像素属性,因为我希望它在调整大小时可以拉伸或变大。 The only restriction is a max-width of 1300px. 唯一的限制是最大宽度为1300px。

I have already tried vertical align, or adding a percentage based padding, but none work. 我已经尝试过垂直对齐,或添加基于百分比的填充,但是没有任何效果。 As you can probably tell, I am not very experienced in this and learning by day, so if you see other things worth pointing out in the code, or other solutions, please do. 您可能会说,我在这方面并没有很丰富的经验,而且每天都在学习,因此,如果您看到代码或其他解决方案中值得指出的其他事情,请这样做。

You can use display: flex alongside with align-items: center : 您可以将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> 

Second example with very long text: 长文本的第二个示例:

 .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> 

Just add your a tag instead your div: (This is a cross-browser solution. It works in firefox, chrome and IE) 只需添加您的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> 

I think this might solve your problem.. 我认为这可能会解决您的问题。

You just have to change display:inline-block into display:table-cell in the .more_info_btn 您只需要在.more_info_btn display:inline-block更改为display:table-cell

and make div an a tag so that the whole box will be link 并作出diva标签,使整个框将link

Ammit Singh was correct Ammit Singh是正确的

if you give your a class of block 如果给你一类障碍

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

Then create the .block class in css 然后在CSS中创建.block类

.block{display:block;}

problem is solved 问题解决了

You need to remove the display inline-block from the .more_info_btn :) 您需要从.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> 

 .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> 

Please try following code 请尝试以下代码

CSS 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 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>

This may work in firefox. 这可能在Firefox中工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM