使用css2.1实现多重背景、多重边框效果
在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果。这种渐进增强的方式适用于所有支持CSS2.1伪元素及其定位属性的所有浏览器。不需要CSS3的支持。
支持的浏览器:Firefox 3.5+, Safari 4+, chrome4+, opera10+, IE8+
是如何实现的呢?
从本质上讲,我们所创建的伪对象(:before和:after)跟我们在对待HTML元素嵌套关系是相同的。但他们相对于嵌套使用的HTML元素而言具有其独特的优势——不具有语义化。
当使用多背景或者多重边框的时候,我们需要将伪元素层的内容利用绝对定位固定在HTML元素内容的后面。
并非真实的内容被伪元素所包含进行定位。这意味着他们能在“父”元素范围内随意拉伸的同时而不会影响其内容。这可以任意组合绝对定位的top、right、bottom、left、width和height的值,主要关键是他们的组合性能是灵活的。
可以达到什么效果?
仅需要依赖于一个HTML元素和相关的图片就可以创建类似于多背景颜色、多背景图、背景图片剪辑、图片翻转、使用图片边框的可扩展的盒模型、浮动的虚假列(小志注:后面会提到的三列等高效果)、在盒模型外的图片、显示在外面的多边框,以及其他流行的效果等。可能需要2张额外的内容图片在生成的内容中。
在使用CSS2.1的多背景和使用CSS2.1的多边框演示页面中将会展示如何使用CSS2.1伪对象的技术实现这些流行的效果。
大部分的结构都包含子元素。因此,往往很多时候,你将有可能通过父元素的第一个子元素(设置是最后一个子元素)的伪元素来展示更多的效果。此外,还可以通过:hover对样式产生一些复杂的交互效果的变化。