IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

CSS图片替换

RockUX | WEB、前端、JavaScript、PHP 2011-06-02 13:39:50 累计浏览 2,843 次
本机暂存

我们在做网站的时候,有时候需要把网站的Logo用图片代替,这样的方法有很多,但是那一种是最好的呢?

使用图片

最简单的最容易想到的办法自然就是使用图片了。然后给图片添加一个alt值,对搜索引擎友好一些。

1
<h1><img src="image.gif" alt="Image Replacement"></h1>

这样做的缺点就是对搜索引擎不友好,搜索引擎对于图片alt属性的权重肯定是低于H1的,就算你的图片是放在H1标签里面。

移开文字

这也是比较常见的一种办法,就是使用display:none来隐藏文字,让用户不可见。

给文字加一个span标签,就可以分别控制了。

1
<h1><span>Image Replacement</span></h1>

CSS部分:

1
2
3
4
5
6
7
8
9
10
h1 {
background-image: url(image.gif);
background-repeat: no-repeat;
width: 256px;
height: 41px;
}
h1 span {
position: absolute;
left: -999em;
}

这样做的好处在于使用CSS让文字对于用户不可见,但是搜索引擎还是能看到的。

之前很多都是使用这样的方法,但是这样做有个不好的地方在于,如果用户在浏览的时候关闭了图片显示,那么Logo部分就是空的了,这样体验很不好。

解决办法

最终的解决办法比较复杂一些,但是最终兼顾了所有方面,包括用户体验和搜索引擎。

HTML的结构跟之前的有些不同,我们需要一个空的span标签。

1
<h1><span></span>Image Replacement</h1>

然后跟之前一样,设置宽高、背景图片、font-size:

1
2
3
4
5
6
h1, h1 span {
width: 256px;
height: 41px;
background-image: url(image.gif);
font-size: 100%;
}

然后我们通过一些技巧来隐藏文在在图片之下,这样用户关闭图片的时候也能看到文字。

1
2
3
4
5
6
h1 span {
display: block;
position: relative;
z-index: 1;
margin-bottom: -41px;
}

通过定义z-index就把图片显示在文字之上了。我们还需要更改display:block这样宽高才能应用在span之上,还需要添加margin-bottom让文字不会显示在图片下面。

最后设置overfolw,这样就算文字再大,也不会撑开:

1
h1{overflow:hidden}

点击这里,可以查看例子。

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. 如何高效使用搜索引擎 (累计阅读 36,792)
  2. 50个活力和动感的网页设计-颜色的灵感 (累计阅读 34,442)
  3. 视觉设计前瞻实用性研究(PNVD) 第二期 (累计阅读 12,977)
  4. 各公司对前端开发的职位描述 (累计阅读 10,405)
  5. iframe大小自适应 (累计阅读 10,057)
  6. Hello! 404 (累计阅读 9,385)
  7. 浏览器的渲染原理简介 (累计阅读 8,377)
  8. 解决IE6从Nginx服务器下载图片不Cache的Bug (累计阅读 8,357)
  9. iframe里src="about:blank"的问题。 (累计阅读 8,089)
  10. 程序员眼里IE浏览器是什么样的 (累计阅读 8,011)