CSS全称层叠样式表,它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。是能够真正做到网页表现与内容分离的一种样式设计语言,能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。

CSS规则

CSS规则实际上就是一条完整的CSS指令,规则声明了要修改的元素和应用给该元素的样式

为HTML文档添加CSS规则

有三种方法为HTML文档添加CSS规则:行内样式、嵌入样式、链接样式表

①行内样式:写在HTML元素的标签里,比如:

<P style="font-size: 20px;color: green;">This is a demo!</P>

②嵌入样式:写在<style>标签里,一般嵌入在<head>元素内

    <style type="text/css">
P{color: blue;font-size: 30px;} </style>

③链接样式表:写在以.css结尾的单独样式表文件中,使用<link>标签进行链接

<link href="*.css" rel="stylesheet" type="text/css">

三种方法的应用范围

行内样式:只能影响它所在的标签,并且总是覆盖嵌入样式和链接样式的

嵌入样式:能影响当前的页面,但总是覆盖链接样式,并总被行内样式覆盖

链接样式:能影响到整个网站,只需使用<link>标签指定样式表即可,但链接样式总会被行内样式和嵌入样式覆盖

PS:我们还可以使用@import指令,在样式表中引用其他样式表

CSS文档由一系列CSS规则组成,一条CSS规则实际上就是一条CSS指令,这条指令先选择HTML元素,然后设定选择元素的样式

下面是一条简单的CSS规则,它把段落背景色设置为绿色

p{background-color: green}

CSS基本规则

一条CSS规则由选择符+声明两部分组成

选择符:指出要选择的元素

声明:由属性和值组成,属性指出影响元素哪方面样式,值其实就是属性的一种状态

在上面的例子中可以看出一条规则从左到右依次是:选择符、左花括号、属性、冒号、值、右花括号

对基本规则扩展1:多个声明包含在一条规则中

p{color: green;font-size: 45px;font-weight: bold}

每个声明后加一个分号,以示分隔

对基本规则扩展2:多个选择符组合在一起

h1,h3,p{color: green;font-size: 45px;font-weight: bold}

选择符之间用逗号分隔

对基本规则扩展3:多条规则应用于同一选择符

h1,h3,p{color: green;font-size: 45px;font-weight: bold}

现在我们想让p段落的背景色为蓝色,可以继续添加一条规则

p{background-color: blue}

CSS选择符分类

所有用于选择特定元素的选择符分为三种:上下文选择符、ID和Class选择符、属性选择符

上下文选择符

上下文选择符是一种考虑HTML文档结构的选择符,上下文选择符也叫后代组合式选择符,是以空格分隔标签名的,其格式为:

标签1  标签2 {声明}

只有当标签1作为祖先元素存在时,标签2才会被选中

上下文选择符的最大好处就是可以方便的实现基于位置为HTML元素添加样式,在默认情况样式是应用到页面中的所有元素的,但有时需要给不同“位置”的元素应用不同的样式,比如想给位于article和aside标签中的p标签,分别设置不同的样式(不同颜色)

下面是要演示的HTML文档

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<article>
<p>demo in article!</p>
</article>
<aside>
<p>demo in aside!</p>
</aside>
<p>This text is very important!</p>
<P style="font-size: 20px;color: green;">This is a demo!</P>
</body> </html>

HTML文档

如果只使用

p{color: red;}

两个段落都会变成红色

而通过上下文选择符就可以实现基于“位置”的不同的样式

article p{color: red;}
aside p{color: green;}

效果

特殊的上下文选择符

① 子选择符 >

标签1 > 标签2
标签2必须是标签1的直接子元素,不能有其他父元素
 <section>
<p>
This is a demo p in section
</p>
</section>
<article>
<p>
This is a demo p in article
</p>
</article>

HTML示例代码

section p{color: red}
article p{color: green}
② 紧邻同胞选择符 +
标签1 + 标签2
标签2必须紧跟在同胞标签1的后面
 <article>
<h1>An H1 title</h1>
<p>
This is a demo p in article
</p>
<h2>An H2 title</h2>
<p>text is a demo</p>
</article>

