传说中的“三层嵌套技术”。


一、背景图合并:

div+css+ps合图相结合的技术通过精确到1px的css设置,使用ps合成背景图片,特别是小图片合并,来完成页面效果。
  
       首先讲讲三层嵌套原理:
      
       ①要做成这个效果,用ps软件抠出这一栏目
       
       

②继续抠图,截出三张这一的小图标,高度务必一样的大小,才能平铺的时候一样高度,中间的图片一个像素就够了。
      
                                                    
       (bac_left.png)(bac_center.png)(bac_right.png)

③现在就是写代码的步骤:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>三层嵌套--HTMl5自由者</title>
<style type="text/css">
.bac-center {
width: 228px;
height: 44px;
background: url('bac_center.png') 0 0 repeat;
}
.bac-left {
height: 44px;
background: url('bac_left.png') 0 0 no-repeat;
}
.bac-right {
height: 44px;
background: url('bac_right.png') right 0 no-repeat;
}
</style>
</head>
<body>
<div class="bac-center">
<div class="bac-left">
<div class="bac-right"></div>
</div>
</div>
</div>
</body>
</html>

    ④总结:
       针对三层嵌套,优点就不说了,比起整张图片扣起来运用跟小图标运用所带来的加载速度还是很不错的,
但是在大型网站,这样一大张一大张拿出来用,真的很费劲,所以用到三层嵌套,其中带来一个缺点就是代码嵌套太多,标签数量增多也增加了结构深度,同样权衡下两者,要求我们具体问题具体分析才是关键所在。

二、背景图的合并

知道了三层嵌套的优缺点后,发现上面的图标也都是分开的,一个个加载带来服务器请求的压力。所以这时候用到背景图的合并技术。这时候PS的软件就很大上派上用场了;
      图标合并我们要求达到这样的一个效果:


       ①、弄成一张图,注意下:原本中间的图标我们是截取成宽度1px ,现在弄成一张图要求宽高都要三张图片都大小一样,所以这里我是弄成width:38px; height:44px;
      ②、打开PS,在截取第一张背景图标的时候  也就是这张 ,然后鼠标选择菜单栏图像--画布大小(或者快捷键Ctrl+Alt+C),弹出一个框的时候,设置画布大小,如下图:
      
      ③、因为我们是要弄成3张图片合并,所以高度是 44*3=132px  然后鼠标点击定位中的↑,这样图片继续切下来的时候会在第一张图片的下面,三张才能列下来弄成一张。

④、都弄好了之后就是关键的代码环节了:

<!DOCTYPE html>
<html>
<head>
<meta charset="uf-8">
<title>背景图合并--HTMl5自由者</title>
<style type="text/css">
.bac-center {
width: 228px;
height: 44px;
background: url('bac.png') 0 -44px repeat;
}
.bac-left {
height: 44px;
background: url('bac.png') left 0 no-repeat;
}
.bac-right {
height: 44px;
background: url('bac.png') right -88px no-repeat;
/*注意定位的方向*/
}
</style>
</head>
<body>
<div class="bac-center">
<div class="bac-left">
<div class="bac-right"></div>
</div>
</div>
</div>
</body>
</html>

⑤、总结:略

引:http://blog.csdn.net/html5_/article/details/20703089

