1 什么是CSS?
CSS全称(Cascading Style Sheets)是一门指定文档该如何呈现给用户的语言。

2 为何使用CSS?

CSS 文档信息的内容和如何展现它的细节想分离,文档细节即为样式(style)。你可以将样式与内容进行分离出来,以便我们能够

  •   避免重复
  •   更容易维护
  •   为不同的目的,使用不同的样式而内容相同

3 CSS 如何工作的?

浏览器在展示一个文档内容的时候,必须要把文档和样式信息结合起来展示。这个处理过程一般分为两个阶段:

1 浏览器先将标记语言和CSS转换成DOM(文档对象模型)结构。这时DOM就代表了电脑内存中的相应文档,因为它已经融合文档结构和样式表

2 最后浏览器把DOM的内容展示出来。

4 层叠和继承?

一个元素的样式,可以通过多种方式来定义,而多种定义方式之间通过复杂的影响关系决定了元素的最终样式。这种复杂既造就了CSS的强大,也导致CSS显得如此“混乱”而且难以调试

对于层叠来说,共哟三种主要的样式来源

  1.   浏览器对HTML定义的默认样式
  2.   用户定义的样式
  3.   开发者定义的样式,可以有三种形式
    •     定义在外部的样式(外链样式):可以达到共用
    •     定义在页面头部的样式(内联样式):通过这种形式定义的样式,只能当前页面使用
    •     定义在特定元素身上的(行内样式):这种形式多用于测试,可维护性差

5 选择器(Selectors)

  标签选择器

  关系选择器

常见的基于关系的选择器
选择器 选择的元素
A E 任何是元素A的后代元素E (后代节点指A的子节点,子节点的子节点,以此类推)
A > E 任何元素A的子元素
E:first-child 任何元素的第一个子元素E
B + E 任何元素B的下一个兄弟元素E
B ~ E B元素后面的拥有共同父元素的兄弟元素E

  类选择器

  ID选择器

  伪类选择器

:link
:visited
:active
:hover
:focus
:first-child
:nth-child
:nth-last-child
nth-of-type
:first-of-type
:last-of-type
:empty
:target
:checked
:enabled
:disabled

提示:请使用

    :link 选择器对指向未被访问页面的链接设置样式,

    :visited 选择器用于选取已被访问的链接。

    :hover 选择器用于设置鼠标指针浮动到链接上时的样式

    :active选择器用于设置点击链接时的样式

其四种分别表示:链接 访问过的链接 悬浮在连接上 访问时(点击链接时)

:focus 表示元素获取焦点的

兼容性:

Chrome Firefox Internet Oper Safari
1.0 1.0 8.0 7.0 1.0

修饰表单元素状态:

  :checked,:enabled,:disabled

:checked 被选中时

:enabled  可用状态

:disabled 无效状态

enabled 表示任何启用的(enabled)元素。如果一个元素能够被激活(如选择、点击或接受文本输入)或获取焦点,则该元素是启用的。元素还有一个禁用的状态(disabled state),在被禁用时,元素不能被激活或获取焦点。

:target

  目标元素一般配合a链接使用,利用其锚点功能,表示当前锚点指向的目标对象

:empty

  表示没有内容的元素,例如 <hr/> <br/>

:first-child

  第一个子元素

:nth-child()

  从开始位置选择指定位置的子元素

  

      :nth-child(2) {
  color: red;
   } <div>
<p>111111</p>
<p>111111</p> //变红
<p>111111</p>
<p>111111</p>
</div>

:nth-last-child()

  从结束为止开始选择制定子元素

  

      :nth-last-child(2) {
color: red;
} <div>
<p>111111</p>
<p>111111</p>
<p>111111</p> //变红
<p>111111</p>
</div>

:nth-of-type()

  根据类型 当没有指定具体类型时,则全文查找相同类型的指定位置的元素给其添加样式
  

    <style>
:nth-of-type(4){
color:red;
}
</style> <a href="#d">aaaa</a>
<a href="#d">aaaa</a>
<a href="#d">aaaa</a>
<a href="#d">aaaa</a> //变红
<div>
<div>
111111111111
</div>
<div>
111111111111
</div>
<div>
111111111111
</div>
<div>
111111111111
</div> //变红
</div>

  也可以指定类型

    div:nth-of-type(4){
color:red;
} <a href="#d">aaaa</a>
<a href="#d">aaaa</a>
<a href="#d">aaaa</a>
<a href="#d">aaaa</a>
<div> <div>
111111111111
</div>
<div>
111111111111
</div>
<div >
111111111111
</div>
<div >
111111111111 //变红
</div>
</div>

  也可以指定范围(也就是父元素),例如下

   .parent div:nth-of-type(4) {
color: red;
} <div>
111111111111
</div>
<div>
111111111111
</div>
<div>
111111111111
</div>
</div>
<div>
111111111111
</div>
<div class="parent">
<div>
111111111111
</div>
<div>
111111111111
</div>
<div>
111111111111
</div>
<div>
111111111111
</div>
</div>

