【问题标题】:How do I vertically center text and icons in Bulma?如何在 Bulma 中垂直居中文本和图标?
【发布时间】:2020-08-28 20:11:53
【问题描述】:

我正在尝试在 vue.js 项目中使用 Bulma 和 flexbox 使图标和文本居中,我尝试遵循这个问题 (How to vertically center elements in Bulma?) 的答案。我的图标垂直居中,但文本元素似乎偏离中心,下方有几个像素的空白。它们都在同一基线上,但意味着它们与我的图标不符(见下图)。

我不确定我哪里出错了,我已经在下面包含了我的代码,如果有任何帮助,我将不胜感激

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

【问题讨论】:

    标签: html css vue.js flexbox bulma


    【解决方案1】:

    .is-vcentered 选择器仅与columns 相关: https://bulma.io/documentation/columns/options/#vertical-alignment

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

    布尔玛 >= 0.9.1

    自从Bulma,0.9.1我们可以使用flexbox helpers

    结合is-flex,所有的 Flexbox CSS 属性都可以作为 Bulma 助手使用:

    • 弹性方向
    • 弹性包装
    • 证明内容
    • 对齐内容
    • 对齐项目
    • 对齐自我
    • 弹性增长
    • 弹性收缩

    例子:

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

    片段:

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

    布尔玛

    对于列表 - 没有“内置”方式(通过助手)来对齐图标和文本(尚未)。 一种解决方案 - 使用核心 is-flex一个 CSS 自定义样式(适用于 align-items: center;)。

    片段:

    /* 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">

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

    【讨论】:

    • 感谢您抽出宝贵时间回答!在您的 sn-p 和解释的帮助下,我将所有内容垂直居中。我现在遇到的唯一问题是,当我为我的文本设置自定义字体时,基线与默认字体不同,因此两条文本行最终偏离中心,但我通过在它们上放置一个 margin-top 来强制修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 2014-06-25
    • 2014-03-19
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多