【问题标题】:Vertical-align not working with XHTML 1.0 Transitional doctype?垂直对齐不适用于 XHTML 1.0 过渡文档类型?
【发布时间】:2011-07-27 06:54:09
【问题描述】:

好的,所以我搞砸了很长时间,试图使用 vertical-align:middle 将图像垂直居中在 div 中(同时还使用 text-align:center 将其水平居中),我绞尽脑汁想弄清楚找出为什么它不起作用。

.container{
    height:200px;
    width:200px;
    text-align:center;
    line-height:200px;
    }

    .image{
    vertical-align:middle;
    }

在我看来应该如此,但事实并非如此,事实证明解决它的方法是更改​​文档类型

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

当我这样做时,图像居中。

怎么会?我的印象是,严格的文档类型允许的属性比过渡的少,这是错误的吗?我似乎找不到任何关于vertical-align 和XHTML 1.0 Transitional 的信息,但说到Strict,我发现所有关于它的信息都不允许这个和那个,所以我有点困惑。对于这个特定的网站,我宁愿不使用 Strict,但我确实需要使用 vertical-align。

有人可以解释一下吗?谢谢

【问题讨论】:

  • 你在哪些浏览器上试过这个?您在文档类型之前是否在文档中添加了其他内容(例如 &lt;?xml 声明)? doctype 之前的任何内容都会触发浏览器的怪癖模式,这简直就是地狱。另外,您可以与图像共享html代码片段吗?此外,您将获得什么以及您想要获得什么的屏幕截图会有所帮助(vertical-align 是一个非常晦涩的属性,其工作方式与大多数人的预期不同)。
  • @herenvardo - 文档类型之前的任何内容都只会触发 IE 中的怪癖,而不是现代浏览器。现代浏览器也知道如何处理您提到的 XML 声明。 IE 没有。
  • @Rob:更糟糕的是:不同浏览器上完全不同的模式,而不仅仅是不同的怪癖?如果您仍然打算破解 IE,它可能会这样做,但不是非常可取。尽管如此,确切地了解 OP 试图实现的目标以及它在哪个浏览器/s 上失败还是非常有用的。再看一遍,引号中缺少了一大块 doctype:如果问题出在那个块中,我们将无法指出。
  • @Herman:另一个想法:Strict doctypes 禁用的内容已被弃用,无论如何都被认为是不好的做法;因此,如果您的网站可以使用它们,那么就没有理由坚持使用过渡。 Transitional 旨在简化过渡(从 3.2 insane tag-soup 开始),Strict 更像是“现代 HTML 应该做的”,忽略了 target 属性(这在具有 iframe 的页面上非常有价值,但 Strict 没有允许)。
  • @herenvardo - 我已经在 Chrome、Firefox、Safari、Opera 和 Explorer 中尝试过,所有这些都发生了同样的事情。我试图通过创建一个新文档来隔离问题,因此 HTML 非常简单 &lt;div class="container"&gt; &lt;img class="image" src="image.png"/&gt; &lt;/div&gt; CSS 是您在我的第一篇文章中看到的,两个文件之间的唯一区别是 doctype。

标签: css image doctype vertical-alignment


【解决方案1】:

文档类型不会影响 CSS 的功能。但是,您尝试的第二个文档类型确实触发了您不想进入的怪癖模式,因为它使用了错误的盒子模型。新网页也不应该使用过渡文档类型。始终使用 strict 或更新的文档类型:&lt;!doctype html&gt;

【讨论】:

  • 它适用于&lt;!doctype html&gt;,它也适用于XHTML 1.1 Strict。
  • 我想我会选择另一种 doctype,尽管我仍然对为什么 Strict doctype 允许在 Transitional 不允许时允许垂直对齐感到困惑,但我希望它会反其道而行之。
  • @ChrisBosco - 简单阅读 W3C 规范或使用任何浏览器调试器进行检查都会告诉您这不是真的。
  • 感谢您让我再次查看(删除了我的评论)。我想我的意思是“almost standards mode”,但我同意如果可能的话总是在严格的 html5 中工作,所以这甚至不是一个考虑因素。我对“文档类型不会影响 CSS 的功能”提出了质疑。
猜你喜欢
  • 1970-01-01
  • 2016-04-15
  • 2016-04-28
  • 2019-02-09
  • 2011-03-14
  • 2010-09-20
  • 2011-11-25
  • 2012-07-27
  • 2018-04-01
相关资源
最近更新 更多