HTML示例代码

h1+p{color: green}

这段代码运行后,只有h1后面的p会被选中,而h2后面的p不会被选中

③ 一般同胞选择符 ~
 标签2跟着同胞标签1的后面,不必紧跟
 <article>
<h1>An H1 title</h1>
<p>
This is a demo p in article
</p>
<h2>An H2 title</h2>
<p>text is a demo</p>
</article>

HTML示例代码

h1~p{color: green}

运行这段代码后 h1和h2后面的p都会被选中

④ 通用选择符*
*一个通配符,匹配任何元素,它有一个非常有用的用法,那就是构成非子选择符
 <article>
<h1>An H1 title</h1>
<p>
This is a demo p in article
</p>
<h2>An H2 title</h2>
<p>text is a demo</p>
</article>

HTML示例代码

h1~*{color: green}

运行这段代码后h1后面的所有元素都会被选中

下面是上下文选择符总结结构图

class和id选择符

CSS上下文选择符为我们提供了基于位置的定位,而class和id选择符则为了提供了另一套选择元素的方法,使用class和id选择符,不用再考虑文档的层次结构,只需要给HTML元素添加class或id属性即可(可以给id和class属性设置任何值,但不能以数字或特殊字符开头)

class属性

基本上每个HTML元素都有class属性,可以按如下方法给HTML元素添加class属性

 <body>
<article>
<h1 class="specialtext">this is a Special text!!</h1>
<p>demo in article!</p>
</article>
<aside>
<p class="specialtext">demo in aside!</p>
</aside>
</body>

使用class选择符很简单,格式如下

.类名

为特定的类添加样式、

p{color: red;}
.specialtext{font-size: 30px;color: blue;}

输出如下

标签带类的选择符

还可以这样写

p.specialtext{font-size: 30px;color: blue;}

上面代码只会选中带有specialtext类的段落,至于标题则不会被选中

多类选择符

可以给class属性设置多个值,构成多类选择符,用于特选

.specialtext{font-size: 30px;color: blue;}

这段代码会同时选中article中的h1和aside中的p段落,利用多类可以单独选中其他的某个元素

.specialtext.hidetext{font-size: 20px;color: green;}

以上代码只会选中h1而不会选中p元素,需要注意的是,多类名之间没有空格

下面是类选择符用法总结

id属性

id选择符格式是

#属性名{css样式}

除了前面的" . "变成了"  # " 其他id属性用法与class属性用法相同

class和id的区别

class用于标示一组具有相同特征的元素;id用于在页面中唯一标示一个元素

1.id可以完成同一页面内的导航

2.同一个页面内的id值是唯一的,而class值可以有多个,比如多类选择符

3.用class标示一组具有相同特征的元素,比如下面把boy设置成蓝色,girl设置成红色

部分示例如下

<nav>
<ul>
<li class="boy"><a href="#">Tom</a></li>
<li class="girl"><a href="#">Angela</a></li>
<li class="boy"><a href="#">Jack</a></li>
<li class="girl"><a href="#">Anne</a></li>
<li class="boy"><a href="#">Justin</a></li>
</ul>
</nav>

CSS样式

.boy a{color: blue;}
.girl a{color: red;}

运行效果

用id实现同一页面导航

<a href="#playvedio">视频</a>
<article>
<h1 class="specialtext hidetext">this is a Special text!!</h1>
<p>demo in article!</p>
</article>
<aside>
<p class="specialtext">demo in aside!</p>
</aside>
<video id="playvedio" src="movie.ogg" controls="controls">
您的浏览器不支持 video 标签。
</video>

当点击【视频】链接时候,会自动跳转到视频播放界面

如果想返回页面的顶部,只需给id属性“ # ”即

属性选择符

属性选择符用于选中任何带有指定属性的标签

标签名 [属性名]  

带有这个属性的标签被选中

属性值选选择符

带有指定属性并且赋值的标签才会被选中

