预先格式化的文本在 iPhone 上无法正确显示

pre-formatted text not showing up properly on iPhone

提问人:doggo 提问时间:3/3/2020 最后编辑:doggo 更新时间:3/4/2020 访问量:279

问:

我在获取预先格式化的文本以在我的 iPhone 上正确呈现时遇到了问题。

如果我只做一个预先格式化的项目,事情看起来没问题(代码紧挨着下面)。

<!DOCTYPE html>
<html>
<head>
<title>Problem with <pre></title>
</head>

<style>
pre {
  background-color: rgb(30, 30, 30);
  color: rgb(200,200,200);
}
</style>

<body>
<!-- exactly 80 characters -->
<div style="width:80ch"><pre>asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf</pre></div>
</body>
</html>

从我的 iPhone

但是当我尝试在有序列表(下面的代码)中做同样的事情时。

<!DOCTYPE html>
<html>
<head>
<title>Problem with <pre></title>
</head>

<style>
pre {
  background-color: rgb(30, 30, 30);
  color: rgb(200,200,200);
}
</style>

<body>
<div style="width:80ch"><pre>asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf</pre></div>
<ol>
  <li> <div style="width:80ch"><pre>asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf</pre></div>
</ol>
</div>
</body>
</html>

从我的电脑加载它时,一切看起来都很好,但是在我的 iPhone 上,不仅缩进的那个搞砸了,现在原来的看起来也错了。这几乎就像我添加列表时字体大小发生了变化一样。

从我的手机

两个版本的链接:

第一个

第二个

如何使此功能在手机上正常工作?我需要宽度为 80 个字符宽,以便可以显示标准终端输出。

HTML CSS格式

评论

0赞 Sydney Y 3/3/2020
尝试将 div 和 li 设置为 inline-block,并将 x-overflow 属性设置为 scroll。我不认为预先格式化的文本不会换行。
1赞 doggo 3/4/2020
这提供了一个解决方法(谢谢你!),但问题仍然没有解决。请注意,第一个确实在iPhone上正确显示。
0赞 doggo 3/4/2020
我看到我至少收到了一张反对票,但没有关于如何改进问题的建议。我会要求任何有反馈的人告诉我如何提出更好的问题。
0赞 Sydney Y 3/6/2020
反对票不是我,而是根据我的观察:SO 更喜欢内联图像和代码。我想这样它会在问题的生命周期中持续存在,而不是指望 imgur 继续托管图像。
0赞 doggo 3/6/2020
无赖。作为新用户,我不被允许在我的问题中放置图像。

答:

0赞 Sydney Y 3/4/2020 #1

css 单位实际上是 a(零)的宽度。因此,为了使您的代码正常工作,您必须确保父元素使用等宽字体,并且它是 Web 安全的,以便您的手机使用该等宽字体。ch0

在您的例子中,和正在使用单位,因此 和 需要具有等宽字体,因为它们不会从子标记继承。您还需要在元素及其父元素之间设置匹配的字体大小。divlichdivliprepre

评论

1赞 doggo 3/6/2020
经过几个小时的头撞在墙上,感觉自己是世界上最愚蠢的人,似乎大卫·金田(David Kaneda)对这个问题的回答是:stackoverflow.com/questions/3226001/......适用于我的情况(结合他的建议立即解决了问题)。
0赞 Sydney Y 3/6/2020
啊,太棒了!