认识伪类元素:before和:after

起因于不理解下图点的写法,后来发现是个很基础的东西

      

运用了伪类元素:before,如下

注意,他的css写法也是非常简洁高效的。

 

查阅了些关于伪类before和after的知识帮助理解,以下摘自:http://www.hulufei.com/post/about-before-and-after-pseudo-element


 

:before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素,最基本的用法如下:

#example:before {content:"#";color: red;}#example:after {content:"$";color: red;}

 

这段代码会在#example元素内容之前插入一个'#',以及在内容之后添加一个'$',插入的行内元素是作为#example的子元素,效果如下:

Here is the example content

需要注意的是如果没有content属性,伪类元素将没有任何作用。但是可以指定content为空,同时正如前面所说,插入的内容默认是一个行内元素,并且在HTML源代码中无法看到,这就是为什么称之为伪类元素的理由,所以也就无法通过DOM对其进行操作。

#example:before {content:"";display: block;width:100px;height:100px;}

 

伪类元素也会像其他子元素一样正常继承父元素的一些CSS属性,比如字体等。

除了插入文字内容,还可以指定其他内容:

p:before {content: url('img.jpg');}
a:after {content: attr(href);}

 

attr()函数会返回指定元素对应属性的值

最后,奉上最惦记的浏览器支持情况

  • Chrome 2+,
  • Firefox 3.5+ (3.0 had partial support),
  • Safari 1.3+,
  • Opera 9.2+,
  • IE8+ (with some minor bugs),
  • Pretty much all mobile browsers.

放在伪类元素里面的内容一般都只是装饰性的,所以即便是IE6/7不支持也应该能降级到正常显示主体内容。

:before和:after的一些惊人用法

>. clearfix hack

如果父元素容器里面的子元素是浮动元素的话,我们一般需要在父元素闭合前添加一个clear:both的元素用于清除浮动从而能使父容器正常被子元素内容撑起,但是这种方法引入了多余的无意义标签,并且有javascript操作子元素的时候容易引发bug。一种更好的方法是利用CSS,所以在一些CSS文件中经常会看到类似于.clearfix这样的类出没,只要在父容器上应用这个类即可实现清除浮动。下面是利用:before和:after的一个实现:(viaNicolas Gallagher)

/* For modern browsers */.clearfix:before,.clearfix:after {content:"";display:table;}.clearfix:after {clear:both;}/* For IE 6/7 (trigger hasLayout) */.clearfix {zoom:1;}

>. CSS实现的八卦图案

 

#yin-yang {width:96px;height:48px;background:#eee;border-color: red;border-style: solid;border-width:2px2px50px2px;border-radius:100%;position: relative;}#yin-yang:before {content:"";position: absolute;top:50%;left:0;background:#eee;border:18px solid red;border-radius:100%;width:12px;height:12px;}#yin-yang:after {content:"";position: absolute;top:50%;left:50%;background: red;border:18px solid #eee;border-radius:100%;width:12px;height:12px;}

 

 

资源链接

  • Learning To Use The :before And :after Pseudo-Elements In CSS
  • The Shapes of CSS
  • Pseudo-elements reference
  • Add steps counter in form via CSS

转载于:https://www.cnblogs.com/2boy/p/3316842.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uboot源码——内核启动分析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、uboot作用简介 uboot的主要作用是用来启动linux内核。 CPU不能直接从块设备中执行代码,因此需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作&…

票据单号生产软件

有个老师要做excel表格,里面要罗列某票据还是什么单号的编号,格式如上图所示。一开始她说能不能写个excel函数,一拖就搞定~我觉得很难搞出来,就写个软件,生产单号保存在TXT文件,然后让她复制粘贴到excel表就…

uboot源码——C阶段的start_armboot函数

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、start_armboot函数简介 uboot第一阶段,start.S文件中进行一系列的SoC内部硬件的初始化,然后长跳转到start_armboot 函数中。 uboot第二阶段,start_armboot函数…

Hibernate的fetch

hibernate抓取策略fetch具体解释一、hibernate抓取策略(单端代理的批量抓取fetchselect(默认)/join)測试用例:Student student (Student)session.get(Student.class, 1);System.out.println(student.getName());System.out.print…

source insight的使用方法

