`

CSS语法简单入门

 
阅读更多

 

整体组成

在CSS中,顶层元素被称为Rule,而CSS中的Rule又分为2类:CSSStyleRule和CSSAtKeywordRule。

CSSStyleRule是最基本的,即我们最常见的,由选择器+属性+值组成的部分,以下就是一个简单的示例:

#nav>li~li {
    float: left;
    margin-left: 7px;
    padding-left: 7px;
    border-left: 1px solid blue;
}

而CSSAtKeywordRule则是另一类,这个名词是我起的,事实上在w3c给出的JAVA API中,他被分成很多个类:

  • CSSCharsetRule – 代表@charset。
  • CSSFontFaceRule – 代表@font-face。
  • CSSImportRule – 代表@import。
  • CSSMediaRule – 代表@media。
  • CSSPageRule – 代表@page。
  • CSS3又加了一个CSSAtNamespaceRule,但是由于针对CSS3的w3c JAVA API还未完成,这里没有相关的页面,其代表的是@namespace。

一目了然,所谓CSSAtKeywordRule,就是以@起始的那一批关键字类型的规则,CSS3一共就规定了以上6个,不多不少。

除了CSSStyleRule和CSSAtKeywordRule以外的,所有不能正确解释的,统统被称为CSSUnknownRule,这个自然没有太大的意义,就不详细说明。

元素顺序

CSS对元素的顺序没有太大的要求,多数位置可以出现在任意位置,出现任意的次数,除了2个特例:

  • @charset只能出现在文档头部,前面不能有任何字符。
  • @import必须出现在@charset(如果有的话)之后,其他规则之前,当然可以有多个。
  • @import不能出现在大括号之间(语法上称为block内部)。

因此一个CSS文档的顺序基本是这样的:

  1. @charset声明。
  2. @import引入其他样式。
  3. 其他规则任意次序任意次数依次叠放。

CSSAtKeywordRule

着重讲解一下几个CSSAtKeywordRule的定义:

@font-face

嵌入字体,在CSS3被大肆宣传的今日,开发者应该蛮熟悉了,用src指定地址,用font-family指定名称,如:

@font-face {
    font-family: "Title Only";
    src: url(xxx.ttf) format("truetype");
}

具体可以看看这里,有很详细的介绍。

@media

指定样式作用的媒体类型,如screen代表屏幕、projection代表投影仪等,需要注意的是@media是一个可嵌套规则的规则,即他本身就带有类似CSS文档的效果,内部可以定义其他的规则,因此以下代码是合理的:

@media projection {
    /* 长得就像一份完整的CSS文档 */
    body {
        width: 960px;
        background-color: #efefef;
    }
}
@page

根据标准,是给Paged Media使用的,在探寻过程中,发现基本可以认为是给打印机用的特定样式规则,其内部使用一些比较特殊的属性,以下是个简单的列表:

  • size – 指定页面大小,或者A4、B5之类的预设大小,也可以是landscape或portrait指定打印方向。
  • margin – 已经不是指元素的边距了,指定打印时的页边距。
  • background、border、padding、color、font、text等都指打印时的效果。

CSSStyleRule

然后是重头戏CSSStyleRule,CSS中真正起作用的还不就是那些属性+值的样式么。一个CSSStyleRule的组成如下:

Selector { CSSStyleDeclaration* }

关于选择器即Selector,CSS3标准的相关章节中有详细的介绍,本文不考虑这方面的展开了。

CSSStyleDeclaration就是一个键值对,他的组成如下:

property : value;

需要注意的是分号不能省略,CSS可不像javascript一样有自动分号补全功能,事实上在CSS中不存在换行符的特殊处理,换行符会被当空格同等对待,所以下面这样的样式:

div {
    background: red
    padding: 3px;
}

会等同于:

div {
    background: red padding: 3px;
}

padding:3px分别被认为是属性background的值的一部分,根据CSS3的定义,分别对应background-imagebackground-position属性,形成非法的样式值。因此分号是CSS的同一个CSSStyleRule内多个并列样式间的唯一的分隔符,不可省略。唯独一个CSSStyleRule中的最后一个Declaration的分号可以省略,因为其后其父规则已经结束了。

值类型

CSS也是有数据类型的,大致有这么几类:

  • 数字,即普通的数字,可以带负号,可以有小数。
  • 长度,有3个相对单位,分别是em、ex和px;5个绝对单位,分别是in、cm、mm、pt、pc。
  • 百分比,数字后跟一个百分号就行了。
  • URL/URI,使用一个叫url的函数来定义,如url(http://www.google.com)。
  • 计数器:大概有人用过,但用得不广泛,用来给ol标序号的时候用得比较多吧。
  • 颜色:CSS2规定的颜色是RGB色,到了CSS3变成RGBA,颜色的表示形式有#rgb[a]、#rrggbb[aa]、rgb[a](r, g, b, [a])这么几种,注意#ff009不是一个合法的颜色,因为即不符合3|4位,也不符合2*(3|4)位。
  • 角度,有3个单位,分别是deg、grad、rad。
  • 时间,单位有ms和s。
  • 频度,真没见用过,单位有Hz和kHz。
  • 字符串,使用配对的双引号或单引号包含,内部的引号要转义,这是基本常识。CSS支持多行字符串,\后紧跟换行即可。不过要注意的是,CSS中的多行字符串里的换行符好像会被忽略掉,真正要用到换行符的时候,使用\A来代表一个换行符。

总结

以下是一般性的、以阅读为目的的总结,并不是对标准语法的描述:

CSS文档的组成:

CSSDocument :
    CSSAtCharsetRule? +
    CSSAtImportRule* +
    [CSSStyleRule | CSSAtMediaRule | CSSAtPageRule]*

CSSStyleRule的组成:

CSSStyleRule :
    Selector +
    { +
    CSSDeclaration* +
    }

CSSDeclaration的组成:

CSSDeclaration :
    Property +
    : +
    Value +
    ;

CSSAtMediaRule的组成:

CSSAtMediaRule :
    @media +
    CSSMediaType+ +
    { +
    [CSSStyleRule | CSSAtMediaRule | CSSAtPageRule]* +
    }

分享到:
评论

相关推荐

    CSS基础-介绍及语法

    CSS基础-介绍及语法,css入门必备资料

    css入门入门入门入门

    01_CSS快速入门.mp4可能涵盖了CSS的基础知识,包括选择器的使用、盒模型、浮动和定位,这些都是CSS初学者需要掌握的基础技能。盒模型定义了元素的尺寸,包括内容、内边距、边框和外边距。浮动和定位则是布局中的重要...

    html5+css3从入门到精通

    学习HTML5+CSS3,首先要理解这两种语言的基本语法和结构,然后通过实际项目练习,熟悉各种新特性的使用。从简单的静态页面做起,逐渐挑战动态交互和响应式设计。阅读官方文档,参加在线课程,查看示例代码,都是快速...

    CSS入门基础经典教程

    **三、CSS语法** **1. 外部引用CSS** 外部CSS文件通常保存为`.css`格式,通过HTML的`<link>`标签引用: ```html <link rel="stylesheet" type="text/css" href="styles.css"> ``` **2. 内部引用CSS** 内部样式...

    CSS快速入门 中文 手册

    ### CSS语法 CSS的语法规则通常为: ``` 选择符 { 属性1: 值1; 属性2: 值2; ... } ``` ### CSS引入方式 - **内联样式(Inline)**:直接在HTML元素的`style`属性中定义,如`;">文本</p>`。 - **内部样式...

    CSS快速入门.doc

    ### CSS快速入门知识点详解 #### 一、CSS简介 - **定义**:CSS全称为Cascading Style Sheets,即层叠样式表。它是一种用来控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 - **作用**:通过CSS,...

    CSS.HTML.JS(入门语法).

    1. **基础语法**:变量、数据类型、运算符、流程控制(条件语句、循环)。 2. **函数**:定义、调用函数,理解作用域和闭包。 3. **DOM操作**:通过JavaScript改变HTML结构和样式,如添加、删除、修改元素。 4. **...

    Div+css简单快速入门.pdf

    《Div+CSS简单快速入门》 网页设计领域中,Div+CSS是一种常用的技术,用于实现网页的布局和样式控制。Div(Division)是HTML中的一个元素,常用来组织和分隔网页内容,而CSS(Cascading Style Sheets)则是样式表...

    初级入门CSS基本语法知识

    在IT领域,CSS(Cascading Style Sheets)是用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档样式...这份资料包将是你学习CSS的宝贵资源,它涵盖了从入门到进阶的各种知识点,助你在CSS的学习之路上稳步前行。

    上百个CSS实例|CSS基础学习|CSS入门基础|CSS样式集合

    9. **CSS预处理器**:Sass、Less和Stylus等预处理器提供了更强大的语法,如变量、嵌套规则、混合等,便于编写和管理复杂的CSS代码。 10. **CSS规范与性能优化**:了解如何遵循W3C标准编写CSS,以及如何通过最小化...

    CSS零基础入门视频课程(最适合初学者的教程).zip

    这些基本词汇是理解CSS语法和工作原理的关键。学习者可以通过这份表格熟悉并记忆这些概念,为后续的学习打下坚实的基础。 "代码-01.zip"可能包含了一些基础的CSS代码示例,比如如何设置文本颜色、大小、字体,如何...

    HTML5+CSS3+JS入门教程 + 源代码 pdf

    5. 实战项目:通过实践项目将理论知识转化为实际技能,如创建一个简单的交互式网页。 教程中的源代码部分会提供实例,供读者跟随学习并理解代码逻辑,从而加深对技术的理解。下载试读可以让潜在的学习者在决定是否...

    CSS快速入门(PDF)

    CSS的基本语法结构是选择符+花括号内的属性和值,如`selector{property: value}`。在上面的代码中,`font-size`、`font-style`和`color`是属性,分别对应字体大小、样式和颜色,`48`、`bold`和`red`是对应的属性值。...

    CSS的基本语法.rar

    这个“CSS的基本语法.rar”压缩包提供了一本关于CSS入门教程的资料,旨在帮助初学者理解并掌握CSS的核心概念和基本语法。 在**CSS的基本语法.doc**中,可能会涵盖以下几个关键点: 1. **选择器(Selectors)**:...

    《HTML5+CSS从入门到精通》(李东博)第三章末尾博客HTML代码

    《HTML5+CSS从入门到精通》(李东博)是一本旨在帮助初学者掌握这两门语言的教材,特别是对于想...通过理解和实践这些代码,读者不仅能掌握基本的HTML5和CSS语法,还能了解到如何利用它们来构建适应多设备的现代网页。

    css简单入门教程的资料

    【CSS的基本语法】 CSS规则通常由选择器和声明组成,声明以大括号`{}`包围,属性和值之间用冒号`:`分隔,如`color: blue;`。 【总结】 CSS作为网页设计的核心技术,其重要性不言而喻。学习CSS能够让你掌握网页布局...

    div+css入门教程.rar

    《div+css入门教程》是一份专为初学者设计的学习资料,旨在帮助用户快速掌握网页布局与样式的最...通过学习,不仅可以理解div和css的基本语法,还能掌握网页布局的思维方式,为进一步深入学习前端开发打下坚实基础。

    CSS语法表 CSS参考文档

    这份名为"CSS语法表"的参考资料详细介绍了CSS的基本概念、语法和高级特性,是初学者入门和专业人士查阅的理想资源。 一、CSS基础 1. **选择器**:CSS通过选择器来指定要应用样式的HTML元素,如`h1`(一级标题)、`....

Global site tag (gtag.js) - Google Analytics