【问题标题】:how do i vertically center this text within this div (normal fixes aren't working)?我如何在这个 div 中垂直居中这个文本(正常修复不起作用)?
【发布时间】:2013-12-24 23:54:32
【问题描述】:

在这个网站 (http://whitewashed.richiesiegel.com/) 上这个页面上的文本当前有一个 padding-top 设置高度,但我想替换它以使其在 div 中垂直居中,但正常属性似乎没有工作。

CSS

#header {
    height: 100%;
    width: 100%;
    background-image:url(images/5pointz_white_door.jpg);
    background-size:cover;
    background-position: center;
    background-repeat:no-repeat;
    vertical-align: middle;
} 

【问题讨论】:

  • 您是否检查了右侧“相关”标题下显示的问题?例如。 stackoverflow.com/questions/7616969/…
  • 这个问题已经被问过很多次了。与此相关的其他问题没有解决您的问题的任何原因?
  • @FrankvanPuffelen 我有,但他们似乎没有修复它。
  • @rattmuff 我刚刚尝试匹配 Frank 发送的链接并添加 display: table-cell;不修复它。我认为这很复杂,因为背景图像。刚刚添加了指向我正在开发的网站的链接。

标签: html css responsive-design


【解决方案1】:

在标题中插入 p 并更改 css:

#header{
    height: 100%;
    width: 100%;
    background-image:url(images/5pointz_white_door.jpg);
    background-size:cover;
    background-position: center;
    background-repeat:no-repeat;   
    display: table;
}
#header p {
   display: table-cell;
   text-align: center;
   vertical-align: middle;
}

【讨论】:

  • 谢谢,但仍然没有为我解决这个问题!有什么想法吗?
【解决方案2】:

添加这个

#header {
    height: 100%;
    width: 100%;
    background-image:url(images/5pointz_white_door.jpg);
    background-size:cover;
    background-position: center;
    background-repeat:no-repeat;
    vertical-align: middle;
    text-align: center;
} 

   #yourdiv {
        vertical-align: middle;
        text-align: center;
   }

【讨论】:

    【解决方案3】:

    这是有效的:

    你必须添加另一个div元素

    try

    【讨论】:

    【解决方案4】:

    display:table 解决方案确实有效;但是,您必须将标题从页面顶部的导航栏下方推出。文本不会在标题 div 中居中显示,即使这是因为您的导航栏当前覆盖了部分标题。

    您可以通过添加来解决此问题

    #header{
    padding-top:59px; <!-- the height of the nav bar -->
    }
    

    然后从标题元素中删除填充并添加

    display:table-cell;
    

    这个jsfiddle 展示了它是如何工作的(出于演示目的,我在标题上设置了一个高度,但我在您的实际站点上用 height:100% 对其进行了测试,它工作得很好)。

    在制作小提琴时,我注意到另外两件事。我不认为标题中的每个文本元素都需要三个单独的类,因为它们都包含相同的代码,所以我在小提琴中制作了一个名为 .neue 的类。为什么不在 CSS 而不是 HTML 中为每个字体设置字体大小?

    【讨论】:

    • 感谢您这样做。所以小提琴就像你说的那样是正确的,我复制了那个代码,但它仍然对我不起作用。有什么想法吗?感谢您的帮助。
    • 我使用 chrome 的检查元素在您的实际站点上对其进行了测试,效果很好。您是否在标题上添加了顶部填充?
    • 另外,正如我在回答中提到的,我更改了 html 中的类和标题元素的高度。你可能也想检查一下。
    • 这太奇怪了。我再次从小提琴中复制了你的 CSS,没有任何改变。如果您按原样使用站点并更改检查元素中的 css,您需要更改什么才能使其为您工作?
    • 我解释了在我的答案中将标题栏居中所必须做的三件事。这并不难。将填充添加到标题,将 display:table-cell 添加到标题 div,并从标题 div 中删除填充。我测试了它。有用。标题栏在 div 中居中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2013-02-15
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多