当项目数等于列数时,chrome 和 safari 渲染 css 列的方式不同

2024-04-21

我有一个目录列表,它使用 CSS 列,但在 Chrome 和 Safari 中的行为有所不同。目录的每个部分都有一个包装器,将列表排列成两列。

我已经有了 CSS,所以 Chrome 会按照我想要的方式呈现它:

在 Safari 中,第二列中的第一项有时在其上方有明显的边距。

我可以通过添加在 Safari 中修复此问题display: inline-block;到列表元素。这破坏了 Chrome 中的布局,因为只有两个项目的部分在第一列中列出了这两个项目。

片段:

ul {
	moz-column-count:2;
	-webkit-column-count:2;
	column-count:2;
  column-gap: 2em;
}

li {
   -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
  width:100%;
	list-style-type:none;
	padding:10px;
  box-sizing:border-box;
  background-color: #90cdc0;
  margin-bottom: 2em;
}
<h3>
A
</h3>
<ul>
  <li>Anna<p>Sometimes there is additional content</p></li>
    <li>Anya</li>
</ul>
<h3>
B
</h3>
<ul>
    <li>Bartolo <p>Sometimes there is additional content. The boxes are of variable size.</p></li>
    <li>Beatriz</li>
    <li>Benedicto</li>
  <li>Boggins</li>
</ul>

是否可以设置这个两列目录的样式,使其在所有浏览器中都能正确显示?


我解决了这个问题,至少对于 Safari 和 Chrome 来说是这样。

由于这仅适用于项目数等于列数的情况,并且由于该数字已知,因此我可以应用display: inline-block; to li然后当第二个列表也是最后一个列表时覆盖它。

就我而言,解决方案是添加到 CSS:

li {
  display: inline-block; 
}

li:last-child:nth-child(2) {
  display: block;
}

完整的CSS:

ul {
  moz-column-count:2;
  -webkit-column-count:2;
  column-count:2;
  column-gap: 2em;
}

li {
  display: inline-block;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
  width:100%;
  list-style-type:none;
  padding: 1em;
  box-sizing:border-box;
  background-color: #90cdc0;
  margin-bottom: 2em;
}

