使用伪元素来实现图片替换的两种方法

文章简介:伪元素与图片替换。

WeBrebuild年会上分享的一点内容,知识点的内容就不作过多阐述了,如果你完全不了解伪元素那么建议先看一下官方伪元素选择器的资料,或者自行谷歌了解,有兴趣可以去看下这篇文章:使用伪元素实现CSS图片替换(NIR),对于图片替换有比较详细的介绍和追溯 。

先看一下通用的图片替换方法:Demo1

什么问题呢,文字被隐藏了,直接导致的结果就是当图片加载失败或者网速慢图片无法很快加载的时候,用户不知道这块区域的内容是什么,有什么功能。

为了避免出现这样的状况,文字就不能被隐藏,图片也不能直接定义成元素的背景图片,而需要另外一个标签来包含图片进而覆盖文字。

在IE6\7和低版本的chrome、FF等浏览器里确实是这样,但在对伪元素选择器完美支持的浏览器下,我们只需要让伪元素来完成这个工作。

使用伪元素来实现图片替换有两种方法:

1、利用content将图片直接放到伪元素选择器里,看Demo2

2、绝对定位伪元素,将图片定义成背景Demo3

两种方法的利弊对比:

最后做了个针对IE6\7使用文字隐藏,IE8和高级浏览器使用伪元素的渐进增强 伪元素图片替换Demo

如果你的项目中有对IE另外书写CSS文件可以把CSS分离开来,这里我直接使用hack完成了这个工作。

实际项目中还是依照情况选择最优的方法来处理,对于比较重要的内容可以采用添加空标签的方法,这样即使在低版本IE中图片加载出现问题了也能保证内容。

有兴趣也可以看下图片引用错误的Demo:Demo-noimages

相关参考链接:

http://nicolasgallagher.com/css-image-replacement-with-pseudo-elements/demo

http://www.mezzoblue.com/tests/revised-image-replacement/

Pseudo-Elements Selectors 伪元素选择符

时间: 2024-12-03 21:05:39

使用伪元素来实现图片替换的两种方法的相关文章

Android实现图片叠加效果的两种方法_Android

本文实例讲述了Android实现图片叠加效果的两种方法.分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap passed to Canvas constructor错误 Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.apple).copy(Bi

Android实现图片叠加效果的两种方法

本文实例讲述了Android实现图片叠加效果的两种方法.分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap passed to Canvas constructor错误 Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.apple).copy(Bi

IOS实现圆形图片效果的两种方法_IOS

先来看看效果图 ↓ 这个显示效果的做法有很多: 方法一: 使用两张图片, 作为边框的背景图片和中间的图片,然后使用imageView的cornerRadius来做圆, 具体代码如下: backImageView.layer.cornerRadius = backImageView.frame.size.width / 2; backImageView.layer.masksToBounds = YES; frontImageView.layer.cornerRadius = frontImage

CSS中以图片替换文字的表现方法

css 今天有个朋友做网页的时候遇到个问题:想保留链接的背景,但又要链接里的文字消失!可是弄了半天一直没办法把这个文字去掉.我想很多学标准的朋友都遇到过这个问题,这里我把常用的几个方法写出来,把思路也讲一下,希望能帮助刚开始学习的朋友. "以图换字"就是用图片替换文字表现.我们都知道,文字在浏览器里的表现形式是很差的,会有锯齿,没办法圆润还有没办法做很多效果.一般情况下网页的内容部分是不需要做效果的,但是在WEB标准中对于LOGO.标题,常常需要用到这些.用表格来做的话我们只是在某个地

php有效防止图片盗用、盗链的两种方法_php技巧

如今的互联网,采集网站非常多,很多网站都喜欢盗链/盗用别人网站的图片,这样不仅侵犯网权,还导致被盗链的网站消耗大量的流量,给服务器造成比较大的压力,本文章向大家介绍php如何防止图片盗用/盗链的两种方法,需要的朋友可以参考一下. 图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量. 本文章向大家介绍php防止图片盗用/盗链的两种方法 1.Apache图片重定向方法 2.设置images目录不充许http访问  Apache服务器下防止图片盗链的办法 如果你的网站以图片为主,哪天发现

Photoshop调节图片颜色的几种方法

  Photoshop调节图片颜色的几种方法.今天小编为大家分享Photoshop调节图片颜色的几种方法,教程真的很不错,值得大家学习,推荐过来,来看看吧. 一.直接改变图层颜色的方法 首先,打开一个素材图片;这时可以发现,图片的颜色质量较淡. 之后,点击图像---调整,这里的选项都可以更改图片的颜色,我们选择"色彩平衡". 在弹出的页面中,调节各个颜色的数值;通过"色调平衡",可改变不同区域的颜色质量. 这时,调节前后的颜色基本展现出来了;但是,是直接在原图上做的

鼠标移入移出事件改变图片的分辨率的两种方法

 做一个鼠标移入移出图片事件,首先是改变分辨率的两种方法,鼠标移入图片和移出图片的分辨率不同,具体实现如下,感兴趣的朋友可以参考下 最近在做一个鼠标移入移出图片事件,有几种方法大家可以试一下  首先是改变分辨率的两种方法,鼠标移入图片和移出图片的分辨率不同  方法一   代码如下: <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type

js实现图片旋转的三种方法

 这篇文章主要介绍了js实现图片旋转的三种方法,需要的朋友可以参考下 1 使用jQueryRotate.js实现    示例代码:  代码如下: <!DOCTYPE html>  <html>  <head>  <title></title>  <style type="text/css">  #div1 {  width: 800px;  height: 600px;  background-color: #ff

Access中批量替换数据库内容的两种方法_Access

今天遇到一个问题,一Access数据库中存放着N条文章记录,现在想替换掉这些文章中的部分内容,我们首先想到的是到网站后台去一条一条修改文章,那如果有1000篇文章,那就在网站后台改1000次,难以想象这是什么样的工作量.其实在Access数据库中可以利用SQL语句来批量替换内容,只需一句话就能解决问题,下面通过两种方法来解决此问题. 方法一:通过Access数据库中的查询分析器来修改(这里我使用的是Access 2003) 1.打开需要修改的Access数据库 2.在数据库"对象"中点