我试图在html中创建一个流体布局,包含图像。 现在,我支持2种尺寸的布局。默认布局用于显示1000px宽的网站。如果屏幕足够宽(宽度超过1200像素),我会用css媒体查询来增强许多方面。重置图像的宽度和高度设置通过css
我有一个DIV容器,默认布局是600px宽,增强布局是700px。 里面有一个随机图像,我知道一些元数据(宽度和高度)。如果容器太大,我可能需要缩小图像尺寸。
所以我用这个代码有一个流体布局
<div class="container">
<!-- for a 650px/400px image, the downsized version is 600px/369px -->
<img src="/image?id=1234" width="650" height="400" style="width:600px;height:369px" />
</div>
和风格
@media screen and (min-width:1200px){
.container IMG {
width:auto !important;
height:auto !important;
}
}
- 这里是它如何工作的:
在的情况下,默认布局,内联样式适用。所以图像缩小到600px/369px以适应容器。 否则,媒体查询风格适用,并且图像处于其默认宽度/高度(我知道图像不会超过700像素,因此一切正常)。
- 我的问题来自图像的加载状态和浏览器保留的空间。 Chrome/Firefox的行为是一样的,但对我来说很奇怪。没有用IE测试(实际上并不是我的优先级)
对于默认布局,没有问题,内联样式仍然适用。浏览器显示与图像对应的空白区域。
对于增强版式,适用“自动”尺寸。但是,浏览器在没有完全加载的时候并不知道图像的自然尺寸,并且它看起来像“auto”相当于0px。如果为图像设置了宽度和高度属性,那将是完美的。但事实并非如此。结果是没有为图像保留空间,这不是我想要的行为。
- 我发现的第一个解决方案是为图像添加另一个内联css规则。如果我添加“最小宽度:600px;最小高度:369px”,图像的保留空间始终为600x369像素,而不是增强版式的0像素。这更好,但还不完美。
- 你怎么看?
- 是否有可能“重置”的CSS,而不是与覆盖它的“汽车!重要”的规则?
- 我应该使用其他方法吗?
- 我可能会使用一些javascript,但我认为依靠它是一个坏主意。实际上,我可能有很多类似于上述的容器。我更喜欢自动解决方案(css对此很好)。
你知道它是否可以添加一个内嵌媒体查询一个元素?我不认为这是可能的。但是,如果是这样,我可以这样写: – Mat 2012-03-30 14:56:41