【问题标题】:Material2 Icons and Title Text CSS Not Aligning ProperlyMaterial2 图标和标题文本 CSS 未正确对齐
【发布时间】:2017-03-27 18:08:12
【问题描述】:

我在 Angular 应用程序中使用 material2 图标时遇到了样式问题。具体来说,我有一个按钮,同时显示 material2 图标和一些文本 - 彼此相邻,从左到右运行。现在图标在按钮的中心对齐,但按钮的文本在该图标下方对齐,以免在按钮上居中。

这是我的 HTML:

<div id="wizard-container">
  <div class="intake-step-item">
    <span><i class="material-icons md-28">face</i></span><span class="intake-step-title">General</span>
  </div>
  <div class="intake-step-item">
    <span><i class="material-icons md-28">perm_contact_calendar</i></span><span class="intake-step-title">Availability</span>
  </div>
</div>

这是相关的 css:

#wizard-container {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  z-index: -10;
}

.intake-step-item {
    background: #d7d7d7;
    width: 160px;
    height: 30px;
    margin: 5px;
    padding: 10px;
    border-radius: 15px;
    justify-content: space-around;
    align-items: center;
    text-align: center;
    z-index: 100;
}

.intake-step-item > .active {
  background: #46AB61;
}

.intake-step-title {
  display: inline-block;
  vertical-align: middle;
  text-align: center;
}

.material-icons.md-28 { 
  font-size: 28px; 
  padding: 4px; }

我尝试在标题文本上使用负边距和负边距,但这没有任何区别。我需要做什么才能让每个按钮的标题文本在按钮的中心对齐?

【问题讨论】:

  • 无法用您提供的代码重现问题。你能发布一个工作演示吗?
  • 你是说我的 CSS 看起来没什么问题?
  • 我说这很难说,因为我无法重现您所描述的问题。
  • 我已经检查过了,它在 Chrome 和 FF 中都在做同样的事情 - 图标居中,但文本低于该图标。
  • 这是你提供的:jsfiddle.net/798hdxvg

标签: html css angularjs angular-material2


【解决方案1】:

你只需要

#wizard-container .intake-step-item {
  display: flex;
}

工作示例:

#wizard-container {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  z-index: -10;
}

.intake-step-item {
    background: #d7d7d7;
    width: 160px;
    height: 30px;
    margin: 5px;
    padding: 10px;
    border-radius: 15px;
    justify-content: space-around;
    align-items: center;
    text-align: center;
    z-index: 100;
    display: flex;
}

.intake-step-item > .active {
  background: #46AB61;
}

.intake-step-title {
  display: inline-block;
  vertical-align: middle;
  text-align: center;
}

.material-icons.md-28 { 
  font-size: 28px; 
  padding: 4px; }
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/css/materialize.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/js/materialize.min.js"></script>



<div id="wizard-container">
  <div class="intake-step-item">
    <span><i class="material-icons md-28">face</i></span><span class="intake-step-title">General</span>
  </div>
  <div class="intake-step-item">
    <span><i class="material-icons md-28">perm_contact_calendar</i></span><span class="intake-step-title">Availability</span>
  </div>
</div>

但是,感觉您的 CSS 与 Material Design guidelines 有点冲突。

注意:在部署到生产环境之前不要忘记autoprefix

【讨论】:

  • 那行得通。谢谢!回复:材料设计指南,您指的是我用于图标的字体大小吗?
  • 如果您需要将其翻译成技术规格,可以,但不仅如此。材料是可用性,它是流畅的运动,应该感觉生动,应该感觉自然应该感觉它以流畅和自然的方式响应用户操作。最重要的是,MD 应该非常容易和直观地使用。这就是按钮具有特定尺寸的原因,因此它们仍然可以在所有设备上使用。我将他们在那里所说的准则与示例联系起来,比我在此处的评论中所说的要好得多。
  • 我已经改变了它,所以我使用了指定的尺寸之一:24px。而且我现在没有对图标应用任何填充。看起来运作良好。谢谢。
  • 很高兴我能帮上忙。祝你好运,编码愉快!
猜你喜欢
  • 2017-01-18
  • 1970-01-01
  • 2015-10-21
  • 2012-09-01
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
相关资源
最近更新 更多