【发布时间】:2020-01-08 10:35:10
【问题描述】:
我正在尝试设计一个可重用的组件来显示 Web 的产品信息 - 我已经在固定宽度的 div 中进行了模拟,但现在需要使其具有响应性 - 我一直在使用 flex 布局。
创建了一个小提琴来演示问题
https://jsfiddle.net/0sz523Lj/5/
该组件包含整个容器的图像,然后是位于部分照片上的左对齐不透明面板,其中包含产品详细信息。主照片高度应确定不透明度面板的高度,因为主照片将拉伸以填充 100% 宽度,显然高度会调整以保持照片成比例。调整屏幕大小后,不透明度面板现在应该占据照片的高度,并且内容会缩放以适应。
此面板由顶部的产品名称、简介、缩略图、价格和几个按钮组成,用于了解更多信息或购买。
除了简介之外的所有内容都是固定大小的 - 可能产品名称可以分成两行或一行,但简介是主要的。目前,如果您将屏幕变大,则主图像会变大,不透明度面板的宽度是固定的,因此只会更改其高度,但是最终会在简介下方出现大量空白,因为它不足以填充不透明度控制板。如果缩小屏幕,blurb 不适合容器的高度,并且 opacity 容器会溢出图片高度。
我想知道以响应方式执行此操作的最佳方法是什么 - 我只有两个想法。一种是根据屏幕大小更改字体大小,使简介适合左侧容器的相同固定部分。这感觉不对。唯一的其他选择是使不透明度面板本身根据屏幕尺寸改变宽度。
实际上,您希望代码适合标题、缩略图、成本和购买按钮,然后根据您调整屏幕大小的方式说 - 这决定了不透明度面板的高度,然后调整不透明度面板的宽度使内容完美契合。
我怎样才能使它完全响应?
HTML 代码供参考
<div class="image-container">
<img src="https://images-na.ssl-images-amazon.com/images/I/71U%2B5KVElqL._SL1500_.jpg" width="100%" vspace="0" />
<div class="image-buy-container-left">
<div class="image-container-title">
<p>Product name will go here</p>
</div>
<div class="image-container-blurb">
<p>Lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
<br /><br />
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</p>
</div>
<div class="image-container-thumbborder">
<div class="image-container-thumb">
<img src="https://us.coca-cola.com/content/dam/coke2016/page-properties-images/Coke_PageProperties.jpg" width=100% />
</div>
</div>
<div class="image-container-portion">
250ml bottle
</div>
<div class="image-container-portiondescription">
(Two serves)
</div>
<div class="image-container-price">
£13.00
</div>
<div class="image-buy-container-buttons">
<div class="image-container-button home-content__buttons ">
<a href="/ProductDetails.html" class="btn btn--stroke">
Discover
</a>
</div>
</div>
</div>
</div>
【问题讨论】:
标签: html css responsive-design flexbox responsive