体验css+div 之 三种使网站背景图片自动适应浏览器大小的方法

Post by 张美工, 2008-11-20, Views:
由于显示器分辨率的不同,相同的图片在不同分辨率下有可能会出现只显示一部分或留部分空白的情况,今天我们就来看看如何使网站背景图片自动适应浏览器大小

这是最终的效果:What’s The Weather?

不管你怎么变化浏览器窗口大小,背景图始终会自动调节大小。

1 . 第一次方法:

我第一个想法是需要使用一个 css 背景图,如果这张图够大,就能填充整个屏幕。当浏览器窗口大小没有图片大时,它将自动隐藏多余的部分。

  1. <head>
  2. ....
  3. <script type="text/javascript" src="js/jquery.js"></script>
  4. <script type="text/javascript">
  5. $(document).ready(function() {
  6. $("img.source-image").hide();
  7. var $source = $("img.source-image").attr("src");
  8. $('#page-body').css({
  9. 'backgroundImage': 'url(' + $source +')',
  10. 'backgroundRepeat': 'no-repeat',
  11. 'backgroundPosition': 'top center'
  12. });
  13. });
  14. </script>
  15. </head>
  16. <body id="page-body">
  17. <img class="source-image" src="images/image.jpg" alt="" />
  18. </body>

上面的这些代码能够自动隐藏超出浏览器窗口部分的图片(image.jpg)多余部分,不会使浏览器产生滚动条。

这是第一次试验的效果

2 . 第二次方法:

第一次试验的效果并没有达到要求,并不是真的使得背景图片适应窗口大小,应该使用设置“宽度”和“高度”属性来控制图片的大小,如果我们能够得到浏览器窗口显示像素,就可以利用这个数字来控制图片大小,同时保持比例。

使用 jquery 和 dimensions plugin 可以获得这些参数。

  1. <script type="text/javascript" src="/js/jquery.js"></script>
  2. <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
  3. <script type="text/javascript">
  4. $(document).ready(function() {
  5. var $winwidth = $(window).width();
  6. $("img.source-image").attr({
  7. width: $winwidth
  8. });
  9. $(window).bind("resize", function(){
  10. var $winwidth = $(window).width();
  11. $("img.source-image").attr({
  12. width: $winwidth
  13. });
  14. });
  15. });
  16. </script>

为了让这张图片更像一个背景图像,我们设置:

  1. img.source-image {
  2. position: absolute;
  3. top: 0;
  4. left: 0;
  5. }

因为因为背景图片加上了定位代码,那要加在背景图片上任何东西都需要定位,如果您的背景图像是竖条状的(特别的高),而你的浏览窗口特别的宽,很容易造成背景图片高度超过您的浏览器窗口的高度,为了防止这种情况,需要设定对超出的部分进行隐藏:

  1. body {
  2.   overflow: hidden;
  3. }

3 . 第三次方法(最好的):

Stu Nicholls version给出了最好的方法,这处理方式不需要任何的 JavaScript 就能完美的达到目的。

  1. #img.source-image {
  2. width: 100%;
  3. position: absolute;
  4. top: 0;
  5. left: 0;
  6. }

在 css 里直接设定背景图片宽度的百分比,这是这个方法的效果。这个方法是最好的,而且不需要任何的 JavaScript 。
 

相关文章:                                                 
 # Dreamweaver的超级技巧汇总(6)
# Dreamweaver的超级技巧汇总(5)
# Dreamweaver的超级技巧汇总(4)
# Dreamweaver的超级技巧汇总()
# Dreamweaver的超级技巧汇总(2)
# Dreamweaver的超级技巧汇总(1)
# 在线QQ MSN TEL交谈工具代码
# 方便使用的一些小简短input\form代码
# VSS使用手册
# JS表单判断函数代码大全 ()
# JS表单判断函数代码大全 ()
# JS表单判断函数代码大全 

#  I E和火狐的css兼容性问题归总

体验css+div 之 CSS hack:区分IE6,IE7,firefox

体验css+div 兼容标准XHTML的浮动层特效实现

因为编码差异 导致IE6不能正常解析CSS文件

#  商业网站响应用户需求重视与Firefox兼容


#  
frameset 的属性
frameset元素属性详解、浮动框架的制作、超链接与框架的制作

 

体验css+div 之 SEO

#  40个网页常用小代码

div+css样式几个小精华

网站用户体验--CSS常用小技巧

#  体验css+div css技巧-经典中的经典

#  体验css+div CSS样式表设计的十条技巧

体验css+div 网页切图过程中div+css命名规则

网站用户体验--根据项目需求定义 常用CSS2基本定义例子
#  体验css+div 三种使网站背景图片自动适应浏览器大小的方法

 

#  搜索

#  创建锚链接

#  如何让单行文本框input与多行文本框textarea背景透明

EditPlus转化文件格式到UTF-8
#  让长字符URL/Email自动换行

HTML特殊字符显示

 

#  体验css+div定位与table定位代码的差异
体验css+div 之 TBody是什么意思?有什么作用?<TBODY>和<BODY>有和区别?

 

体验css+div 简单的滑动门效果代码

#  体验css+div 超实用的滑动门效果代码(css和代码都包含在内)
 

彻底弄懂CSS盒子模式(DIV布局快速入门)

如何把握网页布局
实例详解CSS网页布局原理

体验CSS+DIV 基本布局

#  体验css+div 解决流体布局的问题
#  体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<弹性布局>
#  
体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<流体布局>
体验css+div 固定宽度布局、流体布局、弹性布局的优势对比<固定宽度布局>

 

#  体验css+div 为什么css+div 会盛行
#  体验css+div中id和class各自的用法及区别

体验css+div 规划、组织和维护样式表

体验css+div 基本列表样式

体验css+div 为样式找到目标

 

体验css+div 圆角框

体验css+div 层叠和特殊性
#  css之自动换行

#  CSS控制连续英文字母或数字强制换行

#  css使网页图片半透明

体验css+div 背景透明内容不透明的写法
体验css+div 给整个页面添加渐变背景
用css样式控制做成的按钮,取代图片按钮

体验css+div 鼠标经过按钮发生变化效果
体验css+div 文本框自适应窗口宽度
体验css+div 老问题重新讲“怎样使页面整体居中”
体验css+div之图像替换 1.徽标图像替换
体验css+div 使用自动空白边让设计居中
 

 

                                                                                                                   +     

 

原文:css-tricks.com
译者:peterzsk
译文原地址:http://zsk.akaka.com.cn/2008/05/how-to-resizeable-background-image/
采用CC创作共用协议,转载可保留以上信息并<署名、非商业和保持一致>。

 

 

Tags: divcss css div 自动适应窗口 
分类:css+div | 评论:0 | 引用:0
上一篇:体验css+div 之 CSS样式表设计的十条技巧
下一篇:体验css+div 之 文本框自适应窗口宽度

或许你还对下面的文章感兴趣

Comments

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

<#template:pagebar#>

最新文章

最新评论

Guest