li:last-child:nth-child(2) {
  display: block;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当项目数等于列数时,chrome 和 safari 渲染 css 列的方式不同 的相关文章

  • 如何仅在视口中显示数据

    我打算使用一个名为的 jQuery 插件图表 js http www chartjs org 用于图形和图表 然而 在较大的页面上 这些图表的动画甚至在用户看到它们之前就已经完成了 我的问题是 只有当特定 div 部分的内容在视口内可见时
  • LessCSS 中的 @media 和 @font-face 支持

    你好 有谁知道如何使用 LessCSS 进行媒体查询吗 media screen and max width 600px container width 480px 给我以下错误 Syntax Error on line 23 expect
  • CSS:滚动条从窗口下方几个像素开始

    我想修复我的标题 标题始终位于页面顶部 并且我的整个内容 包括页脚在内的所有内容 都可以滚动 标题高度为 60 px 如下所示 将其固定在顶部不是问题 我想解决的问题 仅使用CSS 是让滚动条从距顶部 60 像素以下的位置开始 正如您所看到
  • 关于在 Bootstrap 中对齐网格项的 CSS 指南

    我正在尝试显示项目网格 并且图片的高度和宽度都不同 并且细节可能长或短 导致页面上的换行符数量不同 This is what I want it to look like And here is what it actually looks
  • Firefox 中缺少表格边框

    我有一个包含数据的表格 当我在 Firefox 中查看它时 某些边框没有显示 请参阅随附的屏幕截图 在任何其他浏览器中都不会发生这种情况 在 Firefox IE Safari 和 Chrome 中测试 知道为什么以及如何解决它吗 我使用样
  • 垂直滚动不适用于 Mobile Safari

    由于某些原因 当我在移动 Safari iOS 9 1 iPhone 5 Safari 8 1 上访问我的网站时 垂直滚动无法正常工作 https sleepy anchorage 3222 herokuapp com https slee
  • 如何使使用 CSS :after 元素创建的文本可选择?

    我正在使用 css 创建文本 after 但我无法选择生成的文本 例如用于复制和粘贴 是否可以使其可选择 div foo div div after content 123 sample http jsfiddle net jfbc4 2
  • 禁用 Chrome 的文本输入撤消/重做 (CTRL+Z / CTRL+Y)

    i m currently developing a web application and i encounter a problem As you might know or not chrome has a feature that
  • 垂直对齐 li 内的图像和文本

    我试图将列表元素中的图像和一些文本垂直对齐到中间 但没有运气 eg ul li img src somepath sometext li li img src somepath2 sometext2 li ul 我该怎么做 谢谢 假设您的列
  • 当我将 HTML 标签设置为 100% 高度时,我的内容消失了

    我有一个垂直布局 我想保持页面居中 一列保持固定在页面上 而另一列应根据内容滚动 并且有一些绝对的装饰性浮动 div 我希望滚动列垂直显示 100 即使内容不需要高度 但我似乎无法让它工作 我已将 html 标签和 body 标签以及所有必
  • Chrome 的用户代理切换器

    我正在寻找适用于 Chrome 的用户代理切换器 正在搜索Chrome 网上应用店 https chrome google com webstore没有拿出一个简单的切换器 我知道我可以通过命令行和参数运行浏览器 Google Chrome
  • 使用 JavaScript 在空闲时隐藏鼠标光标

    是否可以使用JavaScript来设置cursor属性的属性none如果鼠标在一定时间内处于非活动状态 例如五秒 请将其设置回auto当它再次活跃时 EDIT 我意识到none不是有效值cursor财产 尽管如此 许多网络浏览器似乎都支持它
  • 关闭网站的 IE 8 兼容模式

    我的公司使用IE8作为默认浏览器 并且默认为所有内联网站点设置兼容模式 我正在构建一个在关闭兼容模式时可以工作的 Intranet 站点 我正在使用 Reset css 和几个开源 JavaScript 程序 例如数据表 我想做的是强制关闭
  • 如何在 Firefox 和 Chrome 中选择文档模式而不设置 DOCTYPE?

    我正在努力将使用旧网络标准创建的网页转换为支持现代网络浏览器 目前 该网页在 Internet Explorer 9 Firefox 和 Chrome 中以 Quirks 模式呈现 在 IE9 中 我可以选择 文档模式 在其中呈现我正在查看
  • 如何在 Google Chrome 上启用 WebVR?

    我正在尝试创建一个 WebVR 场景 对于此任务 我想在 Google Chrome 上启用 WebVR 我的操作系统是 Windows 8 我使用打开标志chrome flags WebVR 不存在 我怎样才能启用它 Official c
  • CSS 六角形图案

    我找到了一个关于如何使用 CSS 创建六边形图案的很棒的 stackoverflow 答案 使用 CSS3 生成重复的六边形图案 https stackoverflow com questions 10062887 generate rep
  • 使用媒体查询将 CSS 应用于除 IE 之外的所有浏览器

    我找到了一种将媒体查询应用于 IE 的方法 media ms high contrast none ms high contrast active 有没有办法将 CSS 应用于除 IE 之外的所有浏览器 就像是 media not ms h
  • CSS相对div的宽度自动按绝对div扩展

    是否可以让父级 位置 相对 自动通过其绝对子级扩展其宽度 这是我的 jsfiddle 链接 http jsfiddle net YD2Xu http jsfiddle net YD2Xu 理想的是 container 和 full widt
  • 将两个 .less 文件合并为一个

    假设我少了两个文件 first less a b font size 13px color lime and second less import first less a font family sans serif 我想要一种将它们组合
  • 标记内嵌套块级元素...对还是错?

    嵌套在语法和语义上是否正确 div 或任何其他块级元素内 p 标签 我说的是 HTML4 过渡 DTD 如果没有那么可以使用 span style display block 反而 从语法上来说 一个div里面一个p在所有 HTML 标准中

随机推荐