概述:Bootstrap的CSS组件的核心就是选择器的定义以及在各自优先级上的处理。由于大部分的选择器都非常的常见就一笔带过了,这里重点介绍一下Bootstrap用到的知识点。

一、优先级

之前我们使用CSS的时候知道样式有三种,分别是行内样式、内嵌样式、外部样式,它们的优先级是 行内>内嵌>外部。

OK,现在我们将Bootstarp的优先级,如何确定CSS的优先级?这里我们要先引入一个机制,分别用4个数字(a,b,c,d)表示优先级组合,

比如1,1,1,1和0,1,0,1。它们的意思分别是:

  1. 第一个数字(a)表示style属性,优先级最高。由于一般都是class样式,所以该值一般都是0。
  2. 第二个数字(b)表示该css选择器上的id数量的总和,一般都是1个。
  3. 第三个数字(c)是用在改css选择器上的其他属性css选择器以及伪类的总和。这个里包括class(.btn)和属性css选择器(比如li[id=red])。
  4. 第四个数字(d)计算元素(就像table、p、div等)和伪元素(就像first-child等)。
  5. 通用css选择器(*)是0优先级。
  6. 如果两个CSS选择器有同样的优先级,在样式表中后面的那个起作用。

下面有几个例子和对应的优先级,看表说话:

表1-1 选择器和所对应的优先级
选择器 优先级   
#menu h2 0,1,01
h2.titile 0,0,1,1
h2+p 0,0,0,2

同理,计算下面两个选择器的优先级:

#leftbar li#first { color:red}

#leftbar li:first-child{ color:blue}

结果肯定是第1个比第2个优先级高,因为第1个优先级是0,2,0,1,而第2个是0,1,0,2。

二、选择器

每一条CSS样式的定义都有两部分组成,形式如下:选择器{样式}。在{}之前的部分就是"选择器"。"选择器"指明了应用这些"样式"的网页元素。

  1. 属性选择器

    Bootstarp的CSS组件里使用了很多属性选择器,比如[data-toggle^=button]、[data-toggle=toggle]等。属性选择器有多种用法,下面列出了这些用法的区别:

表1-2 常见属性选择器用法
            选择器          用法
[att=value] 该属性有指定的确切值
[att~=value] 该属性值必须是多个用空格隔开的值,比如,class="title featured home",而且这些值中的一个必须是指定的值"value"
[att|=value]  属性的值就是"value"或则以"value"开始并立即跟上一个"-"字符,也就是"value-",比如lang="zh-cn"
[att^=value] 该属性的值必须以指定的值开始
[att$=value] 该属性的值必须以特定值结束
[att*=value] 该属性的值必须包含特定值(而无论其位置怎么样)

  

  2.子选择器

     CSS里的子元素用符号">"表示。如下实例是表示拥有table样式的表格,其thead元素内的tr元素如果有th的话,则应用该样式

.table > thead > tr > th {
  vertical-align:bottom;
  border-bottom:2px solid #dddddd;
}

  3.兄弟选择器

    兄弟元素分为两种,一种是临近兄弟,一种是普通兄弟。临近兄弟的选择符用"+" 表示。比如导航条里要设置两个li之间的外边距,则需要如下定义:

.nav-pills > li + li {
margin-left:2px; /*加大左外边距*/
}

    如果只想查找某一个指定元素后面的兄弟节点(而不限制于临近节点),可以使用普通兄弟节点的符号"~"。比如:

.article h1 ~ p {
font-size:13px;
}

三、伪类

  CSS提供了非常多的可用伪类,但是Bootstrap只用了常用的几个,这里我们只简单列一下常用的伪类和其对应的意思,具体看表说话:

表1-3 CSS3中常见伪类
属性 描述
:hover 鼠标滑过时的状态
:focus 元素拥有焦点时的状态
:first-child 指定某一个元素的第一个子元素
:last-child 指定某一个元素的最后一个子元素
:nth-child() 指定某个元素的一个或多个特定的子元素,可以传入数字,也可以传入even(偶数)或odd(奇数)

  

举个例子,按钮组里,除第一个按钮、最后一个按钮和带有dropdown-toggle样式的元素外,其他btn样式的按钮都不能设置圆角。使用如下代码:

.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle){
border-radius:0;
}

注意:多个伪类可以一起使用。

