设为首页 加入收藏

TOP

CSS学习摘要-语法和选择器(一)
2019-09-03 03:23:21 】 浏览:102
Tags:CSS 学习 摘要 语法 选择

主要摘自网络开发者

从最基本的层次来看,CSS是由两块内容组合而成的:

  • 属性(Property):一些人类可理解的标识符,这些标识符指出你想修改哪一些样式,例如:字体,宽度,背景颜色等。
  • 属性值(Value):每个指定的属性都需要给定一个值,这个值表示你想把那些样式特征修改成什么样,例如,你想把字体,宽度或背景颜色改成什么。

与值配对的属性被称为CSS声明,CSS声明会被放置在一个CSS声明块中。最后,CSS声明块与选择器相结合形成一个CSS规则集(或CSS规则)。

CSS 声明

给 CSS 属性设置特定的值是 CSS 语言的核心功能。
CSS 引擎会通过计算,将对应的 CSS 声明应用到页面的每一个元素上,从而使得元素们以适当的方式布局,并展示出适当的样式。

特别需要记住的是:

  • CSS 的属性和属性值都是区分大小写的。
  • 属性和属性值之间,用英文半角冒号 (:) 隔离。

如下图所示:

CSS 有超过300 个不同的属性以及几乎无穷无尽的属性值。属性和属性值不能任意组合:每个属性都有一个已经定义好的可用属性值范围。

重要: 如果使用了未知属性,或者给属性赋予了无效值,该声明会被视为无效,浏览器的 CSS 引擎会完全忽略它。

重要: 在 CSS(和其他网络标准)中,使用美式拼写作为单词的标准写法。例如,颜色(见于上述代码所见)应始终拼写为 color。写成 colour会无法正常工作。

CSS 声明块

声明按分组,每一组声明都用一对大括号包裹,用 ({) 开始,用 (}) 结束

声明块里的每一个声明必须用半角分号(;)分隔,否则代码会不生效(至少不会按预期结果生效)。声明块里的最后一个声明结束的地方,不需要加分号,但是最后加分号是个好习惯,因为可以防止在后续增加声明时忘记加分号。

注意:块有时候是可以嵌套的。这种情况下,每一对括号必须逻辑上嵌套,跟嵌套 HTML 元素的标签嵌套方式相同。最常见的例子是 @-rules,这是一种用 @ 标识开头的块。

例如 :

@media

@font-face等。

注意:声明块的内容允许为空 —— 这完全有效。

CSS 选择器和规则

我们的拼图还少了一块——我们需要讨论一下如何告知我们的声明块:哪些元素是它们需要应用的。通过在每个声明块前加上选择器(selector)来完成这一动作,选择器是一种模式,它能在页面上匹配一些元素这将使相关的声明仅被应用到被选择的元素上。选择器加上声明块被称为规则集(ruleset),通常简称规则rule)。

选择器可以很复杂 —— 你可以制作一个匹配多种元素的规则,这是通过把多个选择器囊括成用逗号分隔的选择器(一组,)来达成;选择器还可以被“链”在一起,例如我要选择所有 class 是 "blah" 的元素, 但是当且仅当它在 <article> 元素里、并且仅当鼠标指针悬停在这个元素上的时候。别担心:随着你在CSS上的经验变的更丰富,事情会变的更清晰。

一个元素可以被多个选择器所匹配,因此,一个给定的属性可能被多个规则设置多次。 CSS 定义了哪个规则比其它规则更具优先级,则更具优先级的规则必定被应用:这被称为层叠算法(cascade algorithm),关于层叠算法的更多内容和运作原理见层叠和继承

重要:如果链或组中的某个选择器无效,比如使用了未知的伪元素或伪类,整个组的选择器仍然是有效的,除了这个无效的将被忽略的选择器。

CSS 语句(CSS statements)

CSS 规则是样式表的主要组成块 —— 是你在 CSS 中最常见的块。但这有一些其它类型的块,你以后偶尔会碰上 —— CSS 规则只是被称为 CSS 语句中的一种。其它类型如下:

  • @-规则(At-rules) 在CSS中被用来传递元数据、条件信息或其它描述性信息。它由(@)符号开始,紧跟着一个表明它是哪种规则的描述符,之后是这种规则的语法块,并最终由一个半角分号(;)结束。每种由描述符定义的@-规则,都有其特有的内部语法和语义。一些例子如下:

    • @charset@import (元数据)
    • @media@document(条件信息,又被称为嵌套语句,见下方。)
    • @font-face (描述性信息)具体语法示例:
    @import 'custom.css';
    该@-规则向当前 CSS 导入其它 CSS 文件
  • 嵌套语句 是@-规则中的一种,它的语法是 CSS 规则的嵌套块,只有在特定条件匹配时才会应用到文档上。特定条件如下:
    • @media 只有在运行浏览器的设备匹配其表达条件时才会应用该@-规则的内容;
    • @supports关联了一组嵌套的CSS语句,这些语句被放置在一个CSS区块中,该区块以大括号分割, 还有一个由多个CSS声明检测组成的条件,它是一个键值组合, 由逻辑与,逻辑或,逻辑非组合而成. 这样的条件语句称为支持条件. 只有浏览器确实支持被测功能时才会应用该@-规则的内容;
    • @document只有当前页面匹配一些条件时才会应用该@-规则的内容。

具体语法示例

@media (min-width: 801px) {
  body {
    margin: 0 auto;
    width: 800px;
  }
}

上述的嵌套语句只有在页面宽度超过801像素时才会应用。

重要:任何不是规则集或@-规则或嵌套语句的 CSS 语句都是无效的,并会因此被忽略。

语法之外:使 CSS 更具可读性

正如你所见的,CSS 语法并不难写:如果你写了一些错误的规则,它将仅被忽略。但是,即使有这样的机制,这也有一些值得了解的最佳实践,使您的CSS代码更易于使用和维护。

空格

空格实际上意味着一些空格,一些制表符以及一些新行。你可以通过添加空格使你的样式表更具可读性。

用与处理 HTML 的方式类似,浏览器会倾向于忽略你 CSS 中的许多空格;许多空格在那的意义仅仅是增加了可读性。在下面的第一个例子中,我们的每个声明(以及规则的开始 / 结束)都在自己各自的行上 —— 这可以说是编写 CSS 的好方法,因为它很容易维护和理解:

body {
  font: 1em/150% Helvetica, Arial, sans-serif;
  padding: 1em;
  margin: 0 auto;
  max-width: 33em;
}

@media (min-width: 70em) {
  body {
    font-size: 130%;
  }
}

h1 {
  font-size: 1.5em;
}

div p, #id:first-line {
  background-color: red;
  background-style: none
}

div p {
  margin: 0;
  padding: 1em;
}

div p + p {
  padding-top: 0;
}

你可以编写跟这完全一样的CSS,并移除大部分空格,它在功能上和第一个例子完全相同,但我确信你会同意这样有些难读:

body {font: 1em/150% Helvetica, Arial, sans-serif; padding: 1em; margin: 0 auto; max-width: 33em;}
@media (min-width: 70em) { body {font-size: 130%;} }

h1 {font-size: 1.5em;}

div p, #id:first-line {background-color: red; background
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇初学html,任务1:一个简单html页.. 下一篇CSS学习摘要-数值和单位及颜色

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目