我都好久没更新了!

遇到一个效果,之前没有考虑清楚,设置了固定高度,到了后边,产品要加长,我就觉得设计得从新弄张长点的背景图!这不多余么?

其实分析原图还是可以再切分,再细化到不用改设计图,让我们前端页面各种适应,做到重复利用。

于是就有了这个问题和如下的一连串问题。

.最外层父元素{height:auto;background:url(../images/hot_c_bg_g.png) repeat-y center top  #2807b3;}

一定是y轴重复

本来想用css3的background-image属性的多个背景图的功能,可是想想还要兼容ie就很烦

于是利用了css的伪类选择器来完成这一巨大的使命。

.hotCar{background:url(../images/hot_c_bg_g.png) repeat-y center top  #2807b3;position: relative;}

然后是顶部和底部的图:

.hotCar:before{position: absolute;top: 0; left: 0;content: "";display: block;width: 100%;height: 184px;background: url(../images/hot_h_bg_g.jpg) no-repeat top center;}

.hotCar:after{content: "";display: block;height: 64px;background: url(../images/hot_f_bg_g.jpg) no-repeat bottom center;}

这样设置,别的浏览器都可以了,到了ie还是这个样子,只有第一张图重复了。

可以看出来,before和after的背景图片没有加载进来,或者可以说,在ie(以下皆指ie8及以下)中,before和after没起作用。

按理说不应该啊,before你不支持,after你得管啊,要不然清除浮动是有会没用的啊。

我想了想,清除浮动时,虽然也用了after伪类,但他在正常的clearfix类里边还设置了*zoom:1;*overflow:hidden;这个万能的iebug调试法,我这里也试下看行不?

结果还是,不行!

这种关键时刻,iebugbar软件不能用了,更加测不出问题了。开发人员工具也打不开,打开了是透明的.

百度了下,找到了解决方法,下面是原文摘录:

  “按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示。将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来。将鼠标移动到开发人员工具的缩略图上,右键-最大化,工具就全屏出现了。(或者是右键-移动,然后手动调整窗口大小)

但是这时候是单独一个窗口,没有和IE页面结合在一起。点击右上角的固定按钮(快捷键CTRL+P),就和IE结合在一起了,位于页面的下方。

或者是打开工具后,直接按快捷键ctrl+p,就出来了。(当然了,必须先打开开发工具,否则ctrl+p是IE8的打印)。

有了开发人员工具,我就可以调节以下ie的浏览模式,换成ie8文本模式,居然可以了!

后来考虑到content不能为空,但我又不需要内部的文字,于是就用了一个color等于背景色,算是障眼法把。

这算其中一个解决方法,另外css3的多层背景图的方法可以按照w3c文档一步一步来。

第三种解决方法,是给结构加空节点,然后给背景图,通过调试也可以实现。就不多话。

但我觉得最好的方法还是用css好,不过针对ie下伪类不能用的问题,网上还是有很多教程说明,让引入js文件来解决的。

 .class{background:url(../images/hot_c_bg_g.png) repeat-y center top  #2807b3;position: relative;*zoom:;*overflow: hidden;}
.class:before{position: absolute;top:; left:;display: block;width: 100%;height: 184px;content: "1";color: #2807b3;background: url(../images/hot_h_bg_g.jpg) no-repeat top center;}
.class:after{content: "1";color: #2807b3;display: block;height: 64px;width: 100%;background: url(../images/hot_f_bg_g.jpg) no-repeat bottom center;}

ps:高度的设置是图片的高度

-------------------------------------------------------------------------------------正经分割线!!!--------------------------------------------------------------------------------------------------------------------------
声明:
  请尊重博客园原创精神,转载或使用图片请注明:
  博主:xing.org1^
  出处:http://www.cnblogs.com/padding1015/

CSS-自定义高度的元素背景图如何自适应以及after伪元素在ie下的处理的更多相关文章

  1. 能用padding,margin解决的不要使用伪元素,能用背景解决的也不要用伪元素

    能用padding,margin解决的不要使用伪元素,能用背景解决的也不要用伪元素

  2. 在css中设置图片的背景图,怎么设置图片纵向拉伸

    css中设置背景图拉伸填充,在css2.1之前这个背景的长宽值是不能被修改的. 实际的结果是只能重复显示,可以使用repeat,repeat-x,repeat-y,no-repeat这些属性来控制背景 ...

  3. CSS背景图怎么自适应全屏(手机或者电脑)

    #demo{ background-img:url(../bg.png); --(1)适用于上半部分背景图片,下半部分纯色 将背景图像等比缩放到完全覆盖屏幕,背景图有可能超出屏幕(容器) backgr ...

  4. CSS实现事件穿透与背景图不跟随滚动条

    1. 事件穿透属性:pointer-events: none  // auto默认值.none:不捕捉target事件(实现穿透) 用途:当需要使用透明遮罩并且允许点击遮罩下方元素时,或需要使用背景容 ...

  5. css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题

    近期在负责一个微信H5 App项目,遇到一个郁闷的问题,手机浏览器查看网页时图标都是模糊的,有锯齿,电脑浏览器显示则是正常.大概知道是分辨率适配等类型的问题,后来网上查找了一些办法.大部分的解决方式都 ...

  6. CSS背景图拉伸自适应尺寸,全浏览器兼容

    突然有人问我这个问题,说网上CSS filter的方法在非IE浏览器下不奏效.思考之后,问题之外让我感慨万千啊,很多我们所谓的难题,都会随着时代的发展迎刃而解,或被新的问题所取代. 当CSS背景图片拉 ...

  7. CSS背景图拉伸自适应尺寸

    .bg{ background:url(images/test.jpg); filter:"progid:DXImageTransform.Microsoft.AlphaImageLoade ...

  8. CSS之全屏背景图

    吐槽啦:Yeah  明天就是国庆了o(* ̄▽ ̄*)o!哈哈,提前祝福各位园友国庆快乐.假期愉快.生活美满.天天开心!国庆我要回家一趟,把一些不用的东西带回家,走访一下亲朋好友,在家打几天酱油~~~ 言 ...

  9. css背景图与html插入img的区别

    一直以来都认为css背景图与直接插入img图片的效果是差不多的,直到最近拜读了一位大神的作品,发现大部分图片都是通过背景图形式显示的,于是通过搜索各相关资料,在此总结了下二者的区别: 1. css中的 ...

随机推荐

  1. linux 内核参数调整优化网络

    Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...

  2. mac os x10.9.2 查看进程对应端口

    以前在Ubuntu上,直接sudo netstat -nap 但是在mac 上这个命令还跑不通,sudo netstat  -nap  tcp 才行,结果还没有进程号.用lsof -Pn 解决了

  3. 在传统以太网中,为什么要有最小帧长度(64 bytes)和最大帧长度(1500 bytes)的限制?

    遇到的问题:以太网的数据帧封装如下图所示,包含在IP数据报中的数据部分最长应该是( )字节? A.1434 B.1460 C.1480 D.1500 答案:C 原因: 以太网(IEEE 802.3)帧 ...

  4. DIV内滚动条滚动到指定位置

    相对浏览器,将指定div滚到到指定位置,其用法如下: $("html,body").animate({scrollTop: $(obj).offset().top},speed); ...

  5. R语言中字符串的拼接操作

    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量. 函数paste的一般使用格式为: paste(..., sep = " ", collapse ...

  6. 关于Cocos2d-x很多奇怪的报错

    1.说什么找不到类和命名空间,但是已经包含头文件 项目-属性-配置属性-C/C++-附加包含目录-编辑-添加新行-写上$(EngineRoot) 2.很多语句报错,但是都没问题 我是这样理解的,书上的 ...

  7. java面试题------40个Java集合面试问题和答案

    Java集合框架为Java编程语言的基础,也是Java面试中非常重要的一个知识点. 这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的长处? 每种编程 ...

  8. 《Java程序猿面试笔试宝典》之组合与继承有什么差别

    组合和继承是面向对象中两种代码复用的方式. 组合是指在新类里面创建原有类的对象,反复利用已有类的功能.继承是面向对象的主要特性之中的一个,它同意设计人员依据其他类的实现来定义一个类的实现. 组合和继承 ...

  9. 最短路径问题-Dijkstra

    概述 与前面说的Floyd算法相比,Dijkstra算法只能求得图中特定顶点到其余所有顶点的最短路径长度,即单源最短路径问题. 算法思路 1.初始化,集合K中加入顶点v,顶点v到其自身的最短距离为0, ...

  10. c++ 开放随笔

    1.设计或使用类时 一定先弄清流程 了解对象直接的关系(这个必须清楚) 如多对多,一对多,一对一关系.不然弄list map set时相对麻烦. 2.map 中key是不能重复的,可以看成一个主键,定 ...