简体   繁体   中英

How do I vertically center text and icons in Bulma?

I'm trying to center an icon and text using Bulma and flexbox in a vue.js project, I tried to follow the answer from this question ( How to vertically center elements in Bulma? ). My icon vertically centers but the text elements seem to be off-center with a few pixels of white space under them. They are both on the same baseline but means they aren't in line with my icon (see image below).

带有图标的文本偏离中心

I'm not sure where I am going wrong, I've included my code below, I'd appreciate any help possible please

 <template>
   <div class="singleProjectContainer" :key="project.id">
     <ul class="columns is-flex projectPreview" style="border-bottom: 0.5px solid #c1c1c1;">
       <div class="column is-1 is-flex projectIcon">
         <li>
          <div v-if="project.projectType === 'Identity'"class="projectIcon" >
           <img src="../static/SVG/Identity-Circle.svg" alt="circle icon for branding & identity" />
         </div>
     </li>
   </div>
   <div class="projectTitle column is-4">
     <li> <h3>{{ project.Name }}</h3> </li>
     </div>
     <div class="projectSummary column is-7">
       <li> <p>{{ project.Summary }}</p> </li>
     </div>
   </ul>
 </div>
</template>

<script>
export default {
  name: 'ProjectItem',
  props: ['project'],
 }
</script>

<style scoped>

.columns {
  height: 100%;
  padding: 0;
  margin: 0;
 }

.singleProjectContainer {
 height: 72x;
 margin: 0px;
 }

.columns.projectPreview {
 -webkit-box-align: center;
 -ms-flex-align: center;
  align-items: center;
 }

.projectIcon {
 padding: 0 0 0 10px;
 height: 100%;
 }

.projectTitle {
 height: 100%;
}

.projectIcon img {
height: 20px;
width: 20px;
}

.projectTitle h3 {
 font-size: 1.2em;
 font-family: 'Sporting Grotesque_Regular';
 color: black;
}

</style>

.is-vcentered selector related only to columns : https://bulma.io/documentation/columns/options/#vertical-alignment

.columns.is-vcentered {
    align-items: center;
}

Bulma >= 0.9.1

Since Bulma, 0.9.1 we can use flexbox helpers :

Combined with is-flex , all of the Flexbox CSS properties are available as Bulma helpers:

  • flex-direction
  • flex-wrap
  • justify-content
  • align-content
  • align-items
  • align-self
  • flex-grow
  • flex-shrink

Example:

<div class="is-align-items-center is-flex"></div>

Snippet:

 <div class="container"> <ul class="list"> <li class="box list-item is-flex is-align-items-center "> <span class="icon has-text-danger"> <i class="fas has-text-success fa-2x fa-adjust"></i> </span> <h2 style="margin-left: 10px; font-size: 60px; line-height: 1;">Hello world</h2> <h3 style="margin-left: auto;">Right text</h3> </li> <li class="box list-item is-flex is-align-content-center"> <span class="icon has-text-danger"> <i class="fas has-text-danger fa-2x fa-exclamation-triangle"></i> </span> <h2 style="margin-left: 20px; font-size: 20px;">Item 2</h2> <h3 style="margin-left: auto;">Right text</h3> </li> </ul> </div> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">

Bulma < 0.9.1 (Old answer)

For lists - No "built-in" way (by helpers) to align icons and text (yet). One solution - use core is-flex and one CSS custom style (For align-items: center; ).

Snippet:

 /* one custom class (not from bulma core) */ li.vcenter{ align-items: center; }
 <div class="container"> <ul class="list"> <li class="list-item is-flex vcenter"> <span class="icon has-text-danger"> <i class="fas has-text-success fa-2x fa-adjust"></i> </span> <h2 style="margin-left: 10px; font-size: 60px; line-height: 1;">Hello world</h2> <h3 style="margin-left: auto;">Right text</h3> </li> <li class="list-item is-flex vcenter"> <span class="icon has-text-danger"> <i class="fas has-text-danger fa-2x fa-exclamation-triangle"></i> </span> <h2 style="margin-left: 20px; font-size: 20px;">Item 2</h2> <h3 style="margin-left: auto;">Right text</h3> </li> </ul> </div> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.2/css/bulma.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">

Related: How to center text vertically with a large font-awesome icon?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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