:before/:after与::before/::after的区别 和属性content:值

一、伪元素和伪类是非常相像的两个东西。在实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。

:Pseudo-classes
::Pseudo-elements

但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。

二、基本用法:

p::after{}
img::before{}

这两个伪类下特有的属性 content ,用于在 CSS 渲染中向元素逻辑上的头部或尾部添加内容。注意这些添加不会改变文档内容,不会出现在 DOM 中,不可复制,仅仅是在 CSS 渲染层加入。

注:img和input没有该属性;

content的内容一般可以为以下四种:

 none: 不生成任何值。
 attr(): 插入标签属性值。通常和自定义属性data-配合使用,因为传统的其它属性虽然也能存值,但通常不适合存放表达性文字。
  <div data-line="1"></div>

div[data-line]:after { content: attr(data-line);/* 属性名称上不要加引号! */

 url(): 使用指定的绝对或相对地址插入一个外部资源(图像,声频,视频或浏览器支持的其他任何资源)
 string: 插入字符串 counter():调用计数器,可以不适用列表元素实现序号功能。具体参见counter-increment和counter-reset属性的用法。
 h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " }

二、进阶用法:

1.清除浮动

.clearfix {*zoom: 1;}

.clearfix:before,
.clearfix:after {
    display: table;
    line-height: 0;
    content: "";
}

.clearfix:after {
    clear: both;
}

2.制作三角

.c-main:before{
    content: ‘‘;
    border-top: 9px solid transparent;/*方框上部分背景颜色为透明*/
    border-bottom: 9px solid transparent;/*方框下部分背景为透明*/
    border-right: 9px solid #eee;/*箭头背景颜色*/
    position: absolute;/*绝对定位1*/
    top: 25px;/*距离顶部位置偏移量2*/
    left: -9px;/*距离左边位置偏移量3*/ /*123都是控制显示位置的*/
    }

.c-main:after{
    content: ‘‘;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 7px solid #fbfdfb;/*箭头背景颜色,覆盖前面的#eee颜色,使其颜色与整体颜色一致*/
    position: absolute;
    top: 27px;
    left: -7px;
}                               

原文地址:https://www.cnblogs.com/jiunie/p/11434855.html

时间: 2024-08-30 07:15:38

:before/:after与::before/::after的区别 和属性content:值的相关文章

phpcms v9中 action=&quot;position&quot; 和action=&quot;lists&quot;有什么区别, 以及action 的属性和值

action值的含义: lists 内容数据(文章?)列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列表 position 内容推荐位列表 phpcms v9中 action="position" 和action="lists"有什么区别, 以及action 的属性和值,布布扣,bubuko.com

Python中的is和==的区别,is判断值是否相等,id判断地址是否一致

Python中的is和==的区别 Python中的对象包含三要素:id.type.value. 其中id用来唯一标示一个对象,type标识对象的类型,value是对象的值. is判断的是a对象是否就是b对象,是通过id来判断的. ==判断的是a对象的值是否和b对象的值相等,是通过value来判断的. 看下边的例子: >>> s=set("1234") >>> s set(['1', '3', '2', '4']) >>> ss=s.

jqeury 版本1.6- 与 1.6/16.+区别 之属性attr/prop

对于<input type="checkbox" /> <script type="text/javascript" src="jquery/jquery-1.5.1.min.js"></script> <script type="text/javascript" src="jquery/jquery-1.11.1.min.js"></script>

js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别

1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <title>test</title> 5 </head> 6 <body> 7 <script> 8 //对象构造函数 9 function Atest(name){ 10 //私有属性,只能

execute、executeUpdate、executeQuery三者的区别(及返回值)

1. ResultSet  executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象. 2.int              executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数. 3.boolean     execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet . execute是executeQuery和executeUpdate的综合. 使用哪一个方

CSS 属性 :before &amp;&amp; :after的用法,伪类和伪元素的区别

一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before{content:'you before'; color:red;} <div class="before"> me</div> 在这里我们给伪元素 :before 添加了属性 content,并赋值为 you before.我们来看效果: //在指定元素的内容 m

AngularJS笔记

1,客户模板 angular中,模板和数据都会被发送到浏览器中,然后在客户端进行装配 2,MVC (1)MVC核心概念,把管理数据的代码(model).应用逻辑代码(controller).向用户展示数据的代码 (view)清晰地分离开 (2)Angular应用中: 试图就是Document ObjectModel 控制器就是Javascript类 模型数据则被储存在对象属性中 3,数据绑定 (1)数据绑定可自动将model和view间的数据同步 (2)Angular实现数据绑定的方式,可以让我

Angularjs[1]

001-: 客户端模版:Angular中,模版和数据均会被发送到浏览器中,然后在客户端进行装配. 数据绑定(MVVM):数据绑定可以自动将 model 和 view 之间数据同步. 依赖注入: 002-数据绑定: 搭建Angularjs开发环境  www.angularjs.org <body ng-app> <input type="text" ng-model="name" value=""> <!--{{ang

JQuery中$.each 和$(selector).each()的区别详解

1.$(selector).each() jQuery 遍历 - each() 方法主要用于DOM遍历,each() 方法规定为每个匹配元素规定运行的函数. 语法: $(selector).each(function(index,element)) W3School上显示回调函数是必须的,index - 选择器的 index 位置,element - 当前的元素(也可使用 "this" 选择器). $().each,对于这个方法,在dom处理上面用的较多.如果页面有多个input标签类