我有一个CSS问题。我有一个1024x500像素的图像。现在的问题是,只要浏览器窗口/视口的宽度变化低于图像宽度(1024px),图像就会开始被切断。现在,正如您所看到的,当视口大小低于1024px时,我将容器宽度设置为100%,并且它会按比例调整大小,但随着浏览器调整大小(更小),我的图像侧面会越来越多。
有没有人可以帮助我让我的图像动态调整像素为像素(不丢失任何原始图片 - 没有切断)?
查看我的webpage并调整浏览器窗口大小以查看我的意思。注意图像的两侧被切掉......
HTML:请注意我的原始图片是1024x500
<div class="ei-slider">
<ul class="ei-slider-large">
<li>
<img src="http://lamininbeauty.co.za/images/large/makeup.jpg" alt="Vertical Sunbed TanCan"/>
</li>
</ul>
</div>
CSS:
大屏幕的普通CSS
.ei-slider{
position: relative;
width: 1024px;
height: 500px;
margin: 0 auto;
}
.ei-slider-large{
height: 100%;
width: 100%;
position:relative;
overflow: hidden;
}
.ei-slider-large li{
position: absolute;
top: 0px;
left: 0px;
overflow: hidden;
height: 100%;
width: 100%;
}
.ei-slider-large li img{
width: 100%;
}
当浏览器窗口低于图像宽度时:1024px:
@media screen and (max-width : 1023px){
.ei-slider{
width: 100%;
}
}
对于切断我的图像的较小屏幕:请注意我的原始图像为1024x500
@media screen and (max-width: 930px) and (min-width : 831px){
.ei-slider{
width: 100%;
}
.ei-slider-thumbs li a{
font-size: 11px;
}
.ei-slider-large li{
position: absolute;
top: 0px;
left: 0px;
overflow: visible;
height: 100%;
width: 100%;
}
.ei-slider-large li img{ /*HERE IS MY PROBLEM*/
width: 930px;
height: 454px;
}
}
谢谢!
答案 0 :(得分:6)
你使用:
max-width: 100%;
height: auto;
width: auto; /* for ie9 */
这将使您为css指定的任何内容动态调整大小以适应基于max-width:100%语句的容器。如果您不希望它,请相应地更改max width语句。
答案 1 :(得分:0)
我有同样的问题,因为我使用相同的jquery插件(即滑块)。我发现图像是从Javascript代码传递的附加(内联)样式,实际上它只是向左移动而不是实际上被切断。代码将动态值传递给标记,这些值是在特定视口宽度中重新加载时从图像本身获取的。作者在.js文件中使用它。
var $img = $(this);
imgDim = _self._getImageDim( $img.attr('src')); //gets the dimensions from the image
然后,他给图像一个左边的边缘
$img.css({marginLeft: imgDim.left}); //assigns a new margin-left, overrides any value set for this property in the .css file because it's inline
当视口宽度变小时,这始终是负值。解决方法是设置
$img.css({marginLeft: 0});
之后它对我来说很好,没有出现变化的问题。祝你好运。
答案 2 :(得分:0)
我有一个简单的解决方案。只需根据视口百分比给出宽度参数。
语法:
width: <Percentage>vw;
示例:
<img src="Resources/Head.png" alt="" style="width: 100vw; height: 85px">
此处,图像的高度是固定的,但宽度将调整为视口的100%,无论其大小如何。
希望这会有所帮助:)