CSS实现背景图片屏幕自适应
在做登陆页面等的首页的时候,经常会遇到需要放一张背景大图的情况,并且需要图片按比例缩放,来适应不同屏幕的大小。
html代码如下:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="../css/login.css">
<title>。。。title>
head>
<body>
<div class="bgimg">
body>
html>
css代码如下:
.bgimg{ position:fixed; top: 0; left: 0; width:100%; height:100%; min-width: 1000px; z-index:-10; zoom: 1; background-color: #fff; background: url(../img/bg_login.jpg) no-repeat; background-size: cover; -webkit-background-size: cover; -o-background-size: cover; background-position: center 0; }
分析一下css代码中的作用:
| 1 2 3 |
position:fixed;
top: 0;
left: 0;
|
这三句是让整个div固定在屏幕的最上方和最左方
| 1 2 3 |
width:100%;
height:100%;
min-width: 1000px;
|
上面前两句是让整个div跟屏幕大小一样,从而达到全屏效果。而min-width是为了实现让屏幕宽度在1000px以内时,div的大小保持不变,也就是图片不缩放。
| 1 |
z-index:-10;
|
| 1 |
zoom: 1;
|
zoom是CSS hack中专对IE6起作用的部分。IE6浏览器会执行zoom:1表示对象的缩放比例。兼容IE6、IE7、IE8浏览器,经常会遇到一些问题,可以使用zoom:1来解决,zoom有如下作用:1.触发IE浏览器的haslayout; 2.解决ie下的浮动,margin重叠等一些问题。
| 1 |
background-repeat: no-repeat;
|
图片平铺,不重复
| 1 2 3 |
background-size: cover;
-webkit-background-size: cover;
-o-background-size: cover;
|
上面三句是一个意思,就是让图片随屏幕大小同步缩放,但是有部分可能会被裁切,不过不至于会露白,下面两句是为chrome和opera浏览器作兼容。
| 1 |
background-position: center 0;
|
上面这句的意思就是图片的位置,居中,靠左对齐