CSS背景图拉伸效果兼容FF/Chrome/IE等主流浏览器(亲测)

(编辑:jimmy 日期: 2024/11/1 浏览:2)

信各位一定碰到过这种情况,按钮作为DIV的背景图来显示,实际上有多个这样的按钮,而且DIV中的文字,也就是按钮上要显示的文字内容和个数都不定,这种情况下就需要用背景图片拉伸效果来处理了,只需做一个按钮图片,作为DIV的背景图时随着DIV的宽度或高度自适应就OK了。网上也找过,但不兼容IE或有bug,下面贴出本人亲测代码,兼容主流浏览器,包括Firefox、Chrome以及 IE 等主流浏览器(IE使用滤镜效果实现):

复制代码代码如下:
.btn_bg {
width:150px;
height:50px;
background-image:url(./btn.png);
-moz-background-size: 100% 100%;
-o-background-size: 100% 100%;
-webkit-background-size: 100% 100%;
background-size: 100% 100%;
-moz-border-image: url(./btn.png) 0;
background-repeat:no-repeat\9;
background-image:none\9;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./btn.png', sizingMethod='scale')\9;
}

定义好上述CSS后,就可以在页面中使用了,例如:

复制代码代码如下:
<div class="btn_bg"></div>

btn_bg样式中:width和height定义了背景图默认的宽高,假如这个不定义并且引用该样式的DIV也不定义宽度,那么背景图的宽度会拉伸至浏览器的宽度,另外可以指定DIV的宽度来拉伸背景图,如:

复制代码代码如下:
<div class="btn_bg" style="width:300px"></div>。

细心的你会发现,最后三行代码每行样式后都加了 \9 这是指定在IE8及以下浏览器中的样式。