【发布时间】:2021-11-26 15:31:11
【问题描述】:
布局描述:图片和侧面部分放在一个叫做卡片的容器中
侧面部分只是一个固定宽度为 300 像素的容器,其中包含一些信息文本和按钮。
图像应尽可能大,但不超过宽度大小的 100%(限制为视口宽度,高度无限制)。
如果(image_width + section_width <= viewport_width,图片以全尺寸显示,侧面部分显示在图片的右侧。
如果(image_width + section_width > viewport_width 图片显示在侧面部分上方。
在这两种情况下,卡片都是水平居中的。
我几乎做到了here,但还有2个问题(请先使用Chrome或Edge进行测试):
I. 当viewport_width < 800px (the width of the image) 图像占据整个可用屏幕宽度时,其下方的侧面部分很好。
当viewport_width > 1100px + some small defaultmargin (image+width + sidebar_width) 以全尺寸显示时,侧边栏位于右侧。两者都很好地水平居中。
当800px < viewport_width < 1100px 侧边栏正确停留在图像下方但图像右侧有一些空间(下图屏幕截图中的黑色区域)
我想避免这种情况并在侧栏上方显示图像,就像在viewport_width > 1100px 的情况下一样,在这种情况下卡片容器的宽度应该具有图像的宽度并且卡片应该居中水平方向
有没有办法做到这一点?如果您有使用display: grid 或其他方法的解决方案,我会很高兴学习它。但我认为使用flex 也应该是可能的。
II.viewport_width > 1100px 案例中的居中在 Chrome 和 Edge(均为 94.0.* 版本)中有效,但在 Mozilla FF 中无效。为什么会这样?如何纠正?
在 Mozilla FF 中,屏幕截图中的黑色区域出现在图像和侧边栏之间,并且整个卡片容器从一侧拉伸到另一侧(不在中间居中)。换句话说, width: fit-content; 卡在 FF 中不起作用。为什么以及如何纠正它?
提前非常感谢!
【问题讨论】:
-
我已经这样做了:只需单击文本中的链接
I almost achieved this here,
标签: html css flexbox responsive