html - DOCTYPE对CSS​​有影响吗?

标签 html css doctype

我想制作一个固定大小的容器,里面有一个图像(大小未知)。然后我想让图像适合容器并在容器中居中(水平和垂直)。我想到的是:

<!DOCTYPE html>
<html>
  <body>
    <div style="width: 500px; height: 375px; display: table-cell;
                vertical-align: middle">
      <img src="./Slideshow_files/Charles Bridge In Prague.jpg"
           style="max-width: 500px; max-height: 375px">
    </div>
  </body>
</html>

对于某些图像,效果很好。然而this one (尺寸精确为 500x375)使得外部 div 的高度比底部的 375px 高几个像素(Chrome 中为 5px,Opera 中为 4px)。这是为什么?

编辑:刚刚添加了演示 here (另一个带有 display: table-rowdisplay: table 元素, here )。在这两种情况下,红色背景都不应该是可见的;在 Chrome 和 Opera 中是这样。

最佳答案

您可以通过在 img 上设置 display: blockvertical-align: top(或 bottom)来解决该问题.

共有三种不同的渲染模式:

  • 怪癖模式
  • 几乎标准模式
  • 标准模式

不同的文档类型会触发不同的渲染模式。请参阅:http://hsivonen.iki.fi/doctype/

在标准模式(具有触发文档类型)下,默认的vertical-alignbaseline

在 Quirks 模式(没有文档类型)下,默认的 vertical-alignbottom

此页面解释得很好:https://developer.mozilla.org/en/Images,_Tables,_and_Mysterious_Gaps

关于html - DOCTYPE对CSS​​有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6650313/

相关文章:

javascript - 自定义复选框不选中

html - CSS 长度中的 <number>%<number> 是什么意思,例如 100%25

html - IE9 CSS兼容性和DOCTYPE声明

html - 带有 CSS 的 slider 仅显示第一张图片

html - 绕过 X 框架选项

html - 简写边框!

css - 这个文档类型有什么问题

css - 为 html5(或任何文档类型)添加文档类型会破坏我的网站

javascript - 谷歌柱形图: Column height not in proportion to the value

javascript - 如何使用 Canvas 在 JS 中更改棋盘的每个框的填充颜色?