html - 使用 css 缩小背景图像以填充屏幕

标签 html css background-image fullscreen scale

我正在尝试在以下 URL 中使用被描述为技术 #2 的技术: http://css-tricks.com/perfect-full-page-background-image/

设置一个网页背景图片,在调整窗口大小时缩小尺寸。

我的HTML如下

<div class="bg">
  <img src="images/bg.jpg" alt="">
</div>

我的样式定义如下。

.bg {
  z-index: -1;
  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%;
}

当图像小于屏幕并且需要放大时,此方法非常有效。 但在缩小大图像的情况下,它不起作用,我只会在屏幕中央看到一个大图像。

我需要我的图像能够缩小、覆盖整个背景、保持纵横比。 我不能使用 body bg 或其他任何东西,因为我需要能够更改幻灯片中的图像。

编辑: 我必须将 HTML 结构设为 <div><img/></div>

编辑 2: 我无法更改结构(或者至少我是这么认为的)的原因是我在以下位置使用脚本: http://malsup.github.com/jquery.cycle.all.js 循环多个图像,并且该脚本不允许我更改 HTML 的任何结构方式。如果有人知道如何将它与背景图像一起使用或建议一个完全不同的脚本,我们将不胜感激。

最佳答案

如果你必须使用<img>标签来生成图像,只需删除 height来自您的 CSS 的声明;如果您只有 width,图像应保持纵横比 并适当调整大小。指定的。 (或者,您也可以指定 height 并删除 width,但指定 width 是行业规范。


对于 CSS 背景方法,试试这个,而不是:

.bg {
background-image: url('images/bg.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center center;
background-clip: border-box;
background-origin: padding-box;
-moz-background-size: cover;
background-size: cover;
}

它需要 CSS3,但可以在较旧的浏览器中使用(-moz-background-size 用于 FF3.6;FF4+ 使用默认的 background-size)。此方法使用 CSS background-image优先于您的方法的属性。

原因是背景图片不是您网站页面有意义的内容的一部分,而是样式的一部分(它是背景图片,所以它属于背景)。因此,应该使用层叠样式 表格 来处理它。

关于html - 使用 css 缩小背景图像以填充屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995855/

相关文章:

css - 使用CSS将背景图像添加到div

Facebook API 覆盖背景位置属性中的图像偏移

javascript - 键盘小键盘分隔键 COMMA 与 DOT

PHP Web 抓取 Javascript 生成的内容

javascript - 不删除 contenteditable 设置为 true 的 div 中的子元素

html - 如何复制代码块以仅显示在图像的保留位置下方

php - 隐藏 '&lt;input type="hidden"name ="userIP"value ="<?php echo $_SERVER[' REMOTE_ADDR']; ? >">' from inspect element

html - 最大高度嵌套不起作用

javascript - jQuery 点击 div 外面应该隐藏 div,点击的子 div 不应该隐藏

css - 背景图像设置为不重复但在服务器上重复