【问题标题】:'display: inline block' trick not working in firefox“显示:内联块”技巧在 Firefox 中不起作用
【发布时间】:2014-06-05 00:11:44
【问题描述】:

我要创建的是一个整页网站(无滚动条),其中包含垂直和水平居中的文本/图像/div 块。我研究并使用了一种技术,使用 100% 高度 div 和 0px 宽度,然后使用内容 div 垂直居中内容。在 safari 中完美运行,在 firefox 中完全不适用(在两种浏览器中都可以水平运行。)下面用于此的代码块...

html-

body

<div class="block">
  <div class="centered">
    ... content and images
  </div>
</div>

css-

html, body {height: 100%;}

.block {
background: url(images/bgimage.jpg) no-repeat center center fixed; 
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover; 
min-height: 100%;
margin: 0px;
}

.block:before {
content: '';
display: inline-block;
height: 100%; 
vertical-align: middle;
padding: 0px;
margin: 0px;
}

.centered {
display: inline-block;
vertical-align: middle;
padding:0px;
margin: 0px;
text-align: center;
*display:inline;
}

是否有一些等效于“显示:内联块”的东西我可以用于 Firefox?我不能使用 'float:left' 因为它不会垂直居中内容 div,并搞砸内联块语句。

欢迎大家帮忙

  • 干杯

【问题讨论】:

  • 介意提供一个 fiddlejs 吗?
  • 您的代码不会以 Firefox、Chrome 或 Safari 为中心。 Demo
  • 我尝试制作小提琴,但无法正确重现问题
  • html,正文 {高度:100%;}
  • 仍然没有居中任何东西 (Demo)。在发布问题之前,请确保您的问题是可重现的。

标签: html css


【解决方案1】:

只需将下面的 css 规则添加到具有内联样式的元素中,它应该可以修复它:

display: -moz-inline-stack;

【讨论】:

  • 试过了,显然人们说它只适用于 firefox 2,不适用于任何较新的
  • 用“BrowserStack”测试它,在不同的 FireFox 浏览器上查看结果。如果不是最后一个将是 -moz-inline-box 或 -moz-inline-block,其中之一应该会有所帮助。
  • 还是同样的问题。一切都被推到'.block:before' div下面。 safari 浮动 div 居中并在其旁边。 Firefox 把它放在下面。
  • 我很乐意将文件发送给您
【解决方案2】:

这是一个在兼容浏览器中垂直和水平居中的工作代码:

Demo

html, body {
    height: 100%;
    margin: 0;
}
.block {
    height: 100%;
    text-align: center;
}
.block:after, .centered {
    display: inline-block;
    vertical-align: middle;
}
.block:after {
    content: '';
    height: 100%; 
}

基于Centering in the unknown

【讨论】:

  • 漂亮,修复了我的问题,但添加了一个新问题,当窗口缩小到一定大小时,内容会弹出到顶部。在野生动物园中
  • Nvm。我想出了一个解决办法。我感谢所有的帮助。节省了我好几个小时的睡眠时间。干杯!
  • @user3550879 您的新问题 通常是一种值得赞赏的行为,因为用户将能够滚动内容。还介意分享你的做法吗?
  • 基本上当屏幕调整到内容的宽度时(无论是指定的宽度,还是内容的宽度),内容都会转到页面顶部。我正在寻找一个在全尺寸窗口中有一个小内容块的响应式网站。如果它一直卡在顶部,看起来会很糟糕。如果我使用的宽度是屏幕宽度的 %,它可以防止这种情况发生
  • @user3550879 最简单的修复方法是font-size: 0 以避免空格,并将其重置为.centeredDemo
猜你喜欢
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多