我有一张图片,我希望根据以下规则进行扩展,重要性日益增加:
也就是说:图像只占可用空间的一定百分比,但在较小的屏幕上不应太小。但是,对于非常小的屏幕(移动设备),图像可能永远不会超过可用空间的整个宽度,即使这意味着它会缩小到最小宽度以下。
我以为我可以使用以下css执行此操作:
img {
width: 38%;
min-width: 300px;
max-width: 100%;
}
认为max-width
优先于min-width
,因为它会在稍后出现。但它不起作用......图像显示为所需的百分比,并且不会缩小到300px以下。但是,在小屏幕(<300px)上,图像会延伸出屏幕(出现滚动条)。
阅读文档,min-width
overrides max-width
,所以我应该看到这一点......
一个明显的解决方案是添加媒体查询:
@media screen and (max-width: 300px) {
img {
min-width: 0;
width: 100%;
}
}
但是,我希望能够在html(标记样式)中覆盖宽度细节(即38%或300px值)。
有关SO尺寸的SO触摸的几个问题,但我找不到一个关于我的确切案例的问题。这里的任何人有解决方案/建议吗?
一些要求:
答案 0 :(得分:0)
如果min-width
覆盖max-width
,则解决方案是不将min-width
设置为可能大于窗口宽度的值。
换句话说,交换width
和min-width
的值。那么您将不需要媒体查询或JavaScript。
img {
width:300px;
min-width:38%;
max-width:100%;
}
<p><img src="https://placehold.it/999x333"/></p>
<p><img src="https://placehold.it/999x333" style="width:400px"/></p>
在这个例子中,两个图像从不小于38%且从不大于窗口的100%,第一个图像更喜欢300px,而第二个图像更喜欢400px。
(请注意,图像本身表示它们是“999×333”;您应该忽略它。)