介绍

什么是CSS

CSS 是 Cascading Style Sheet(层叠样式表)的缩写。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS 不需要编译,可以直接由浏览器执行(属于浏览器解释型语言)。

历史

  • CSS 最早被提议是在1994年;
  • 最早被浏览器支持是1996年;
  • 1996年 W3C 正式推出了CSS1;
  • 1998年 W3C 正式推出了CSS2;
  • CSS2.1 是 W3C 现在正在推荐使用的;
  • CSS3 现在还处于开发中;
  • CSS 3 在包含了所有 CSS 2 所支持的基础上更有所改进,所以不必担心兼容问题。

CSS 支持多种设备,例如手机、电视、打印机、幻灯片等。但是 CSS 在浏览器上得到了更好的推广。

语法

selector {property: value;}

介绍 - 图1

引入方式

三种方式将样式表加入您的网页:

内联方式 Inline Styles

内联定义即是在对象的标记内使用对象的 style 属性定义适用其的样式表属性。
示例代码:

  1. <p style="color:#f00">这一行的字体颜色将显示为红色</p>

内部样式块对象 Embedding a Style Block

你可以在你的 HTML 文档的<head>标记里插入一个<style>块对象。
示例代码:

  1. <style>
  2. .test2 {
  3. color: #000;
  4. }
  5. </style>

外部样式表 Linking to a Style Sheet

你可以先建立外部样式表文件*.css,然后使用 HTML 的 link 对象。或者使用 @import 来引入。
示例代码:

  1. <!-- Use link elements -->
  2. <link rel="stylesheet" href="core.css">
  3. <!-- Use @imports -->
  4. <style>
  5. @import url("more.css");
  6. </style>

注意:在实际开发中,推荐使用 HTML 的 link 对象来引入。详细内容可以参见http://www.waylau.com/css-code-guide/#css-miscellaneous

选择器权重

介绍 - 图2

权重主要分为 4 个等级:

  • 第一等:代表内联样式,如: style="",权值为1000
  • 第二等:代表ID选择器,如:#content,权值为100
  • 第三等:代表类,伪类和属性选择器,如.content,权值为10
  • 第四等:代表类型选择器和伪元素选择器,如div p,权值为1

例子如下

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>选择器权重 | www.waylau.com</title>
  6. <meta name="description" content="选择器权重">
  7. <meta name="author" content="Way Lau, www.waylau.com"/>
  8. <meta name="viewport" content="width=device-width">
  9. <link rel="shortcut icon" href="/favicon.ico">
  10. <style type="text/css">
  11. #redP p {
  12. /* 权值 = 100+1=101 */
  13. color: #F00; /* 红色 */
  14. }
  15. #redP .red em {
  16. /* 权值 = 100+10+1=111 */
  17. color: #00F; /* 蓝色 */
  18. }
  19. #redP p span em {
  20. /* 权值 = 100+1+1+1=103 */
  21. color: #FF0; /*黄色*/
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="redP">
  27. <p class="red">red
  28. <span><em>em red</em></span>
  29. </p>
  30. <p>red</p>
  31. </div>
  32. </body>
  33. </html>

最终页面效果如下:

介绍 - 图3

优先级

遵循如下法则:

  • 选择器都有一个权值,权值越大越优先;
  • 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
  • 创作者的规则高于浏览者:即网页编写者设置的 CSS 样式的优先权高于浏览器所设置的样式;
  • 继承的 CSS 样式不如后来指定的 CSS 样式;
  • 在同一组属性设置中标有!important规则的优先级最大

例子如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>!important 用法 | www.waylau.com</title>
  6. <meta name="description" content="!important 用法">
  7. <meta name="author" content="Way Lau, www.waylau.com"/>
  8. <meta name="viewport" content="width=device-width">
  9. <link rel="shortcut icon" href="/favicon.ico">
  10. <style>
  11. .test {
  12. color: #f00 !important;
  13. color: #000;
  14. }
  15. .test2 {
  16. color: #f00 !important;
  17. }
  18. .test2 {
  19. color: #000;
  20. }
  21. .test3 {
  22. color: #000;
  23. }
  24. .test3 {
  25. color: #f00;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <div class="test">同一条样式内,!important 优先级高</div>
  31. <div class="test2">在分散的样式条目内,!important 优先级高</div>
  32. <div class="test3">没有被覆盖</div>
  33. </body>
  34. </html>

介绍 - 图4

源码

本文中所用例子源码参见
https://github.com/waylau/css3-tutorialsamples 目录下的 important.html、priority_rules.html

参考