DIV+CSS+PS实现背景图的三层嵌套以及背景图的合并的更多相关文章

  1. div+css样式

    Div+Css 随着页面上的需求变大,许多的东西不再使用单纯的图片.按钮.文字,而是通过Div+Css来实现按钮,公司的需求就是这样,一直在弄这个模块,顺便的总结一下 列如下面的页面都是通过div+c ...

  2. div+css总结—FF下div不设置高度背景颜色或外边框不能正常显示的解决方法(借鉴)

    原地址:http://blog.sina.com.cn/s/blog_60b35e830100qwr2.html 在使用div+css进行网页布局时,如果外部div有背景颜色或者边框,而不设置其高度, ...

  3. 用DIV+CSS切割多背景合并图片 CSS Sprites 技术

    很久之前就在互联网网站和一些js插件中见过这种技术的应用,当时觉得很麻烦,就没有用,也没有去深究. 近段时间一直在做前台的一些东西,涉及到很多div+css的问题.这个东东我又碰到了,所以我花了点时间 ...

  4. Photoshop图象切片保存为网页HTML(DIV+CSS布局)的方法

    首先,制作图象切片(以一张图片为例子) 一.选择“切片”工具,在图像上拖动以分割图像(例如:一张图像切割2次就形成3个切片)切片后如下图 二.设置切片选项(如大小.目标链接.图片说明等等):选择“切片 ...

  5. 【DIV+CSS】代码作业练习DIV+CSS太极阴阳图

    1. DIV + CSS 练习:太极阴阳图.  基本思路:由三个div块元素组成:  #taiji太极阴阳图底面  #yin太极阴阳图阴面小圆  #yang太极阴阳图阳面小圆  (太极阴阳图:上为阳下 ...

  6. css之background的cover和contain的缩放背景图

    对于这两个属性,官网是这样解释的: contain 此时会保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小. 等比例缩放图象到垂直或者水平其中一项填满区域. cover 此时会保持图像的纵横 ...

  7. 利用div+css实现九宫格,然后用js实现点击每个格子可以随机更改格子(div)的背景颜色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. CSS背景100%平铺 浏览器缩小背景显示不全解决办法

    本文我们分享前端CSS背景100%平铺,浏览器缩小背景显示不全bug解决的两个方法,如果你也遇到了,那么就可以参考下面文章. 把浏览器的窗口缩小时,拖动滚动条时你会发现原本设定的CSS背景100%平铺 ...

  9. DIV+CSS系统学习:转载

    第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...

随机推荐

  1. Vue:将px转化为rem,适配移动端vant-UI等框架(px2rem-loader)

    转载:https://www.cnblogs.com/WQLong/p/7798822.html 1.下载lib-flexible 使用的是vue-cli+webpack,通过npm来安装的 npm ...

  2. C#使用SmtpClient发送邮件

    目的:写一个可发送邮件的DLL. 原理: 例如A使用163邮箱发送邮件给B(qq邮箱).首先A会把邮件通过SMTP(Simple Mail Transfer Protocol)协议传输到163的Smt ...

  3. C/C++编译、链接、运行的基础知识

    0.C/C++从源文件在编译器的作用下先编译成.s的汇编,然后在汇编器的作用下变成.o的可重定向目标文件,然后在链接器的作用下变成可执行文件 1.在项目中设置的编译寻找目录中的.h文件(一般就是inc ...

  4. JVM 一套卷,助你快速掌握优化法则

    一:虚拟机内存图解 JAVA 程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行 JAVA 程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分 ...

  5. Selenium在Firefox中踩过的

    本文转至 http://www.51testing.com/html/11/n-3711311.html,作者对webdriver在Firefox中设置profile配置项挺熟的,是用Python实现 ...

  6. python基础:re模块匹配时贪婪和非贪婪模式

    python贪婪和非贪婪 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪则相反,总是尝试匹配尽可能少 ...

  7. [重要] Django 多条件多表查询实例问题

    当时想做一个多条件查询,但是对于要查询的信息,是分布在不同的表里,这就涉及到了多表查询问题. DjangoBook里提到了一些查询的方式,但是不够全面,就去百度搜了下. 当去网上百度搜多表查询,或多条 ...

  8. go 字符串反转(倒序)

    似乎没什么好办法,string的话也得需要先转换成rune再反转再转成string package main import ( "fmt" ) func reverseString ...

  9. maven单元测试报java.lang.IllegalStateException: Failed to load ApplicationContext

    报这个异常java.lang.IllegalStateException: Failed to load ApplicationContext的时候,通常是因为applicationContent.x ...

  10. rabbitmq集群故障恢复详解

    RabbitMQ的mirror queue(镜像队列)机制是最简单的队列HA方案,它通过在cluster的基础上增加ha-mode.ha-param等policy选项,可以根据 需求将cluster中 ...