一 . 前言

有时我们在写底部导航栏时,会有很多超链接,每个链接间用“|”分割,如下图:

可能刚入门的朋友会想到这样完成,再单独设置span的样式,

今天主要介绍怎么样用css3简单快速的完成这个效果(ie8不支持)

<a href="http://www.baidu.com">百度</a><span>|</span>
<a href="http://www.baidu.com">百度</a><span>|</span>
<a href="http://www.baidu.com">百度</a><span>|</span>
<a href="http://www.baidu.com">百度</a><span>|</span>

二 . css方法

1.选择 不是 a的父元素的最后一个子元素 的其他元素 设置after伪元素 内容为‘|’

a:not(:last-child):after {
content: '|';
}

解释读起来有点拗口,不过还是很好理解的,除了最后一个a标签,其他的后面都设置‘|’

至于两个a标签之间为什么有一点空隙,参考我之前的博客:两个inline-block消除间距和对齐

2.选择 不是 a的父元素的第一个子元素 的其他元素 设置before伪元素 内容为‘|’

a:not(:first-child):before {
content: '|';
}

除了第一个a标签,其他的前面都设置‘|’

逻辑上相当于第一种反过来,但是样式上差别还是很明显的,显示出了这个隐藏换行空格带来的间隙。

3. 不使用:not(),选择覆盖

a:after
{
content: '|';
}
a:last-child:after
{
content: '';
}

每个元素后面都设置“|”,而最后一个元素再设置为空,其实是前两种方法的又一次变形。

4.选择紧接在a元素后的兄弟a元素 设置before伪元素 内容为‘|’

a+a:before{
content: '|';
}

效果和方法类似于第二个,用了相邻兄弟选择器

三 . 配合dom操作

$("a:not(:last)").append(" | ");

css3巧用选择器配合伪元素的更多相关文章

  1. 如何使用CSS3中的结构伪类选择器和伪元素选择器

    结构伪类选择器介绍 结构伪类选择器是用来处理一些特殊的效果. 结构伪类选择器属性说明表 属性 描述 E:first-child 匹配E元素的第一个子元素. E:last-child 匹配E元素的最后一 ...

  2. css伪类选择器及伪元素选择器

    1.类选择器 在css中可以使用类选择器把相同的元素定义成不同的样式.比如: 结果如下: 标题背景未变 2.伪类选择器 类选择器和伪类选择器的区别在于,类选择器我们定义的,而伪类选择器是CSS中已经定 ...

  3. CSS中伪类选择器及伪元素

    1.伪类选择器 在CSS中,最常用的伪类选择器是使用在a(锚)元素上的几种选择器,它们的使用方法如下: a:link{color:#FF0000;text-decoration:none} a:vis ...

  4. 第91天:CSS3 属性选择器、伪类选择器和伪元素选择器

    一.属性选择器 其特点是通过属性来选择元素,具体有以下5种形式: 1.E[attr] 表示存在attr属性即可:    div[class] 2.E[attr=val] 表示属性值完全等于val:   ...

  5. CSS3新增选择器:伪元素选择器

    一.  ::first-letter 第一个字 二. ::first-line 第一行(以浏览器为准的第一行) 三. ::selection 被选中的字行(鼠标选中的字段)只能向 ::selectio ...

  6. CSS3新增(选择器{属性选择器,结构伪类选择器,伪元素选择器})

    1.属性选择器 属性选择器,可以根据元素特定的属性来选择元素,这样就不用借助 类 或者 id选择器. E [ att ]   选择具有 att 属性的 E 元素   例如:input [ value ...

  7. CSS选择器之伪类选择器(伪元素)

    selection [CSS4]应用于文档中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分).(IE8及以下不支持)(火狐-moz-selection) first-line 选择每个 < ...

  8. python 之 前端开发(基本选择器、组合选择器、 交集与并集选择器、序列选择器、属性选择器、伪类选择器、伪元素选择器)

    11.3 css 11.31 基本选择器 11.311 id选择器 根据指定的id名称,在当前界面中找到对应的唯一一个的标签,然后设置属性 <!DOCTYPE html> <html ...

  9. CSS伪类选择器和伪元素选择器

    CSS的伪类选择器常用的是link/visited/hover/active,分别对应未访问.已访问过.鼠标悬停.鼠标按下时的样式,常用于链接,使用时要按此顺序依次写CSS,不能乱 a:link{ba ...

随机推荐

  1. 【UOJ117】 欧拉回路(欧拉回路)

    传送门 UOJ Solution 无解 t=1,无向图,当且仅当\(\exists i \ \ in_i \ne out_i\) t=2,有向图,当且仅当\(\exists i \ \ in_i是奇数 ...

  2. git学习笔记 看廖大神视频小记

    1.创建一个空目录 $ mkdir gittemp $cd gittemp $pwd //x显示当前目录 2.$ git init 把这个目录变成git可以管理的仓库 多的一个隐藏的.git 目录 可 ...

  3. Drools规则引擎入门指南(三)——使用Docker部署Workbench

    其实本来我也是打算使用Tomcat来部署Workbench的,但是在网上看了几篇文章,超级繁琐的配置.各种版本.实在看不下去了索性就直接使用Docker来部署了.本次部署的版本是最新稳定版,对应dro ...

  4. sublimeText3编辑器 + 入门教程 + 使用大全

    sublimeText3编辑器 + 入门教程 + 使用大全 Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的的文本 ctrl+G:输入行号,可快速跳转该行 ctrl+p:输入冒号,在输入行 ...

  5. 第45节:Java当中的变量,面向对象

    Java当中的变量 01 Java当中的实例变量和类变量 什么是实例变量和类变量呢? 实例变量为没有用static修饰符修饰的变量,而类变量为用static修饰符修饰的变量. public class ...

  6. Kali学习笔记35:使用VBScript、PowerShell、DEBUG传输文件

    其实VBScript只是一个工具 本质是开启http服务提供下载的 首先我们开启http服务:阿帕奇 然后给上传一个文件做演示: 接下来就是编写VBScript: 这些内容全部输入完成之后: 传输 早 ...

  7. ARM debian的图形界面安装

    这里图形界面的安装比较简单,启动系统后,登录到root账户,首先要执行更新源的命令:apt-get update  然后直接执行下面的动作: 直接安装LXDE即可: 指令: apt-get insta ...

  8. muduo-ThreadLocal实现细节——阻止销毁未定义对象

    muduo利用pthread_key_t实现ThreadLocal模板类. 具体代码如下所示: template<typename T> class ThreadLocal : nonco ...

  9. aaa配置(第十三组)

    拓扑 网络情况 A PING B A PING C PC-B PING PC-C 2.R1的配置 a.console线 R1(config)#username admin1 password Admi ...

  10. node-sqlite3 学习笔记

    * 使用sqlite3持久化数据 * 需求:把一个数组中的每个对象,每个对象中的属性,存到xxx.db文件中去,像数据库一样的去操作它 * 功能:1. 创建数据库(数据库存在的话,那就直接打开) * ...