gpt4 book ai didi

html - 为什么我的容器在 Chrome 以外的其他浏览器中比它的子容器宽?

转载 作者:行者123 更新时间:2023-11-28 00:15:08 25 4
gpt4 key购买 nike

我需要一些帮助。当我在 Chrome 中处理一个元素时,我想在 Firefox 中测试它,并且很困惑为什么它看起来如此不同。

Screenshot from Firefox

任何人都可以向我解释为什么包含图像的绿色 div 不调整其相对于子项的宽度吗?这是一个错误吗?这是一个功能吗?这是一个错误功能吗?

研究

正如我在 Chrome 中所期望的那样,它看起来像这样:

Screenshot from Chrome

但在 Firefox 中,有很多奇怪的空白区域(这与第一个图像相同):

Screenshot from Firefox

此外,这是以下浏览器的屏幕截图(从左开始)Firefox、Opera 和 Internet Explorer 11:

Screenshot from FF, Opera and IE11

如您所见,它在 Opera 中的工作方式与我预期的一样,但在 FF 和 IE11 中则不然。它在 Edge 中也不起作用。

我的发现

在我看来,Firefox 在调整图像大小后忘记重新计算父级的宽度。

这是一个没有高度限制的截图(100% 的 parent 200px 高度):

enter image description here

如果我读取高度限制,它看起来像这样:

enter image description here

可以看到,宽度是一样的。请注意,绿色 div 的宽度为 510px。这与图像 (500px) + 填充 (5px + 5px) 相同。

代码

为了您的方便,我尝试添加一个 jsFiddle,但奇怪的是,我无法在那里重现错误(它按预期工作)。

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<style>

.wrapper {
height: 200px;
}

.div1 {
float: left;
background-color: green;
}

.div1 img {
height: 100%;
padding: 5px;
}

.div2 {
background-color: blue;
}

</style>
</head>
<body>
<div class="wrapper">
<div class="div1">
<img src="http://placehold.it/500x500">
</div>

<div class="div2">
<h1>Heading</h1>
</div>
</div>
</body>
</html>

最佳答案

我会回答我自己的问题,希望能帮助别人

简单描述:

我缺少 HTML5 文档类型声明,它看起来像这样:<!DOCTYPE html> .

更长的版本:

在写这道题的时候突然想到,可能是没有doctype声明导致的。快速测试证实了我的怀疑。我所缺少的只是 <!DOCTYPE html>声明!

可以肯定地说,我将更新我的代码片段以包含文档类型。我使用了 Visual Studio 的 doc片段,再也没有想过。请注意 html片段已经包含一个文档类型。 (在 VS 中:如果您在 HTML 文档中键入 htmldoc 并点击 Tab,将出现一个快速 HTML 模板)

为什么

在没有文档类型声明的情况下,浏览器会以所谓的怪癖模式尽可能地呈现页面。在 quirks 模式下,浏览器必须猜测页面的外观,主要关注向后兼容性。因此,结果自然会偏离较新的规范。

文档类型的发明是为了在 IE 和 Netscape 还存在的时候将遗留站点与使用较新规范的站点区分开来。您可以在 MDN 上阅读更多相关信息:

很高兴知道:

Make sure you put the DOCTYPE right at the beginning of your HTML document. Anything before the DOCTYPE, like a comment or an XML declaration will trigger quirks mode in Internet Explorer 9 and older.

-MDN

In HTML5, the only purpose of the DOCTYPE is to activate full standards mode.

-MDN

如何查看正在使用的模式

在 Windows 上,单击 alt打开旧的工具栏,然后转到ToolsPage info

enter image description here

enter image description here

关于html - 为什么我的容器在 Chrome 以外的其他浏览器中比它的子容器宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55167990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com