那么简单 .
将我的布局移动到流动的区域,处理可伸缩的图像 . 使用img标签并将max-width设置为100%可以很好地工作,但我宁愿使用div将图像设置为其背景 .
我遇到的问题是图像不能缩放到背景中div的大小 . 有什么方法可以将标记添加到后台代码中,将其设置为容器的100%宽度?
#one { background: url('../img/blahblah.jpg') no-repeat; max-width: 100%; }
您可以使用 background-size 执行此操作:
background-size
html { background: url(images/bg.jpg) no-repeat center center fixed; background-size: cover; }
除了 cover 之外还有很多其他值可以设置 background-size ,看哪哪个适合你:https://developer.mozilla.org/en/CSS/background-size
cover
规格:https://www.w3.org/TR/css-backgrounds-3/#the-background-size
它适用于所有现代浏览器:http://caniuse.com/#feat=background-img-opts
正如thirtydot所说,你可以使用CSS3 background-size 语法:
For example:
-o-background-size:35% auto; -webkit-background-size:35% auto; -moz-background-size:35% auto; background-size:35% auto;
但是,正如thirtydot所述,这在IE6,7和8中不起作用 .
有关 background-size 的更多信息,请参阅以下链接:http://www.w3.org/TR/css3-background/#the-background-size
看起来你正在尝试缩放背景图像?参考文献中有一篇很棒的文章,您可以使用css3来实现这一目标 .
如果我错过了这个问题,那么我会谦卑地接受投票 . (虽然很高兴知道)
请考虑以下代码:
#some_div_or_body { background: url(images/bg.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }
这适用于所有主流浏览器,当然在IE上并不容易 . 但有一些解决方法,例如使用Microsoft的过滤器:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale'); -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myBackground.jpg', sizingMethod='scale')";
通过使用jQuery,可以使用一些替代品,而且可以放心使用:
HTML
<img src="images/bg.jpg" id="bg" alt="">
CSS
#bg { position: fixed; top: 0; left: 0; } .bgwidth { width: 100%; } .bgheight { height: 100%; }
jQuery的:
$(window).load(function() { var theWindow = $(window), $bg = $("#bg"), aspectRatio = $bg.width() / $bg.height(); function resizeBg() { if ( (theWindow.width() / theWindow.height()) < aspectRatio ) { $bg .removeClass() .addClass('bgheight'); } else { $bg .removeClass() .addClass('bgwidth'); } } theWindow.resize(resizeBg).trigger("resize"); });
我希望这有帮助!
Src:Perfect Full Page Background Image
不幸的是,CSS中没有 min (或 max ) - 背景大小,你只能使用 background-size . 但是,如果您正在寻找响应式背景图像,则可以使用 Vmin 和 Vmax 单位作为 background-size 属性来实现类似的功能 .
min
max
Vmin
Vmax
#one { background:url('../img/blahblah.jpg') no-repeat; background-size:10vmin 100%; }
将高度设置为垂直或水平视图中较小视口的10%,并将宽度设置为100% .
在这里阅读更多关于css单位的信息:https://www.w3schools.com/cssref/css_units.asp
4 回答
您可以使用
background-size
执行此操作:除了
cover
之外还有很多其他值可以设置background-size
,看哪哪个适合你:https://developer.mozilla.org/en/CSS/background-size规格:https://www.w3.org/TR/css-backgrounds-3/#the-background-size
它适用于所有现代浏览器:http://caniuse.com/#feat=background-img-opts
正如thirtydot所说,你可以使用CSS3
background-size
语法:For example:
但是,正如thirtydot所述,这在IE6,7和8中不起作用 .
有关
background-size
的更多信息,请参阅以下链接:http://www.w3.org/TR/css3-background/#the-background-size看起来你正在尝试缩放背景图像?参考文献中有一篇很棒的文章,您可以使用css3来实现这一目标 .
如果我错过了这个问题,那么我会谦卑地接受投票 . (虽然很高兴知道)
请考虑以下代码:
这适用于所有主流浏览器,当然在IE上并不容易 . 但有一些解决方法,例如使用Microsoft的过滤器:
通过使用jQuery,可以使用一些替代品,而且可以放心使用:
HTML
CSS
jQuery的:
我希望这有帮助!
Src:Perfect Full Page Background Image
不幸的是,CSS中没有
min
(或max
) - 背景大小,你只能使用background-size
. 但是,如果您正在寻找响应式背景图像,则可以使用Vmin
和Vmax
单位作为background-size
属性来实现类似的功能 .示例:
将高度设置为垂直或水平视图中较小视口的10%,并将宽度设置为100% .
在这里阅读更多关于css单位的信息:https://www.w3schools.com/cssref/css_units.asp