css中::before/:before和::after/:after的使用方法

第一部分:基础知识

1.与:active 和 :hover这些伪类不一样,他们都是伪元素。

2.:before/:after伪元素是在css2中提出来的。而::before/::after是在css3中的写法,这样从新提出是为了用两个冒号表示伪元素以区分伪类。

3.它们用在css里某个选择器之后,为了增添装饰性内容的,因为这样可以实现语义化,如果用html来添加一些没有实际内容的节点或者辅助式样本的文本,他们是毫无意义的。

4.它们有特有的属性content,其中添加的内容默认是内联元素。

5.创建的伪元素默认是在所依附的元素之上的,我们可以使用z-index:-1;把它放到下面去。

6.它们是虚拟节点,而不是真正的节点。如:

div::after{

    content:" ";

    border:thinsolidred;

}

我们在浏览器可以看到:

::after并不是一个真实节点,实际上我们在一些网站上经常可以看到它们的使用。

6.input,img,iframe等元素都不能包含其他元素,所以不能通过伪元素插入内容。  

第二部分:应用

1.做间隔符。

<!DOCTYPE html>

<htmllang="en">

<head>

    <metacharset="UTF-8">

    <title>伪元素</title>

    <style>

        a{

            color:blue;

            text-decoration: none;

        }

        .log:after{

            content:"|";

            color:red;

        }

    </style>

</head>

<body>

    <ahref=""class="log">登录</a><ahref="">注册</a>

</body>

</html>

效果如下:

2.做三角形

<!DOCTYPE html>

<htmllang="en">

<head>

    <metacharset="UTF-8">

    <title>伪元素</title>

    <style>

        a{

            color:blue;

            text-decoration: none;

        }

        .log:before{

            content:" ";

            display: inline-block;

            width: 0;

            height: 0;

            border:10px solid transparent;

            border-left: 10px solid red;

        }

    </style>

</head>

<body>

    <ahref=""class="log">登录</a>

</body>

</html>

效果如下所示:

3.清除浮动(下面内容取自张鑫旭大神)

<!DOCTYPE html>

<htmllang="en">

<head>

    <metacharset="UTF-8">

    <title>伪元素</title>

    <style>

    .box{padding:10px; background:gray;}

    .fix{*zoom:1;}

    .fix:after{display:block; content:"clear"; height:0; clear:both; overflow:hidden; visibility:hidden;}

    .l{float:left;}

    </style>

</head>

<body>

    <divclass="box fix">

    <imgclass="l"src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg"/>

</div>

</body>

</html>

效果如下:

注意:其中*zoom:1;是用来在IE6中清除浮动的(用在浮动元素的父元素上)。

时间: 2024-08-22 09:23:47

css中::before/:before和::after/:after的使用方法的相关文章

CSS中使用image data URI来处理图片的方法

  即将图片资源转换为 base64 字符串格式嵌到页面或样式中.这样连图片的请求链接都省了. 如: 使用方式 CSS Code复制内容到剪贴板 /** 数据格式 **/ data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAA lwSFlzAAALEwAACxMBAJqcGAAAAE1JREFUKJHV0MEOwCAIA9DW7MP983pymUaweluv8IAAB

Css中td表格relative设置失效的解决方法

1.直接在你级table上设置 position:relative;   2.在FF中position:relative要与display:block/inline-block才能生效, display:block/inline-block可以是默认块元素,或是被定义的元素   3.在IE中position:relative除了与display:block/inline-block可以生效外,与display:table-cell.table等都可以

CSS中使用white-space创建竖排文字的简单方法

J E F F R E Y

CSS中的滑动门技术

css 原文作者:Douglas Bowman 原文出自:A List Apart 中文翻译:54player.com nobita 版权说明:本文中文翻译版权归译者54player.com nobita所有.需要转载发表的,请先与作者联系 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标

html-本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题

问题描述 本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题 FIREFOX浏览器,代码如下: HTML代码片段: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @import url(template/default/styl

php问题-php里css中的清除浮点问题

问题描述 php里css中的清除浮点问题 #head{border:1 solid red;width:100%;height:20;}ul{float:left;}#banner{float:left;}.clear{overflow:hidden;zoom:1;} 首页 首页 首页 首页 首页 首页 我写的这个程序为什么li中的那几个字不显示在规定的div块里而是出现在它的下方呢,是不是清除浮点搞错了啊,浮点换了几次都不成功,求教各位大神指点一下 相关文章 清除require载入的文件 ph

CSS中的文本属性

本文总结一下CSS中关于文字的相关属性,最后给出实例. CSS基础文字属性 文字的基础属性主要包括:字体.颜色和文本.除去颜色color的属性外,字体和文本的相关属性可以权威参考: CSS 文本属性(Text) CSS 字体属性(Font) CSS3新增属性 文本阴影:text-shadow 文本溢出:text-overflow 这个属性一般需要配合overflow:hidden和white-spance:nowrap(强制文本容器不换行)使用. 文本换行:word-wrap word-brea

css中字符换行的一些问题

我们在处理文章的内容的过程中由于文章内容混杂有中文.英文.数字等其他字符,而我们常见的英文和数字是无法在包裹元素中自动换行,这往往会导致元素被撑破,如下图所示: css中word-break可以解决这个问题,写个测试页面来做个笔记 css代码: body{font-size:14px;} p{ border:solid 1px red;width:200px;} html代码: <body>     <p class="test">English中文中文中文中文

学会使用css中的behavior

网页中我们经遇到刷新要保留表单里内容的时候,习惯的做法使用cookie,但是那样做实在是很麻烦,css中的behavior就为我们很好的解决了这个问题. 比如: <input style="behavior:url(#default#savehistory)" name="youname" type="text" id="yourname" size="10" autocomplete="o