css - 正文中断布局上的等宽字体
问题描述
我使用Toast是为了在项目中拥有一个简单的网格系统。网站上的大部分文本都是等宽字体,所以我给了body
这个字体,如下所示:
body {
font-family:"MonoSpaceFont", monospace;
}
然后,我例如给两个 div 的类.grid__col.grid__col--2-of-4
。这使两个 div 的宽度为 50%,它们应该彼此相邻出现。但是,在正文上设置等宽字体时,布局会中断。就好像这两个 div 是为了让它们彼此相邻而变宽一样。我可以手动设置width: 49.8%
或与它们类似,这很有效。所以由于某种原因,等宽字体的 div 变得更宽。
代码笔: https ://codepen.io/tobiasger/pen/mdbwLrb
我以前从未遇到过这个问题。感觉就像一个错误,但也许这是预期的行为?我想知道是否有任何方法可以解决这个问题?
解决方案
在底部,这是一个“内联块之间的空间”问题,它没有可靠的解决方案,因此许多新网格使用 flex 或其他什么。
然而,作为内联块网格的 Toast 网格使用负边距来部分缓解该问题。当您将正文字体切换为“等宽”时,块之间的空间宽度会发生不同的变化,因此现有的负边距值不再有效。
以下是您可以用来更改字体的内容:
body {
font-family: system-ui, sans-serif;
&.u-font--monospace .demo-item{
font-family: monospace, monospace;
font-size: 1em;
}
}
编辑:原始海报于 7 月 25 日在 Github 上。https://github.com/daneden/Toast/issues/56
推荐阅读
- windows - 将 MDI 应用程序显示为任务栏上的单个 ICON (VC++/MFC)
- c++ - 将 2D 数组 (T[N][M]) 作为大小为 N*M 的 1D 数组访问是否可以保证工作?
- ios - iOS Swift - 如何在应用程序中检测系统警报
- asterisk - 在星号中,我只想允许 10 位来电显示通过系统拨号
- azure - 如何使用除非检查是否安装了软件包?
- java - 使用 ping/pong 在连接丢失时断开 Websocket 会话
- asp.net - 在chrome中单击“确定”时阻止确认未点击项目命令
- powershell - 比较数组值是否包含字符串
- python-3.x - 从离散数据中找到相等的频率
- reactjs - Post 控制器仅识别来自 postman 的“from-data”或“x-www-form-urlencoded”发送的参数