文章概述
本篇文章记录css笔记。
CSS基础
CSS概念
- CSS指层叠样式表(Cascading Style Sheets);
- 样式定义如何显示HTML元素的样式;
- 样式文件(.css)允许同时控制多重页面的样式和布局;
样式表类型
(按优先级递减)
- 内联样式,定义在元素内部;
1 | <p style="color: sienna; margin-left: 20px"> |
- 内部样式表,定义在html的head头部;
1 | <head> |
- 外部/联样式表;
1 | <head> |
- 多重样式表
概述:html文档同时引用多个外联样式表,对同名的选择器有多个样式,那么选择器使用多个样式的并集,属性重复则使用就近原则进行覆盖;
CSS样式结构格式
CSS样式规则由两部分构成:选择器和一条或多条声明;
格式:
1 | /*selector {property: value; property1: value1;...}*/ |
- 选择器
1> 概念
选择器的构成:标签元素、id(#id_name)、class(.class_name)、属性等;
2> 特点
- class 和 id 名称对大小写是敏感的;
- 声明
- 声明由属性和值组成;
- 声明与声明之间用分号隔开;
- 应该在每行只描述一个属性,这样可以增强样式定义的可读性;
属性值规则
1> 如果值为若干单词,则要给值加引号:
CSS选择器
元素选择器
概述:
- html文档的元素就是最基本的选择器;
- 元素选择器又称为类型选择器,类型选择器匹配文档语言元素类型的名称;
1 | html {color:black;} |
1 | //CSS 元素选择器(类型选择器)可以设置 XML 文档中元素的样式 |
选择器分组
概述
一组选择器共享一个样式;
1 | h1,h2,h3,h4,h5,h6 { |
通配符选择器
概述:CSS2 引入了通配选择器,显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符,通配选择器等价于列出了文档中所有元素的一个分组选择器。。
1 | /*使文档中的每个元素都为红色*/ |
选择器的继承性
概述:子元素继承父元素属性(这些子元素诸如 p, td, ul, ol, ul, li, dl, dt,和 dd,IE6忽略继承)
1 | 子元素如果没有设置color属性,会使用父元素的color属性; |
类选择器
概述
- html每个标签元素都有一个class属性,在html文档中可以有多个同名的class;“.”加html标签元素的class名称组成类选择器。
- 类选择器允许以一种独立于文档元素的方式来指定样式。
- 该选择器可以单独使用,也可以与其他元素结合使用。
1 | .center {text-align: center} |
基于所属标签类而被选择
格式:标签名.类名
1 | <td class="class_name"> |
1 | // 结合通配选择器=结合元素选择器 |
多类选择器
概述:类名由多个单词组成,各个词之间用空格分隔,每个单词都可以作为一个类选择器;
- 两个类选择器链接在一起,仅可以选择同时包含这些类名的元素(类名的顺序不限);
- 如果一个多类选择器包含类名列表中没有的一个类名,匹配就会失败。
1 | <p class="important warning"> |
1 | .important {font-weight:bold;} |
派生选择器
概述:派生选择器又叫后代选择器;
- 后代选择器(descendant selector)又称为包含选择器。
- 后代选择器可以选择某元素的所有任意后代元素(包括间接后代)。
- 派生选择器,根据标签的上下文关系来定义的选择器,如:storng 被包裹在 li标签内,strong和li就具有上下文关系;
派生选择器的有效范围是:li标签内的strong标签内的内容; - 格式:父元素 子元素{…}
1 | <li>hello<strong>word</strong></li> |
1 | li strong { |
- 格式:标签元素.类名/.类名 标签名/id选择器/类选择器
1 | .fancy td { |
直接子元素选择器
概述:如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素直接子元素,请使用子元素选择器;
格式:父元素 > 子元素
1 | h1 > strong {color:red;} |
相邻兄弟选择器
概述
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。
格式
元素a +元素a后面的一个兄弟元素
案例:1
2
3
4
5<body>
<h1>This is a heading.</h1>
<p>This is paragraph.</p>
<p>This is paragraph.</p>
</body>
1 | h1 + p {margin-top:50px;} |
结合其他选择器
1 | html > body table + ul {margin-top:20px;} |
id选择器
概述
html每个标签元素都有一个id属性,在html文档中只能出现一次;“#”加html标签元素的id名称组成id选择器。id选择器名仅有一个单词组成,不支持多个单词。
1 | <p id="red">这个段落是红色。</p> |
1 | // 结合通配符=独立使用 |
id派生选择器
格式:#id名 标签名/id选择器/类选择器1
2
3
4
5
6
7
8
9
10
11#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}
/*也可以用id紧跟所属的元素作为选择器*/
div#sidebar {
border: 1px dotted #000;
padding: 10px;
}
属性选择器
概述
属性选择器可以根据元素的属性及属性值来选择元素设置样式。
注意:属性与属性值必须完全匹配(在这里,像class属性值可以有分隔符和空格,必须匹配完整的值才行,除非使用特殊符号~=或|=)
格式
- 根据属性设置:[属性名]{…}
- 根据属性和属性值设置:[属性名=属性值]{…}
- *[属性名|属性名=属性值]{…}
- 根据多属性设置:[属性名1][属性名2]{…}
- 根据标签元素加属性设置:标签元素[属性名1][属性名2]{…}
1 | // 设置包含标题(title)的所有元素变为红色 |
1 | 注释:只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持属性选择器。在 IE6 及更低的版本中,不支持属性选择。 |
1 | <img title="W3School" src="xxx.gif" /> |
1 | [title=ls]{ |
属性值包含某字符
如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。
1 | <img title="hello world" src="xxx.gif" /> |
1 | [title~=hello] { color:red; } |
属性值含连字符
1 | <p lang="en-us">Hi!</p> |
1 | [lang|=en] { color:red; } |
表单属性选择器
属性选择器在为不带有 class 或 id 的表单设置样式1
2
3
4
5<form name="input" action="" method="get">
<input type="text" name="Name" value="Bill" size="20">
<input type="text" name="Name" value="Gates" size="20">
<input type="button" value="Example Button">
</form>
1 | input[type="button"]{ |
属性选择器属性值匹配参考
1 | 选择器:描述 |
伪类
概述:CSS 伪类用于向某些选择器添加特殊的效果。
常见伪类参考
W3C:”W3C” 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。
1 | 属性 描述 CSS版本 |
语法格式
- 伪类语法:selector : pseudo-class {property: value}
- CSS类与伪类搭配使用:selector.class : pseudo-class {property: value}
1 | <a class="red" href="css_syntax.asp">CSS Syntax</a> |
1 | a.red : visited {color: #FF0000} |
- CSS类id与伪类搭配:selector#id : pseudo-class {property: value}
锚(a链接)伪类
锚伪类使用顺序:
- 提示:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
- 提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
- 提示:伪类名称对大小写不敏感。
1
2
3
4a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
:first-child伪类
- 格式:某标签元素:first-child{…}
- 概述:向某标签元素的第一个子元素设置样式;
:lang伪类
概述:向带有指定 lang 属性的元素添加样式;
1 | <html> |
伪元素
概述:
CSS 伪元素用于向某些选择器设置特殊效果。
常用的伪元素1
2
3
4
5
6W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。
属性 描述 CSS
:first-letter 向文本的第一个字母添加特殊样式。 1
:first-line 向文本的首行添加特殊样式。 1
:before 在元素之前添加内容。 2
:after 在元素之后添加内容。 2
语法格式
- 伪元素语法:selector:pseudo-element {property:value;}
- CSS类与伪元素配合使用:selector.class:pseudo-element {property:value;}
:first-line伪元素
概述:”first-line” 伪元素用于向文本的首行设置特殊样式。
示例:根据 “first-line” 伪元素中的样式对 p 元素的第一行文本进行格式化
1 | p:first-line{ |
要点:
- “first-line” 伪元素只能用于块级元素。
- 下面的属性可应用于 “first-line” 伪元素:
1 | font |
:first-letter伪元素
概述:”first-letter” 伪元素用于向文本的首字母设置特殊样式:
1 | p:first-letter{ |
要点:
- “first-letter” 伪元素只能用于块级元素。
- 可以给同个selector设置多个伪元素;
- 下面的属性可应用于 “first-letter” 伪元素:
1 | font |
:before伪元素
概述:”:before” 伪元素可以在元素的内容前面插入新内容。
1 | h1:before{ |
:after伪元素
概述:”:after” 伪元素可以在元素的内容之后插入新内容。
1 | // 示例:下面的例子在每个 <h1> 元素后面插入一幅图片: |
CSS3选择器参考
1 | 选择器 例子 例子描述 CSS |
CSS样式
大小
- 宽高:height width
1 | auto 默认。浏览器会计算出实际的高度。 |
- line-height 行与行之间的基线间的距离(设置行内元素行高,块级元素基线之间的最小距离)。
1 | normal 默认。设置合理的行间距。 |
- max-height、max-width 设置元素的最大高度。
1 | none 默认。定义对元素被允许的最大高度没有限制。 |
- 设置元素的最大宽度。
1 | none 默认。定义对元素的最大宽度没有限制。 |
- 设置元素的最小宽度 min-height min-width。
1 | length 定义元素的最小高度。默认值是 0。 |
背景
背景属性概览
1 | 属性 描述 |
背景色
- 属性名:background-color
- 目标元素:可以为所有元素设置背景色,这包括 body 一直到 em 和 a 等行内元素。
- 属性值:默认transparent,接受任何合法的颜色值;
1 | p {background-color: gray;} |
背景图像
属性名:background-image
属性值: 默认none
1 | body {background-image: url(/i/eg_bg_04.gif);} |
背景重复
属性名:background-repeat
属性值:
- repeat-y:垂直方向重复
- repeat-x
- no-repeat
1 | body{ |
背景定位
概述:利用background-position属性改变图像在背景中的位置。
属性值:标准两个值(水平方向定位 垂直方向定位),如果有一个值,则另一个值时center;
- top、bottom、left、right 和 center
- top center、center center
- 百分数值:10% 20%
- 长度值:20px 10px
1 | body{ |
背景关联
概述:长文档,上下滚动时,控制背景的联动样式;
属性值:
- scroll:默认值。背景图像会随着页面其余部分的滚动而移动。
- fixed:当页面的其余部分滚动时,背景图像不会移动。
- inherit:规定应该从父元素继承 background-attachment 属性的设置。
1 | body{ |
背景属性
概述:
- 属性名:background
- 属性值:
1 | 值 描述 CSS |
在一个声明中可以设置所有背景属性(不区分顺序和完整性):1
2
3body{
background: #ff0000 url(/i/eg_bg_03.gif) no-repeat fixed center;
}
文本
概述:文本属性可定义文本的外观;
常用CSS文本属性
1 | 属性 描述 |
缩进文本
属性名:text-indent
1 | p {text-indent: 5em;} |
概述:对文档标签中文本进行首行缩进;
设置目标:所有块级元素应用 text-indent,但无法将该属性应用于行内元素;
属性值:
- 使用正负值
- 使用百分比值:缩进值是父元素的 20%;
- 继承:子元素可以继承父元素的缩进属性;
水平对齐
属性名
text-align
针对行内或者块元素内部的文字、图片、按钮;
属性值
1 | left 把文本排列到左边。默认值:由浏览器决定。 |
文本方向
属性名
direction
针对目标
- 主要影响块级元素中文本的方向;
- 对于行内元素,只有当 unicode-bidi 属性设置为 embed 或 bidi-override 时才会应用 direction 属性。
属性值
1 | ltr 默认。文本方向从左到右。 |
示例:1
p{direction: rtl}
书写的方向
writing-mode:horizontal-tb | vertical-rl | vertical-lr | lr-tb | tb-rl
- 默认值:normal
- 适用于:除 <’ display ‘> 属性定义为table-row-group | table-column-group | table-row | table-column之外的所有元素;
1 | horizontal-tb:水平方向自上而下的书写方式。即left-right-top-bottom(类似IE私有值lr-tb) |
字(单词)间隔
属性名
word-spacing
属性值
1 | normal 默认。定义单词间的标准空间。 |
示例:
1 | p {word-spacing: 30px;} |
字符或字母间隔
属性名
letter-spacing
属性值
1 | normal 默认。规定字符间没有额外的空间。 |
示例:1
2h1 {letter-spacing:2px}
h2 {letter-spacing:-3px}
大小写转换
属性名
text-transform
属性值
1 | none 默认。定义带有小写字母和大写字母的标准的文本。 |
示例:1
2
3h1 {text-transform:uppercase}
h2 {text-transform:capitalize}
p {text-transform:lowercase}
文本装饰
属性名
text-decoration
属性值
1 | none 默认。定义标准的文本,关闭所有装饰。 |
- 设置上述单个属性值;
- 可以同时设置多个属性值效果;
示例:1
2
3
4
5h1 {text-decoration:overline}
h2 {text-decoration:line-through}
h3 {text-decoration:underline}
h4 {text-decoration:blink}
div{text-decoration: underline line-through overline;}
处理空白符
属性名
white-space
属性值
1 | normal 默认。空白会被浏览器忽略。 |
示例:1
p{white-space: nowrap}
字体
字体属性概览
1 | 属性 描述 |
字体类系
5种通用字体系列
注意:小写
- serif
- sans-serif
- monospace
- cursive
- fantasy
通用系列的具体字体
- serif:Times、Georgia、New Century Schoolbook
- sans-serif:Helvetica、Geneva、Verdana、Arial 或 Univers
- monospace:Courier、Courier New 和 Andale Mono
- cursive:Zapf Chancery、Author 和 Comic Sans
- fantasy:Western、Woodblock 和 Klingon
设置字体
font-family
注意:当字体名中有一个或多个空格(比如 New York),或者如果字体名包括#或$之类的符号,需要在font-family 声明中加引号(支持单引号和双引号)。
1 | // 设置通用字体系列 |
字体风格
font-style
属性值
1 | normal 默认值。浏览器显示一个标准的字体样式。 |
示例:
1 | p.normal {font-style:normal;} |
字体变形
font-variant
属性值
1 | normal 默认值。浏览器会显示一个标准的字体。 |
示例:
1 | p {font-variant:small-caps;} |
字体加粗
font-weight
属性值
- normal 默认值。定义标准的字符。
- bold 定义粗体字符。
- bolder 定义更粗的字符。
- lighter 定义更细的字符。
- 100~900 为字体指定了 9 级加粗度,100 对应最细的字体变形,900 对应最粗的字体变形。数字 400 等价于 normal,而 700 等价于 bold。
- 定义由粗到细的字符。400 等同于 normal,而 700 等同于 bold。
- inherit 规定应该从父元素继承字体的粗细。
示例
1 | p.normal {font-weight:normal;} |
字体大小
font-size
1 | 注意:如果您没有规定字体大小,普通文本(比如段落)的默认大小是 16 像素 (16px=1em)。 |
属性值
- 把字体的尺寸设置为不同的尺寸,从 xx-small 到 xx-large。
默认值:medium。
1 | xx-small |
- smaller 把 font-size 设置为比父元素更小的尺寸。
- larger 把 font-size 设置为比父元素更大的尺寸。
- length 把 font-size 设置为一个固定的值。
1 | // 尺寸单位 |
1 | em是相对父容器字体大小计算来的,即piexl=parentFontPixel*nem; |
- % 把 font-size 设置为基于父元素的一个百分比值。
- inherit 规定应该从父元素继承字体尺寸。
示例
1 | h1 {font-size:60px;} |
链接
为链接设置样式
- 链接的四种伪类状态:
- a:link - 普通的、未被访问的链接
- a:visited - 用户已访问的链接
- a:hover - 鼠标指针位于链接的上方
- a:active - 链接被点击的时刻
- 当为链接的不同状态设置样式时,请按照以下次序规则:
- a:hover 必须位于 a:link 和 a:visited 之后
- a:active 必须位于 a:hover 之后
示例
1 | a:link {background-color:#B2FF99;} |
列表
列表属性允许你放置、改变列表项标志,或者将图像作为列表项标志。
列表属性
1 | 属性 描述 |
列表项标志类型
list-style-type
属性值
CSS2 的值:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22值 描述
none 无标记。
disc 默认。标记是实心圆。
circle 标记是空心圆。
square 标记是实心方块。
decimal 标记是数字。
decimal-leading-zero 0开头的数字标记。(01, 02, 03, 等。)
lower-roman 小写罗马数字(i, ii, iii, iv, v, 等。)
upper-roman 大写罗马数字(I, II, III, IV, V, 等。)
lower-alpha 小写英文字母The marker is lower-alpha (a, b, c, d, e, 等。)
upper-alpha 大写英文字母The marker is upper-alpha (A, B, C, D, E, 等。)
lower-greek 小写希腊字母(alpha, beta, gamma, 等。)
lower-latin 小写拉丁字母(a, b, c, d, e, 等。)
upper-latin 大写拉丁字母(A, B, C, D, E, 等。)
hebrew 传统的希伯来编号方式
armenian 传统的亚美尼亚编号方式
georgian 传统的乔治亚编号方式(an, ban, gan, 等。)
cjk-ideographic 简单的表意数字
hiragana 标记是:a, i, u, e, o, ka, ki, 等。(日文片假名)
katakana 标记是:A, I, U, E, O, KA, KI, 等。(日文片假名)
hiragana-iroha 标记是:i, ro, ha, ni, ho, he, to, 等。(日文片假名)
katakana-iroha 标记是:I, RO, HA, NI, HO, HE, TO, 等。(日文片假名)
CSS2.1 的值:1
2
3disc | circle | square | decimal | decimal-leading-zero |
lower-roman | upper-roman | lower-greek | lower-latin | upper-latin |
armenian | georgian | none | inherit
示例
1 | // 设置不同的列表样式 |
列表项图像
list-style-image
概述:有时,常规的标志是不够的。你可能想对各标志使用一个图像;
1 | ul li {list-style-image : url(xxx.gif)} |
列表标志位置
list-style-position
概述:CSS2.1 可以确定标志出现在列表项内容之外还是内容内部。
属性值
1 | 值 描述 |
示例
1 | ul.inside { |
列表样式合并写法
list-style
属性值
可以同时包含list-style-type、list-style-image、list-style-position、inherit值,并且值无顺序;
1 | li {list-style : url(example.gif) square inside} |
表格
常用属性
1 | 属性 描述 |
表格边框
border
1 | // 为 table、th 以及 td 设置了蓝色边框 |
注:详见边框
边框线
border-collapse 属性设置是否将表格边框折叠为单一边框:
属性值
1 | separate 默认值。边框会被分开。不会忽略 border-spacing 和 empty-cells 属性。 |
示例
1 | table{border-collapse:collapse;} |
表格宽度和高度
1 | table{width:100%;} |
表格文本对齐
text-align 和 vertical-align 属性设置表格中文本的对齐方式。
text-align
属性设置水平对齐方式,比如左对齐、右对齐或者居中:1
td{text-align:right;}
vertical-align
属性设置垂直对齐方式,比如顶部对齐、底部对齐或居中对齐:1
2
3
4td{
height:50px;
vertical-align:bottom;
}
表格内边距
1 | td{padding:15px;} |
详见:边框内边距;
表格颜色
下面的例子设置边框的颜色,以及 th 元素的文本和背景颜色:1
2
3
4
5
6
7
8table, td, th{
border:1px solid green;
}
th{
background-color:green;
color:white;
}
单元格间距
border-spacing 属性设置相邻单元格的边框间的距离(仅用于“边框分离”模式)。
1 | 注释:某些版本的IE浏览器不支持此属性。 |
属性值
- length length 规定相邻单元的边框之间的距离。
1 | 使用 px、cm 等单位。不允许使用负值。 |
- inherit 规定应该从父元素继承 border-spacing 属性的值。
标题位置
caption-side 属性设置表格标题的位置。
属性值
- top 默认值。把表格标题定位在表格之上。
- bottom 把表格标题定位在表格之下。
- inherit 规定应该从父元素继承 caption-side 属性的值。
空单元格
empty-cells
属性值:
- hide 不在空单元格周围绘制边框。
- show 在空单元格周围绘制边框。默认。
- inherit 规定应该从父元素继承 empty-cells 属性的值。
示例
隐藏表格中空单元格上的边框和背景:1
2
3
4table{
border-collapse:separate;
empty-cells:hide;
}
列宽度算法
table-layout
概述
tableLayout 属性用来显示表格单元格、行、列的算法规则。
属性值
- automatic 默认。列宽度由单元格内容设定。
- fixed 列宽由表格宽度和列宽度设定。
- inherit 规定应该从父元素继承 table-layout 属性的值。
示例
1 | table{table-layout:fixed;} |
轮廓线
- 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
- CSS outline 属性规定元素轮廓的样式、颜色和宽度。
属性概览
1 | 属性 描述 CSS |
轮廓线样式
outline-style
概述
设置轮廓的样式:
属性值
1 | none 默认。定义无轮廓。 |
示例
1 | p{outline-style:dotted;} |
轮廓线颜色
outline-color
概述
outline-color 属性设置一个元素整个轮廓中可见部分的颜色。要记住,轮廓的样式不能是 none,否则轮廓不会出现。
注意:
- 请始终在 outline-color 属性之前声明 outline-style 属性。元素只有获得轮廓以后才能改变其轮廓的颜色。
- 轮廓线不会占据空间,也不一定是矩形。
属性值
- 颜色值
- invert 默认。执行颜色反转(逆向的颜色)。可使轮廓在不同的背景颜色中都是可见。
- inherit 规定应该从父元素继承轮廓颜色的设置。
示例
1 | p{ |
轮廓线宽度
outline-width
概述
outline-width 属性设置元素整个轮廓的宽度;
注意:
- 只有当轮廓样式不是 none 时,这个宽度才会起作用。
- 如果样式为 none,宽度实际上会重置为 0。
- 不允许设置负长度值。
- 请始终在 outline-width 属性之前声明 outline-style 属性。元素只有获得轮廓以后才能改变其轮廓的颜色。
- 轮廓线不会占据空间,也不一定是矩形。
属性值
- thin 规定细轮廓。
- medium 默认。规定中等的轮廓。
- thick 规定粗的轮廓。
- length 允许您规定轮廓粗细的值。
- inherit 规定应该从父元素继承轮廓宽度的设置。
示例
1 | p{ |
轮廓样式简写
outline
概述
- outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
- outline 简写属性在一个声明中设置所有的轮廓属性。
1 | 可以按顺序设置如下属性: |
属性值
1 | 值 描述 |
示例
1 | p{outline:#00FF00 dotted thick;} |
CSS框模型
CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式
内边距
padding
- padding-top
- padding-right
- padding-bottom
- padding-left
概述
CSS padding 属性定义元素的内边距。
属性值
- auto 浏览器计算内边距。
- % 规定基于父元素的宽度的百分比的内边距。
- inherit 规定应该从父元素继承内边距。
- length 规定以具体单位计的内边距值,比如像素、厘米等。默认值是 0px。但不允许使用负值。
1 | length 格式: |
示例
1 | // 按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值: |
外边距
1 | margin 简写属性。在一个声明中设置所有外边距属性。 |
属性值
同内边距
示例
1 | p {margin: 20px 30px 30px 20px;} |
边框
- 元素的边框绘制在背景之上。
- CSS border 属性允许你规定元素边框的样式、宽度和颜色。
属性概览
1 | 属性 描述 |
边框的样式
- border-style
- border-top-style
- border-right-style
- border-bottom-style
- border-left-style
注意
border-style支持设置小于或等于4个值(上、右、下、左),支持css值复制属性;
属性值
- none 定义无边框。
- hidden 与 “none” 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
- dotted 定义点状边框。在大多数浏览器中呈现为实线。
- dashed 定义虚线。在大多数浏览器中呈现为实线。
- solid 定义实线。
- double 定义双线。双线的宽度等于 border-width 的值。
- groove 定义 3D 凹槽边框。其效果取决于 border-color 的值。
- ridge 定义 3D 垄状边框。其效果取决于 border-color 的值。
- inset 定义 3D inset 边框。其效果取决于 border-color 的值。
- outset 定义 3D outset 边框。其效果取决于 border-color 的值。
- inherit 规定应该从父元素继承边框样式。
示例
1 | p{border-style: outset;} |
边框的宽度
- border-width 边框宽度
- border-top-width
- border-right-width
- border-bottom-width
- border-left-width
概述
- 只有当边框样式不是 none 时才起作用。
- 如果边框样式是 none,边框宽度实际上会重置为 0。
- 不允许指定负长度值。
- 支持设置小于或等于4个值(上、右、下、左),支持css值复制属性;
属性值
- thin 定义细的边框。
- medium 默认。定义中等的边框。
- thick 定义粗的边框。
- length 允许您自定义边框的宽度。
- inherit 规定应该从父元素继承边框宽度。
示例
1 | p {border-style: solid; border-width: 15px 5px 15px 5px;} |
边框的颜色
- border-color
- border-top-color
- border-right-color
- border-bottom-color
- border-left-color
概述
- 支持设置小于或等于4个值(上、右、下、左),支持css值复制属性;
属性值
- 颜色值
- transparent 默认值。边框颜色为透明。
- inherit 规定应该从父元素继承边框颜色。
示例
1 | p { |
外边距合并
- 外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。
- 合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
- 只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。
元素定位
- 元素调整在文档中的位置;
- CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
1 | 【普通流】 |
元素的框
- 块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
- 行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
1 | div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。 |
框的类型
display 属性规定元素应该生成的框的类型;
属性值
1 | none 此元素不会被显示。 |
示例
1 | // p显示为内联元素 |
元素定位
CSS 定位属性允许你对元素进行定位。
1 | 属性 描述 |
位置坐标
left, top, right和bottom
元素值:
1 | auto 默认值。通过浏览器计算上边缘的位置。 |
示例
1 | img{ |
定位类型
position
概述
通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
属性值
- absolute 相对第一个父元素进行定位,原本所占的空间删除。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
- fixed 相对于浏览器窗口进行绝对定位,原本所占的空间删除。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
- relative 相对于正常位置进行定位,原本所占的空间仍保留;因此,”left:20” 会向元素的 LEFT 位置添加 20 像素。
- static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
- inherit 规定应该从父元素继承 position 属性的值。
示例
- absolute 绝对定位
1
2
3
4
5h2{
position:absolute;
left:100px;
top:150px;
}
溢出内容控制
overflow
概述
overflow 属性规定当内容溢出元素框时发生的事情。
属性值
1 | visible 默认值。内容不会被修剪,会呈现在元素框之外。 |
示例
使用滚动条来显示元素内溢出的内容1
2
3
4
5
6div {
background-color:#00FFFF;
width:150px;
height:150px;
overflow: scroll;
}
裁剪元素的形状
clip
概述
clip 属性剪裁绝对定位元素(absolute和fixed)。
属性值
- shape 设置元素的形状。唯一合法的形状值是:rect (top, right, bottom, left)
- auto 默认值。不应用任何剪裁。
- inherit 规定应该从父元素继承 clip 属性的值。
示例
1 | img { |
垂直对齐
vertical-align
概述
- 属性设置元素在当前行内相对于行内内容的垂直对齐方式。
- 该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。
- 在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。
属性值
1 | baseline 默认。元素放置在父元素的基线上。 |
元素的堆叠
概述
- z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面(上层)。
- 元素可拥有负的 z-index 属性值。
- z-index 仅能在设置position的定位元素上奏效(例如 position:absolute;)
属性值
- auto 默认。堆叠顺序与父元素相等。
- number 设置元素的堆叠顺序。
- inherit 规定应该从父元素继承 z-index 属性的值。
示例
1 | div { |
浮动框
元素浮动
float
概述
- float 属性定义元素在哪个方向浮动。
- 浮动元素会生成一个块级框,而不论它本身是何种元素。
- 如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
- 假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。
- 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
- 浮动框周围是有内容的块框,浮动框不会覆盖内容框,视觉上没有浮动效果。
- 浮动框周围是无内容的块框,浮动框不占据空间,浮动并覆盖下一个元素。
- 如果三个浮动框都是left浮动,则会出现三个浮动框水平方向上排列;
属性值
- left 元素向左浮动。
- right 元素向右浮动。
- none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
- inherit 规定应该从父元素继承 float 属性的值。
示例
1 | img{float:right;} |
清除浮动
clear
概述
clear 表示框的哪些边不应该挨着浮动框,即清除对应边浮动元素框的浮动效果。
属性值
- left 在左侧不允许浮动元素。
- right 在右侧不允许浮动元素。
- both 在左右两侧均不允许浮动元素。
- none 默认值。允许浮动元素出现在两侧。
- inherit 规定应该从父元素继承 clear 属性的值。
示例
清除img两侧浮动元素框的浮动效果1
2
3
4img{
float:left;
clear:both;
}
参考
元素显隐
visibility
- visible 默认值。元素是可见的。
- hidden 元素是不可见的。
- collapse 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 “hidden”。
- inherit 规定应该从父元素继承 visibility 属性的值。
示例
1 | h2{visibility:hidden;} |
水平导航栏
实现方式:设置行内或浮动列表项;
1 | li{display:inline;} |
图像透明度
- opacity: 值从 0.0 到 1.0,值越小,越透明。
- IE8 以及更早的版本使用滤镜 filter:alpha(opacity=x)。x 能够取的值从 0 到 100。值越小,越透明。
示例:
1 | img{ |
CSS单位
- % 百分比
- in 英寸
- cm 厘米
- mm 毫米
- em
1 | 1em 等于当前的字体尺寸。 |
- ex 一个 ex 是一个字体的 x-height。 (x-height 通常是字体尺寸的一半。)
- pt 磅 (1 pt 等于 1/72 英寸),多做字体。
- pc 12 点活字 (1 pc 等于 12 点)
- px 像素 (计算机屏幕上的一个点)
颜色
1 | /*颜色英文名(浏览器支持的有16种)*/ |
鼠标样式
cursor
- url
1 | 需使用的自定义光标的 URL。 |
- default 默认光标(通常是一个箭头)
- auto 默认。浏览器设置的光标。
- crosshair 光标呈现为十字线。
- pointer 光标呈现为指示链接的指针(一只手)
- move 此光标指示某对象可被移动。
- e-resize 此光标指示矩形框的边缘可被向右(东)移动。
- ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
- nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
- n-resize 此光标指示矩形框的边缘可被向上(北)移动。
- se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
- sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
- s-resize 此光标指示矩形框的边缘可被向下移动(南)。
- w-resize 此光标指示矩形框的边缘可被向左移动(西)。
- text 此光标指示文本。
- wait 此光标指示程序正忙(通常是一只表或沙漏)。
- help 此光标指示可用的帮助(通常是一个问号或一个气球)。
示例:1
2
3span.crosshair {cursor:crosshair;}
span.help {cursor:help;}
span.wait {cursor:wait;}
媒介类型
媒介类型允许你定义以何种媒介来提交文档,文档可以显示在显示器、纸、听觉浏览器等媒介上。
媒介类型概览
注释:媒介类型名称对大小写不敏感。
1 | 媒介类型 描述 |
示例
同一个样式表中设置文档在不同媒介中的样式:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<html>
<head>
<style>
@media screen{
p.test {font-family:verdana,sans-serif; font-size:14px}
}
@media print{
p.test {font-family:times,serif; font-size:10px}
}
@media screen,print{
p.test {font-weight:bold}
}
</style>
</head>
<body>....</body>
</html>