gpt4 book ai didi

'em' 中的 HTML 选取框标记宽度表现得很奇怪

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:41 24 4
gpt4 key购买 nike

Marqueehtml 中最令人讨厌的标签之一,这种讨厌可能可以追溯到 90 年代,当时每个人都有自己的网页,并且每个人都在滥用这个标签。

在我作为兼职网页设计师的这些年里,我发现这个标签对于某些技巧非常有用。 “缺乏兼容性”只是对 IE 方式的宣传(老实说,我也不喜欢 IE),因为据我的测试证实,最新版本IEFFOperaSafariChrome 都支持它。

不过,我的代码有问题:

<html>
<head>
<title>
</title>
<style type="text/css">
body, marquee {font-family: courier new; font-size: 30}
marquee {width: 10em}
span {background-color: #008000};
</style>
</head>
<body>
<marquee bgcolor="#800000" direction="left" behavior="slide"><span>1234567890</span></marquee><br>
12345678901234567890<br>
</body>
</html>

整个文档使用相同的字体和大小,marquee 元素的宽度被清楚地设置为 10em(是的,当你增加数字时它会变长,是的,当你增加数字时它是像素微小的你删除了 em)。无论您在此处输入什么值,marquee 的宽度都将是该值的 160%。

编辑:我的问题可能含糊不清并引起一些困惑。绿色条应该滑入并完全覆盖红色背景。 marquee 和滑动 span 都应该是 10 个字符宽(marquee 不是,这就是问题所在)。

分析来自 cale_b 的非常有用和详细的答案,我得出结论,我的浏览器将 width: 1em 解释为“这个元素的宽度是当前正在使用的字体的一个高度”。由于大多数字体的宽度/高度比例都使用黄金比例,我认为这就是我的长度增加 160% 的原因 (gr=1.61803)。

你同意我的结论吗?你知道如何让这两个元素的字符宽度相同吗?

最佳答案

我没有发现选取框太宽的证据。

根据您提供的标记,默认字体大小为 16px,这将导致 1em 等于 16px(因此 10em 等于 160px)。

这是一篇关于该主题的精彩文章:http://css-tricks.com/css-font-size/

这是一个 fiddle ,它演示了 10em 处的选框与宽度相同的 div 的宽度相同假设它们应用了相同的字体大小。请注意,为了演示,我已更新它以反射(reflect) 20 像素的字体大小。

Fiddle

但是,我确实发现了 css 和标记的一些问题:

你有额外的关闭</td>你的 html 中的标签。这表明您可能正在使用表格进行布局,我强烈建议不要这样做。

您的 font-size: 30 上没有单位- 应该是像素、ems、点还是??

编辑:
您得出的结论是正确的 - 1em 等于字体大小的高度,而不是字体大小的宽度。所有浏览器都是如此。

为了获得所需的宽度,您需要确定字体宽度和高度之间的比例(正如您已经暗示的那样)。 注意不同的字体可能有不同的比例。

另一种方法是在 span 和选取框上设置宽度,并使用另一种技术(例如 text-align: center)使其看起来不错。

关于 'em' 中的 HTML 选取框标记宽度表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24416262/

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