gpt4 book ai didi

css - 导入字体导致布局不正确

转载 作者:行者123 更新时间:2023-11-28 05:58:02 24 4
gpt4 key购买 nike

首先,这是我在这里的第一篇文章,所以如果我做错了什么,我深表歉意。

我的问题:一个部分有一个 width: 100%overflow-x: scroll .
如果我从谷歌导入字体“Open Sans”,该部分的宽度突然增加了 100% 以上,因此没有内容会溢出它。该问题似乎可以通过删除导入或提供 main display: block 来解决。而不是 display: table .

https://jsfiddle.net/ehvpehb6/

再一次,在 fiddle 中,您无法在该部分本身中滚动。但是,如果您删除外部资源或更改 display main 的属性,你可以。

这让我们想到了我的问题:是什么原因造成的?为什么是display: table并且导入相互冲突?

编辑:字体问题只出现在 Chrome 中,当我在 Firefox 中尝试时,导入没有导致任何问题。

Image explaining it further

正如@colonelclick 建议的那样,在 CSS 中导入字体将解决问题。但当我在我的计算机上创建文档并以这种方式进行测试时却不行。如果我在 <head> 中导入字体它也解决了这个问题。

我的 html 最终看起来像这样

<!DOCTYPE html>
<html>

<head>
<title>Goot pruject</title>

<!-- Either this... -->
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

<style>
/* ...Or this. Both with the same result.
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
*/
main {
width: 100%;
display: table;
font-family: 'Open Sans', sans-serif;
}
section {
width: 100%;
height: 230px;
overflow-y: hidden;
overflow-x: scroll;
white-space: nowrap;
}
main figure {
display: inline-block;
width: auto;
margin-right: 30px;
height: inherit;
border: 1px solid #b2b2b2;
}
main figure img {
width: inherit;
height: inherit;
}
</style>

</head>

<body>
<main>
<section>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
<figure>
<img src="http://placehold.it/155x230" />
</figure>
</section>
</main>
</body>

</html>

迫切的问题是为什么导入字体会改变布局的工作方式。

最佳答案

您的 fiddle 设置不正确。

您已将其添加为外部资源,但这不是指向外部文件的链接,这是 HTML 代码。

<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

有几种方法可以解决这个问题。 它们都需要删除现有的外部资源,这不是正确的外部资源字符串。我测试了所有这四种解决方案,修复 fiddle 中的错误后,问题在 Chrome 中消失了。

  1. 将链接代码放在您的 fiddle 的 HTML 中。

https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

  1. 仅使用字体 URL 作为外部资源。

https://fonts.googleapis.com/css?family=Open+Sans

  1. 在您的 fiddle 的 CSS 中使用来自 google 字体的导入命令。

@import url(https://fonts.googleapis.com/css?family=Open+Sans);

  1. 在 fiddle 的 js 部分使用来自 google 的 js 字体加载器。 (可在 https://www.google.com/fonts#UsePlace:use/Collection:Open+Sans 获得)

关于css - 导入字体导致布局不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948405/

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