【问题标题】:Images Showing Up Differently in Chrome/Firefox vs Safari图像在 Chrome/Firefox 和 Safari 中的显示方式不同
【发布时间】:2018-11-13 07:05:09
【问题描述】:

我一直在尝试使用 CSS Grid 并整理出一个在 Chrome 和 Firefox 中还可以的布局,但是当我在 Safari 中尝试时,图像会被挤压,尤其是当屏幕尺寸缩小时。我在这里做了一个代码笔:

https://codepen.io/jwolfe890/full/NzxjMx/

(请注意,在 codepen 的编辑器视图中,Safari 图像会正确呈现,但在 Safari 浏览器或全屏视图中无法正确呈现)

正如您在 Safari 中看到的那样,图像看起来像:

而在 Chrome/Firefox 其他浏览器中它看起来像:

我在 css 中使用了 min-height 和 max-height,这可能会在浏览器之间呈现不同的图像。如何跨浏览器实现一致的图像渲染?

CSS 文件:

body {
    box-sizing: border-box;
}

.container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr;
    grid-gap: 5px;
    max-width: 100%;
}

img {
    max-height: 100%;
    max-width: 100%;
}

h1 {
    text-align: center;
    font-size: 60px;
}

img:nth-child(1) {
    grid-column: span 2;
    grid-row: span 2;
    height: 100%;
}

img:nth-child(4) {
    grid-column: span 2;
}

【问题讨论】:

    标签: html css cross-browser css-grid


    【解决方案1】:

    删除第一张图片的高度 100% 改进了发布,但仍然存在轻微差异,因为图片现在稍微没有填满网格轨迹:

    img:nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
        height: 100%; <--- REMOVED THIS
    }
    

    但是,为什么高度 100% 会在不同浏览器之间呈现不同的图像,这让我仍然感到困惑。

    【讨论】:

    • 因为在这种情况下 100% 是什么?
    • 在 safari 中,我猜它会将其读取为 100% 的图像,而在 chrome/firefox 中读取的是 100% 的网格空间
    • 这令人沮丧,因为如果没有 100%,它不会填满整个网格空间。我想我的问题应该是如何在所有三个主要浏览器中响应式地用图像填充 css 网格空间。
    • 好吧,我不能给你确切的解释,因为我遗漏了一些东西……但请等待 CSS-grid Guru 的到来;)
    • 我认为这可能是一个需要 flexbox 的领域。 CSS 网格现在可能是跨浏览器兼容的,但它仍然受到诸如这些浏览器差异的阻碍
    猜你喜欢
    • 2015-12-17
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2012-07-08
    • 2020-02-06
    • 2014-10-12
    • 1970-01-01
    • 2016-10-29
    相关资源
    最近更新 更多