1、下载与安装 下载与安装方法见链接。 “Insight3.exe”这个是汉化版,直接打开,不需要安装。 “Si35Setup.exe”这个是英文版,安装后需要自己找到应用图标并发送快捷方式到桌面。 2、快速新建工程 (1)点击 Project —…

TortoiseSVN检出链接(可用于与站点集成)

为什么80%的码农都做不了架构师?>>> TortoiseSVN(简称TSVN) 是一个 Windows 下的版本控制系统 Apache™ Subversion 的客户端工具。 如果你希望你的 Subversion 版本库对于别人可用,你可以在你的站点包含一个链接。 为…

使用抽象类还是接口(Java)

“要针对接口编程,不要针对实现编程。”那么,在java的世界里,这里的接口指的是什么呢?无非是以下两种实现方式: 方式1)抽象类(只能有一个超类) 方式2)接口Interface&…

.word的理解

我们在汇编文件中经常会见到.word指令,如下所示: label:.word express label,是一个标签,它是一个链接地址的别名,相当于一个指针。 express,表示链接地址处的内容,相当于指针所指向的内容。…

foreman架构的引入2-安装前环境准备

零基础学习Puppet自动化配置管理系列文档Foreman官网提供了每个版本非常完善的安装步骤,无论是源码安装还是rpm包安装都变得非常方便。而且Foreman通过puppet模块对安装步骤进行了封装并提供了大量的安装参数可以传输,相当的方便。不过由于其体系过大&am…

软件集成策略故事连载----对项目的不利影响竟然这么大

2.对项目的不利影响竟然这么大 项目经理老刘跟晓川说,等这一轮集成做完,一起聊一聊。晓川听了有点紧张。不过想一想,自己已经很努力了,也没有什么可担心的。其实关键是程序员提交的质量。倒正好可以借这个机会跟领导沟…

uboot源码——汇编阶段的start.S文件

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、总结 1、关于阶段的定义 第一阶段,即在内部SRAM运行的阶段,简单地理解为汇编阶段。此阶段主要涉及start.S文件,在cpu/s5pc11x/目录下。第一阶段以ldr pc _sta…

TCP三次握手及四次挥手详细图解(转)

1.链接:http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html Andrew Huangbluedrum163.com 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对…

rm命令:linux如何反向删除文件

假如某目录下有多个文件:file1,file2……filen。 保留单个文件file1,其他文件删除的方法: # shopt -s extglob # rm -fr !(file1) 保留多个文件如file1和file2,其他文件删除的方法: # shopt -s extglob…

何以解养老之忧

何以解养老之忧 何以解养老之忧 很久没有写读后感了,记得那还是上高中以前做的事情。今天,2013年9月的某日。我读了一篇社论,题目为《如何让民众信任“以房养老”》的文章。 从文章当中得知,2012年底我国60周岁以上老年人口已达1.…

机器学习算法之旅

在理解了我们需要解决的机器学习问题之后,我们可以思考一下我们需要收集什么数据以及我们可以用什么算法。本文我们会过一遍最流行的机器学习算法,大致了解哪些方法可用,很有帮助。 机器学习领域有很多算法,然后每种算法又有很多延…

Android Handler的使用方法

如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示: package com.example.androidhandletest; import java.util.Timer;import java.util.TimerTask; import android.os.Bundle;import andro…

转:[C/C++]2014年7月华为校招机试真题(一)

[C/C]2014年7月华为校招机试真题(一)转载于:https://www.cnblogs.com/kira2will/p/4039521.html

df命令:显示系统上可使用的磁盘空间

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 简介 df命令的英文全称即“Disk Free”,用于显示系统上可使用的磁盘空间。 日常普遍用该命令可以查看硬盘的挂载点,磁盘被占用了多少空间、还剩多少空间等信息。 默认单位为KB&#…

核心动画--基本动画

#pragma mark 动画暂停- (void)pauseAnimation{// 1. 取出当前的动画的时间点,就是要暂停的时间点CFTimeInterval pauseTime [self.myView.layer convertTime:CACurrentMediaTime() fromLayer:nil];// 2. 设置动画的时间偏移量,指定时间偏移量的目的是让…

du命令:显示文件或者目录的大小

以下内容源于网路资源的学习与整理,如有侵权请告知删除。 由于磁盘空间将满,需要整理磁盘时,想知道哪些文件夹的内容过大,以及删除一些无用文件,du命令会非常有用。在用户目录下输入“du --max-depth1 -h”查看哪些文…