什么是CSS
- CSS指层叠样式表(Cascading Style Sheets)
- 样式定义如何显示HTML元素
- 样式通常存储在样式表中
- 把样式添加到HTML4.0中,是为了解决内容与表现分离的问题
- 外部样式表可以极大提高工作效率
- 外部样式表通常存储在CSS文件中
- 多个样式定义可层叠为一个
CSS语法
- 标签选择器
h1 {color: blue; font-size: 12px;}
- id选择器
#paral {text-align: center; color: red;}
<p id="paral">hello world!</p>
- class选择器
.center {text-align: center; color: red;} //所有元素使用class="center"起效 p.center {text-align:center;} //p元素中使用class="center"起效
<p class="center">hello world!</p>
- 分组选择器
在样式表中有很多具有相同样式的元素,为了尽量减少代码,你可以使用分组选择器,每个选择器用逗号分隔。h1 { color: green;} h2 { color: green;} p { color: green;}
h1,h2,p { color: green;}
- 嵌套选择器
p{ }
: 为所有 p 元素指定一个样式。.marked{ }
: 为所有 class=”marked” 的元素指定一个样式。.marked p{ }
: 为所有 class=”marked” 元素内的 p 元素指定一个样式。p.marked{ }
: 为所有 class=”marked” 的 p 元素指定一个样式。p { color: blue; text-align: center;} .marked { background-color: red;} .marked p { color: white;} p.marked{ text-decoration: underline;}
- 后代选择器
后代选择器用于选取某元素的后代元素,以下实例效果作用在所有<div>
元素中的<p>
元素上:div p { background-color: yellow;}
- 子元素选择器
与后代选择器相比,子元素选择器(Child selectors)只能选择作用在某元素的子元素上。
以下实例选择了<div>
元素中所有直接子元素<p>
:div>p { background-color:yellow;}
- 相邻兄弟选择器
相邻兄弟选择器(Adjacent sibling selector)可选择紧接在一个元素后面的元素,且二者有相同父元素,以下实例选取了所有位于<div>
元素后的第一个<p>
元素:div+p { background-color:yellow;}
- 后续兄弟选择器
后续兄弟选择器选取所有指定元素之后的所有相邻兄弟元素,以下实例选取了所有<div>
元素之后的所有相邻兄弟元素<p>
:div~p { background-color:yellow;}
css创建
如何插入样式表
- 外部样式表(External style sheet)
- 内部样式表(Internal style sheet)
- 内联样式(Inline style)
外部样式表
当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link>
标签链接到样式表。 <link>
标签在(文档的)头部:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。
外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子:
hr {color: sienna;}
p {margin-left: 20px;}
body {background-image:url("/images/back40.gif");}
内部样式表
当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用 <style>
标签在文档头部定义内部样式表,就像这样:
<head>
<style>
hr {color: red;}
p {margin-left: 20px;}
body {background-image:url("images/1.jpg");}
</style>
</head>
内联样式
由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距:
<p style="color:sienna;margin-left:20px">这是一个段落。</p>
多重样式
如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。
例如,外部样式表拥有针对 h3 选择器的三个属性:
h3 { color: red; text-align: left; font-size: 8pt;}
而内部样式表拥有针对 h3 选择器的两个属性:
h3 { text-align: font-size:20pt;}
假如拥有内部样式表的这个页面同时与外部样式表链接,那么 h3 得到的样式是:
color:red;
text-align:right;
font-size:20pt;
即颜色属性将被继承于外部样式表,而文字排列(text-alignment)和字体尺寸(font-size)会被内部样式表中的规则取代。
多重样式优先级
样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。
一般情况下,优先级如下:
(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式
本文参考菜鸟教程,作为个人学习笔记。