:first-of-type

  选择第一个子元素,这与frist-child 区别在于可以进行类型

  

    :first-child {
color: red;
} <p>111111</p>
<p>
<span>111</span>
</p>
<div>
<p>111111</p>
</div> 或 :first-of-type{
color: red;
} <p>111111</p>
<p>
<span>111</span>
</p>
<div>
<p>111111</p>
</div>

:last-of-type  先筛选例如先找出所有的兄弟节点p元素,再选择最后一个p元素

  

    p:last-of-type{
color: red;
}
<p>111111</p>
<p>
<span>111</span>
</p>
<div>
<p>111111</p> //变红
</div>
<p>
<span>111</span> //变红
</p>   //再看看这样的也行
  
     p:last-of-type{ color: red;
      }
<p>111111</p>
<p>
<span>111</span>
</p>
   <p>
    <span>111</span>  //变红
</p>
 <div> <p>111111</p> //变红 </div> 
 

而last-child不进行筛选,只有满足是父元素中并且是最后一个

   p:last-child{
color: red;
}
<p>111111</p>
<p>
<span>111</span>
</p>
<div>
<p>111111</p> //变红
</div>
<p>
<span>111</span> //变红
</p>
或者 p:last-child{
color: red;
}
<p>111111</p>
<p>
<span>111</span>
</p>
<p>
<span>111</span> //不变红
</p>
<div>
<p>111111</p> //变红
</div>

  

CSS 相关知识总结的更多相关文章

  1. CSS相关知识和经验的碎片化记录

    1.子DIV块中设置margin-top时影响父DIV块位置的问题 解决办法1:若子DIV块中使用margin-top,则在父DIV块中添加:overflow:hidden; 解决办法2:在子DIV块 ...

  2. css相关知识

    display: block; "块级元素". display: inline; "行内元素". display: none; "在不删除元素的情况下 ...

  3. CSS相关知识及入门

    CSS(层叠样式表) 作用 修饰HTML页面,美化 CSS代码规范 放置规范 在<style>标签内容体中书写样式代码 <style>标签放置在<head>标签内. ...

  4. CSS相关知识(持续更新中)

    1. 弹性布局 一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式.引入弹性布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间. 2. ...

  5. CSS的相关知识——背景,超链接,列表,表格,奇偶选择器

    接着上一篇总结一些css的相关知识 ㈠背景 背景属性 1.background-color 背景颜色   rgb函数设置 2.background-image   背景图片  url(“logo.jp ...

  6. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

  7. 【web前端面试题整理03】来看一点CSS相关的吧

    前言 昨天我们整理了14到js的题,今天我们再来整理14到CSS相关的题目,昨天整理时候时间有点晚了我便有点心浮气躁,里面的一些题需要再次解答,好了看看今天有些什么吧. PS:我这里挑一点来做就好了, ...

  8. css基本知识

    WANGJUN59451   css基本知识 1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HT ...

  9. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

随机推荐

  1. 安装软件配置VC++环境时常出现的问题--Error 1935.安装程序集

    装很多软件是都要配置VC++环境的,但由于系统注册表限制,很多时候软件安装过程中会报如下错误 安装 vc++2005 运行库 Error 1935.安装程序集 Microsoft.vc80.atl,t ...

  2. 软件工程师所需掌握的“终极技术”是什么?

    软件工程师所需掌握的"终极技术"是什么? http://yunli.blog.51cto.com/831344/1019990 最近,我在微博上看到@程序员邹欣老师发的一条微博 - ...

  3. Windows下使用ODBC API访问数据库之关键

    本文采用SQL2005 + VS2008环境,以ODBC API方式成功连接数据库. 1.SQL安装和环境配置 这部分网上随便搜一下都有很多资料,而且很容易就可以配置成功. 注意的关键点: SA账号配 ...

  4. 正则表达式,Regex类

    C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找到"OK" ...

  5. WCF Service端Inspector

    问题 在使用WCF的过程中,有时候需要在service端截取client和service之间的消息来做一些如写log,检查message是否合法的操作. 那么如何才能实现呢? 解决方案 使用WCF提供 ...

  6. php中对象的串行化

    我们大家有知道PHP串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据.文章这里就PHP串行化为大家详细的介绍.你在 ...

  7. MHA环境的搭建

    MHA简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  8. 转载--http协议学习和总结

    http的了解一直停留在一知半解的程度,今天看到阿蜜果大大的博客,果断学习了,这里做个转载,希望阿蜜果大大不要怪罪~~ 3.1 Cookie和Session Cookie和Session都为了用来保存 ...

  9. FMDB官方使用文档-GCD的使用-提高性能(翻译)

    FMDB官方使用文档-GCD的使用-提高性能(翻译) 发布于:2013-08-19 10:01阅读数:13395 由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍.与此 ...

  10. C语言编程时常犯十八个错误

    C语言的最大特点是:功能强.使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经 ...