码迷,mamicode.com
首页 > Web开发 > 详细

《CSS权威指南》读书笔记

时间:2016-04-16 00:28:03      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:

一、css和文档
层叠
css规定了冲突规则,这些规则统称为层叠。这些规则定义了样式发生冲突时以优先级高的为准。
常用的优先级判定:
1. 开发者样式>读者样式>浏览器样式(除非使用!important标记 )
2. id选择符>(伪)类选择符>元素选择符
3. 权重相同时取后面定义的样式

元素
元素(element)是文档结构的基础。在css中,元素通常分为两种形式:替换元素和非替换元素
替换元素是指用来替换元素内容的部分并非由文档内容直接表示,如img、input都是由属性来替换元素中的内容。非替换元素内容由用户代理(一般为浏览器)在元素生成的框中显示,如span、 li等标记直接显示文档内容。
此外,css还将元素分成:块级元素和行内元素.
块级元素生成一个元素框,默认会填充其父元素的内容,旁边不能有其它元素,如标记p和div。行内元素在一个文本行内生成元素框,而不会打断这行文本,如标记a、strong和em等。

link标记
允许HTML创作人员将包含link标记的文档与其他文档关联,css使用这个标记来链接样式表和文档,格式:

<link rel=”stylesheet” type=”text/css” href=”test.css” media=”all”>

Rel: 指定文档和被链接文档之间的关系,其中stylesheet表示文档的外部样式表。
type:被链接文档的 MIME 类型
href:被链接文档的位置
media:指定被链接文档显示的设备

style元素和@import指令
可以用style元素包含样式表,实现和link类似的效果。css要求@import指令出现在样式表中的其它规则之前,如果出在其它指令之后,兼容用户代理(IE除外)会将其忽略,考虑到用户需求必须放在其它css规则之前。

<style type=”text/css”><!--
@import url(test.css); /*@import must be first*/
@import url(css/sheet2.css) all;
body{color:red;}
h1{color:blue;}
--></style>

  其中url可以使用相对和绝对的地址,在末尾可以指定链接文档显示的设备。为了满足向后可访问性,避免较老的浏览器因为<style>标记无法识别忽略后而将其中内容以文本形式直接显示在页面上,可以在style参数内部添加<!-- //… -->。这样较老的浏览器不仅会忽略style标记,还会忽略声明,因为HTML注释不会显示出来,而理解css的浏览器仍然能正常读取样式表。

小知识点:
   css支持通过/*……*/格式来进行注释,但不允许嵌套注释.
    单个元素可通过style属性指定样式,而不需要嵌套或外部样式表,这种样式被称为内联样式,除了body外部出现的标记,style属性可以和任何其它HTML标记关联。不过目前不推荐使用内联样式(与font类似)

二、选择器

css规则结构

  css能向文档中的一组元素类型应用特定规则。每个规则都有两个基本部分:选择器和声明块,声明块由一个或者多个声明组成,每个声明则是一个属性-值对,每个样式表由一系列规则组成,结构见下图:

  技术分享
  其中选择器定义了影响文档中的部分。声明块指定被影响文档的显示效果。如图中指定所有h1元素为黄色背景,红色文本。
  文档的元素是最基本的选择器。如 html {color:black;}

声明和关键字
  声明块包含一个或者多个声明。声明总有如下格式:”属性:值;”,冒号和分号后面可以有0或者多个空格。其中值要么是关键字,要么是该属性可取关键字的一个列表(包含一个或者多个关键字,如果一个属性取了多个关键字,关键字之间用空格分隔)。p {font:medium Helvetica;}
  如果声明了不正确的属性或者不正确或者属性,整个声明都会被忽略。

选择器分组和声明分组
  分组用于多个元素应用同一个样式。为达到这个目的,最容易的做法如下:h2,p {color: gray;} 将h2和p放在声明块的左边,并用逗号来分隔这样就定义了一个规则,其右边的样式就应用于这两个选择器所引用的元素。其中逗号告诉浏览器,规则应用于不同的选择器。
  当然也可以将声明分组,实现选择器应用多个样式:

h1,p {
    font:18px Helvetica; 
    color:purple; 
    background:aqua;
}        

  css2引入一种新的简单选择器,称为通配选择器,显示为一个星号(*)。这个选择器可以和任何元素匹配,就像是一个通配符,如要让一个文档每个元素都是红色:* {color: red;}这个声明等价于列出文档中所有元素的一个分组选择器。

  从技术上讲没有必要最后一个声明也以分号结尾,不过添加是一个好的实践方法,所以只要出现规则,就要在声明的最后加一个分号。


类选择器和ID分组
  除了指示文档元素(如p, h1)外,还有两种另外的选择器:类选择器(class selector)和ID选择器(ID selector),当然在使用它们之前,需要修改具体的文档标记,以便其正常工作。
  类选择器的实现实例:

<!Doctype html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css"><!--
        .warning {font-weight: bold;}
        .urgent{font-style: italic;}
        p.warning.urgent{background:silver;}
        span.warning {font-style: italic;}
    --></style>                            
    <title>index.html</title>
</head>
<body>
    <p class="warning urgent">When handling.....</p>
    <p class="warning">care must be taking......</p>
    <p>With plutonium, <span class="warning"> the possibility.....</span>.This......</p>
</body>
</html>

  应用于全部的类选择器,就可以使用通配符:*.warning {font-weight: bold;}, 当然如果选择所有类名相同的元素,类选择器中通配符可省略。当然我们也可以指定不同文档, 在HTMl中,一个class也有可能含有一个词列表,各个词中间用空格分隔。

《CSS权威指南》读书笔记

标签:

原文地址:http://www.cnblogs.com/zc110747/p/5393894.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!