Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198222
  • 博文数量: 95
  • 博客积分: 2383
  • 博客等级: 大尉
  • 技术积分: 1135
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-09 15:14
文章分类
文章存档

2012年(84)

2011年(11)

我的朋友
最近访客

分类: Java

2012-05-03 10:28:12

CSS伪类(pseudo class)简明介绍之:before和:after

   

如果大家经常关注互联网新网站和应用的话,或者你喜欢收集不同的网站模板,你会发现越来越多的网站模板或者网站在使用CSS伪类 - pseudo class。

今天我们这里给大家简单介绍伪类中经常使用的俩个:before和:after。希望大家能够觉得有帮助!

如果你喜欢我们的文章,或者有任何问题,请给我们留言,谢谢!

什么是伪类(pseudo class)?

pseudo这个单词来源于希腊语的音译,意思是虚构的,假的,或者伪的意思。因此这里不难理解为什么我们称之为伪类。

和一般的DOM中的元素样式不一样,它并不改变任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见。

因此大家需要注意一下几点:

  • 它们不是真正的元素,对于很多情况下,大家不用用它展示实际意义的内容,尽量用它显示修饰性内容或者设计性内容,例如,图标
  • 要知道有些相关的开发工具,例如著名的开发工具firebug根本就不显示任何的伪类生成内容,如果你使用的话,你知道后果的!你将陷入盲目的debug中。当然你使用Chrome可以看到样式,但是在DOM看不到元素。
什么时候使用伪类(pseudo class)?

如果你需要创建一些修饰类图标,或者设计UI的时候,使用伪类是相当方便的,大家可能还记得那篇文章吧,一个非常准确的使用场景。

支持的浏览器
  • Chrome 2+
  • Firefox 3.5+ (FF3.0支持部分),
  • Safari 1.3+
  • Opera 9.2+
  • IE8+ 
  • 手机上的浏览器
基本使用方法

如果我们有一个链接元素,如下:

GBIN1

如果我们定义了相关的CSS,如下:

#gbin1{
  font-size: 12px
  background: #202020
}

我们使用:before生成当前元素前面的伪元素样式和内容,这里我们需要使用content属性,注意我们可以使用文字类,或者图片,如下:

#gbin1:before{
content: url("images/gbin1icon.png");
}

我们使用:after生成此元素后面内容的样式和内容,如下:

#gbin1:after{
    content: attr(href);
}

上面例子可以看到,我们使用content生成伪对象内容,使用的是一个图片作为元素内容,如果你不使用content对象,伪类基本没有任何使用价值。

同时我们可以使用attr来引用元素的属性,例如这里我们可以读取id=gbin1的元素的href属性对应的值做为:after生成的伪元素内容。

如果你见到::before和::after的样式,也不用奇怪,唯一区别在于这是CSS3的伪类表示方法。

注意:上面代码中,我们在:before中生成一个图片内容: url("images/gbin1icon.png"); ,注意没有引号,否则内容将不是图片,而是"url("image..")"字符串儿。

缺省情况下, 伪类元素display缺省属性是inline,你可以通过设置display: block来修改显示方式。以下代码将生成一个区域的伪类元素:

#gbin1:before{
content: "";
display: block;
width: 200px;
height: 200px;
}

注意:你不能删除content属性,否则这个伪类生成的元素将不存在。

这里我们使用伪类来生成带有图表的链接按钮,代码如下:

#gbin1:before{
content: "";
padding: 10px 15px;
margin: 10px 15px;
background: url("images/gbin1icon.png") no-repeat scroll 0% 50% transparent;
}


#gbin1:after{
content: attr(href);
padding: 20px;
margin: 20px;
}

生成内容如下图:

CSS伪类(pseudo class)简明介绍之:before和:after

各部分代码生成的元素内容如下图:

CSS伪类(pseudo class)简明介绍之:before和:after

以上介绍我们基本简单的介绍了伪类在CSS中的使用,希望对于没有接触过伪类的朋友有帮助,谢谢!

阅读(1072) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~