【问题标题】:Vertically Center Text垂直居中文本
【发布时间】:2015-09-16 09:26:44
【问题描述】:

我的代码中的某些 CSS 存在问题。 使用引导程序,我创建了一个高度为 400 像素的正方形,我希望在其中放置垂直居中的文本。 我在悬停时使用 JavaScript 更改文本,这里的问题是如果文本更改为两行值,则 CSS 将不再正常工作。

JSfiddle:https://jsfiddle.net/Ljprxkrq/3/ 出于某种原因,Hover 似乎在小提琴中不起作用。

<div class="col-xs-offset-1 col-xs-10 col-sm-offset-0 col-sm-4">
    <div class="navigation-links">
      <h2><a href="#" id="text-display" class="network"
        onmouseover="changeText('More network information here')"
        onmouseout="defaultText()">Network</a></h2>
    </div>
  </div>

.navigation-links {
height: 400px;
}

h2 {
  font-family: 'Open Sans', sans-serif;
  font-size: 40px;
  text-align: center;
  -webkit-font-smoothing: antialiased;
 }

a {
  text-decoration: none;
  color: white;
}

a:hover {
  color: white;
  text-decoration: none;
}

【问题讨论】:

  • 甚至更好 - 制作一个 jsfiddle 或类似的东西来重现问题。
  • @Adam Fenwick 我可以使用 Javascript/JQuery 吗?它将以更好的方式解决您的问题。
  • @divy3993 你当然可以!我在这里做噩梦

标签: html css position center


【解决方案1】:

好吧,让我们从 JSFiddle 和 Javascript 不工作开始。

如果您不指定换行设置,则默认为“onLoad”。这导致所有 JavaScript 都被包装在一个函数中,在结果加载后运行。所有变量都是此函数的本地变量,因此在全局范围内不可用。

将换行设置更改为“不换行”即可:

Source - Screenshot

至于问题

好像你已经在使用 flex 了。为什么不把它也用于垂直对齐呢?追加:

.navigation-links {
    display: flex;
    align-items: center;
}

JSFiddle

【讨论】:

  • 从未想过!谢谢你的两个部分!
【解决方案2】:

试试这个:

.navigation-links {
  background: #eee none repeat scroll 0 0;
  display: table-cell;
  height: 100px;
  vertical-align: middle;
}
<div class="col-xs-offset-1 col-xs-10 col-sm-offset-0 col-sm-4">
  <div class="navigation-links">
    <h2><a href="#" id="text-display" class="network"
        onmouseover="changeText('More network information here')"
        onmouseout="defaultText()">Network</a></h2>
  </div>
</div>

更新:
你可以添加类vertical-centernavigation-linksclass="navigation-links vertical-center"

demo

【讨论】:

  • table-cell 不幸地与引导列混淆,使正方形的大小不同,而不是整个列宽
猜你喜欢
  • 2013-10-15
  • 2015-06-06
  • 1970-01-01
  • 2023-03-05
  • 2014-03-02
  • 2011-02-03
  • 2014-10-22
相关资源
最近更新 更多