一.CSS工作原理的更多相关文章

  1. [转] 深度解剖DIV+CSS工作原理

    本文和大家重点讨论一下DIV+CSS工作原理,在一般情况的DIV+CSS开发静态html网页时,我们把html和CSS是分开的,形成html页面和CSS文件. DIV+CSS原理解剖 在一般情况的DI ...

  2. CSS 基础:CSS 工作原理(2)<思维导图>

    这段时间利用一下间隙时间学习了CSS的基础知识,主要目的是加深对CSS的理解,虽然个人主要工作基本都是后台开发,但是个人觉得系统学习一下CSS的基础还是很有必要的.下面我学习CSS时做的思维导图(全屏 ...

  3. css读书笔记2:css工作原理

    css就是一种先选择html元素,然后设定选中元素css属性的机制.css选择符合要应用的样式构成一条css规则. 为文档添加样式的3种方法: 1.行内样式,直接写在特定标签的style属性中:2.嵌 ...

  4. How Javascript works (Javascript工作原理) (十三) CSS 和 JS 动画底层原理及如何优化其性能

    个人总结:读完这篇文章需要20分钟. 这是 JavaScript 工作原理的第十三章. 概述 正如你所知,动画在创建令人叹服的网络应用中扮演着一个关键角色.由于用户越来越注重用户体验,商户开始意识到完 ...

  5. 《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

    在上篇文章中,我们介绍了渲染流水线中的 DOM 生成.样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段. 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染 ...

  6. 《浏览器工作原理与实践》<05>渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?

    在上一篇文章中我们介绍了导航相关的流程,那导航被提交后又会怎么样呢?就进入了渲染阶段.这个阶段很重要,了解其相关流程能让你“看透”页面是如何工作的,有了这些知识,你可以解决一系列相关的问题,比如能熟练 ...

  7. JavaScript 工作原理之十三-CSS 和 JS 动画底层原理及如何优化其性能

    原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十三章. 概述 正如你 ...

  8. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  9. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

随机推荐

  1. WM_QUIT,WM_CLOSE,WM_DESTROY 消息出现顺序及调用方式

    http://bbs.ednchina.com/BLOG_ARTICLE_3005455.HTM VC中WM_CLOSE.WM_DESTROY.WM_QUIT消息出现顺序及调用方式 wxleasyla ...

  2. SpinLock 自旋锁, CAS操作(Compare & Set) ABA Problem

    SpinLock 自旋锁 spinlock 用于CPU同步, 它的实现是基于CPU锁定数据总线的指令. 当某个CPU锁住数据总线后, 它读一个内存单元(spinlock_t)来判断这个spinlock ...

  3. Binary Search

    Binary Search                              [原文见:http://www.topcoder.com/tc?module=Static&d1=tuto ...

  4. 编写一个JavaScript函数 parseQueryString,把URL参数解析为一个对象

    var url="http://www.taobao.com/index.php?key0=0&key1=1&key2=2"; function parseQuer ...

  5. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  6. Codeforces Educational Codeforces Round 3 E. Minimum spanning tree for each edge LCA链上最大值

    E. Minimum spanning tree for each edge 题目连接: http://www.codeforces.com/contest/609/problem/E Descrip ...

  7. 【好文翻译】测试必看:使用Spire.XLS来生成自动化报表!

    Download C# project - 7.1 KB 介绍  在我的编程博客中,我经常会比较不同算法或原理的性能特征.我常常会把性能日志(如花费时间)输出到控制台或者文本文件,然后复制到电子表格中 ...

  8. UTF-8 BOM(EF BB BF)

    原标题:link标签和script标签跑到body下面,网页顶部有空白,出现“锘匡豢”乱码,UTF-8 BOM,EF BB BF 来自:http://tunps.com/link-and-script ...

  9. dsPIC33EP ADC模块初始化及应用实例

    //文件名 p33adc.h #ifndef _P33ADC_H_ #define _P33ADC_H_ //#include "p33adc.h" //--AD1CON1 #de ...

  10. swift:自定义UICollectionViewFlowLayout

    写作目的 UICollectionView是ios中一个十分强大的控件,利用它能够十分简单的实现一些很好看的效果.UICollectionView的效果又依赖于UICollectionViewLayo ...