Bootstrap的优先级、选择器、伪类的更多相关文章

  1. CSS 基础知识点 样式 选择器 伪类

    CSS 基础知识点汇集 版权声明:这篇博客是别人写的,大神博客地址 : https://www.cnblogs.com/Mtime/p/5184685.html 1.CSS 简介 CSS 指层叠样式表 ...

  2. python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)

    一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...

  3. HTML+CSS教程(五)外联样式、组选择器、圆角边框、样式优先级、伪类、盒子模型、元素溢出

    一.外联样式 通过link标签引入外部css文件夹中的xxx.css文件到head标签中 例: 二. 1.组选择器 选择器名称1,选择器名称2,选择器名称3,…{属性:属性值;属性;属性值} 例: & ...

  4. 李洪强和你一起学习前端之(5)css书写位置 优先级和伪类

    亲爱的,时间过得真快,不知不觉我们一起学习前端已经4天了,这4天的时间里,我们是不是收获很大呢,每当我们学习一个新的知识点的时候,每当我们做出一个新的东西来的时候,我们是不是欣喜若狂,世界从来否不会辜 ...

  5. CSS3 选择器——伪类选择器

    前面花了两节内容分别在<CSS3选择器——基本选择器>和<CSS3选择器——属性选择器>介绍了CSS3选择器中的基本选择器和属性选择器使用方法,今天要和大家一起学习CSS3选择 ...

  6. CSS的总结(选择器,伪类等...)

    关于组合选择器可参考:http://www.cnblogs.com/starof/p/4453458.html 主要内容 CSS概述 CSS和HTML结合的四种方式 CSS样式优先级和代码规范 CSS ...

  7. CSS 选择器之基本选择器 属性选择器 伪类选择器

    CSS 选择器 常见的选择器列表图 CSS选择器笔记 基本选择器 通配符选择器(*) 元素选择器(E) 类选择器(.className)    所有浏览器都支持类选择器,但多类选择器(.classNa ...

  8. 前端笔记之HTML5&CSS3(中)选择器&伪类伪元素&CSS3效果&渐变背景&过渡

    一.CSS3选择器 CSS3是CSS的第三代版本,新增了很多功能,例如:强大的选择器.盒模型.圆角.渐变.动画.2D/3D转换.文字特效等. CSS3和HTML5没有任何关系!HTML5骨架中,可以用 ...

  9. 前端 CSS的选择器 伪类选择器

    伪类选择器 常用的几种伪类选择器. 伪类选择器一般会用在超链接a标签中 没有访问的超链接a标签样式: a:link { color: blue; } <!DOCTYPE html> < ...

  10. HTML5新标签使用及CSS选择器(伪类)

    这些标签能够让搜索引擎更直接的解析页面内容. <header></header>语义:文档或者页面的头部 <nav></nav>语义:导航这两者不是组合 ...

随机推荐

  1. Mysql学习笔记(六)增删改查

    PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values(" ...

  2. 初涉SQL Server性能问题(4/4):列出最耗资源的会话

    在上3篇文章里,我们讨论了列出反映服务器当前状态的不同查询. 初涉SQL Server性能问题(1/4):服务器概况 初涉SQL Server性能问题(2/4):列出等待资源的会话 初涉SQL Ser ...

  3. C#对象与XMl文件之间的相互转换

    C#提供三种序列化方式,分别为: 1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于Binar ...

  4. [Architect] Abp 框架原理解析(3) DynamicFilters

    本节目录 介绍 定义Filter 设置Filter 这是Abp中多租户.软删除.激活\禁用等如此方便的原因 Install-Package EntityFramework.DynamicFilters ...

  5. Android --- 斗地主 [牌桌实现源码]

    1.主Activity <span style="font-size:18px;color:#3333ff;">package com.bison; import an ...

  6. 加密–RSA前端与后台的加密&解密

    1. 前言 本问是根据网上很多文章的总结得到的. 2. 介绍 RSA加密算法是一种非对称加密算法. 对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法 ...

  7. WebApi传参总动员(二)

    上篇,从最简单的string入手.本篇演示了从请求的输入流中获取实体.api: public class ValuesController : ApiController { [HttpPost] p ...

  8. 百度FIS入门

    1.fis作为nodejs的模块来管理的,所以首先得安装nodejs,看我前面的安装nodejs的文章. 2.官方的案例下载包https://github.com/hefangshi/fis-quic ...

  9. [c#] const 与 readonly

    c# 中 const 与 readonly 关键字看似相同,实则不同.重点在于确定值的时间. const const 很简单,就是一个常量,不可以被 static 修饰,因为被 const 修饰的字段 ...

  10. FL2440驱动添加(5)ADC驱动学习笔记

    由图可知,模拟ADC分为两部分功能,一部分是触屏功能,另一部分就是普通ADC功能.分别可以产生INT_TC和INT_ADC 两个中断.该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0. ...