CSS如何控制一张宽图,在浏览器窗口变小的时候,隐藏左右两头,然后居中显示中间部位,保持高度不变?

CSS如何控制一张宽图,在浏览器窗口变小的时候,隐藏左右两头,然后居中显示中间部位,保持高度不变?http://www.battlenet.com.cn/wow/zh/就... CSS如何控制一张宽图,在浏览器窗口变小的时候,隐藏左右两头,然后居中显示中间部位,保持高度不变?
http://www.battlenet.com.cn/wow/zh/就想魔兽世界的这个背景一样。
展开
 我来答
deerta
2013-09-09 · TA获得超过1025个赞
知道小有建树答主
回答量:226
采纳率:50%
帮助的人:195万
展开全部

如果不考虑IE9以下的浏览器,可以直接用CSS3 做。

html { 
  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;}


如果要支持IE8+,且不用CSS3的话,可以这么做,但是不支持opera浏览器

<div id="bg">
  <img src="images/bg.jpg" alt=""></div>
#bg {
  position: fixed; 
  top: -50%; 
  left: -50%; 
  width: 200%; 
  height: 200%;}#bg img {
  position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  min-width: 50%;
  min-height: 50%;}

如果要IE 7以上的话,只能用Jquery了。
(function() {var win = $(window);win.resize(function() {
    
    var win_w = win.width(),
        win_h = win.height(),
        $bg    = $("#bg");

    // Load narrowest background image based on 
    // viewport width, but never load anything narrower 
    // that what's already loaded if anything.    var available = [
      1024, 1280, 1366,
      1400, 1680, 1920,
      2560, 3840, 4860
    ];

    var current = $bg.attr('src').match(/([0-9]+)/) ? RegExp.$1 : null;
    
    if (!current || ((current < win_w) && (current < available[available.length - 1]))) {
      
      var chosen = available[available.length - 1];
      
      for (var i=0; i<available.length; i++) {
        if (available[i] >= win_w) {
          chosen = available[i];
          break;
        }
      }
      
      // Set the new image      $bg.attr('src', '/img/bg/' + chosen + '.jpg');
      
      // for testing...      // console.log('Chosen background: ' + chosen);      
    }

    // Determine whether width or height should be 100%    if ((win_w / win_h) < ($bg.width() / $bg.height())) {
      $bg.css({height: '100%', width: 'auto'});
    } else {
      $bg.css({width: '100%', height: 'auto'});
    }
    
  }).resize();
  })(jQuery);

我们一般直接用第一个方法,不考虑IE9以下的全尺寸,在IE7 Ie8 写一些fall back 的style。 说真的,IE 真是讨厌
小强聊江湖
2013-09-09 · TA获得超过388个赞
知道答主
回答量:2646
采纳率:6%
帮助的人:232万
展开全部
<div style="background: url(images/bg.jpg) no-repeat center top; width:100%; height:300px; margin:0px auto;"></div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式