CSS3-01 简介
概述
HTML 文档由包含 HTML 标签的 HTML 元素组成,HTML 标签被用于定义文档的内容。HTML 文档内容没有额外的样式,以纯文本流的方式渲染到浏览器页面。需要借助层叠样式表(CSS)来赋予 HTML 文档绚烂夺目的样式。
CSS(Cascading Style Sheets),又叫层叠样式表。其定义了 HTML 元素的样式,且多个样式会层叠为一(最终的效果需要视情况而定,通常遵循“就近原则”)。CSS 可以使用 style 属性定义在开标签内部(即内联样式表)。但通常情况下,我们会将 HTML5 样式使用 CSS 定义在单独的 CSS 文件中(即外部样式表)。而在 HTML 文档中链接指定的 CSS 文件,浏览器会根据 CSS 文件来渲染 HTML 文档的内容。还有一种是使用 <style> 标签定义在 HTML 文档头部的样式表(即内部样式表)
使用外部样式表
- 步骤
-
创建 CSS 文件 mystyle.css
- 通常 CSS 文件会有很多,我们会将其放到指定的文件夹中。具体由项目架构而定(若有机会会分享相关知识)。
-
在 HTML 文档中链接外部样式表
<link rel="stylesheet" href="mystyle.css">
-
- 示例
-
CSS 文件
body { background-color: yellow; }
-
HTML 文档
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 链接到外部样式表 --> <link rel="stylesheet" href="mystyle.css"> </head> <body> This is body of HTML document. </body> </html>
-
效果图
-
如何去选择 HTML 元素
使用 CSS 的目的是为 HTML 元素设置样式,那么前提是:先选择指定的元素。CSS 使用 id 和 class 选择器来选择指定的元素,即在定义 HTML 元素时,需要指定 id 或 class 属性。也可以通过 HTML 标签来选择指定的元素。
-
使用 id 和 class 选择器选择 HTML 元素
-
id 选择器
- 使用方法
- 使用 # 来定义
- 不能有两个相同 id 的元素
- 使用方法
-
class 选择器
- 使用方法
- 使用 . 来定义
- class 属性可以在多个元素中使用
- 使用方法
-
示例
-
HTML 文档
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 链接到外部样式表 --> <link rel="stylesheet" href="mystyle.css"> </head> <body> <h1 id="mainhead">这是一个标题</h1> <p class="paragraph">这是一个段落</p> <p class="paragraph">这是另一个段落</p> </body> </html>
-
CSS 文件
#mainhead { text-align: center; } .paragraph { color: red; }
-
-
效果图
-
-
使用组合选择符选择 HTML 元素
- 四种组合方式
- 后代选择器,使用空格分隔
- 子元素选择器,使用大于号分隔
- 相邻兄弟选择器,使用加号分隔
- 普通兄弟选择器,使用破折号分隔
- 示例
-
HTML 文档
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 链接到外部样式表 --> <link rel="stylesheet" href="mystyle.css"> </head> <body> <div> <p>段落 1。在 div 中。(div 的子元素)</p> <span><p>段落 2。在 div 中。(div 的后代)</p></span> </div> <p>段落 3。不在 div 中。(div 的相邻兄弟)</p> <p>段落 4。不在 div 中。(div 的普通兄弟)</p> </body> </html>
-
CSS 文件
/*需要注意一下样式表的层叠效果*/ /*后代选择器*/ div p { background-color: red; } /*子元素选择器*/ div>p { background-color: green; } /*普通兄弟选择器*/ div~p { background-color: orange; } /*相邻兄弟选择器*/ div+p { background-color: blue; }
-
效果图
-
- 四种组合方式
-
使用分组和嵌套选择器
-
分组选择器
h1,h2 { color: red; }
-
嵌套选择器
.description p { color: blue; }
-
-
伪类 和 伪元素
-
作用
- 伪类 和 伪元素 都是为增加 CSS 选择器的特殊效果
-
伪类
-
使用方法
-
CSS 选择器与伪类结合
selector: pseudo-class {property: value;}
-
CSS 类与伪类结合
selector.class: pseudo-class {property: value;}
-
-
CSS 中所有的伪类
选择器 示例 说明 :link a:link 选择所有未访问的链接 :visited a:visited 选择所有访问过的链接 :hover a:hover 把鼠标放在链接上的状态 :active a:active 选择正在活动的链接 :focus input:focus 选择元素输入后具有焦点 :first-child p:first-child 匹配任意元素(如:p)的第一个子元素 :lang p:lang(it) 为 <p> 元素的 lang 属性选择一个开始值 -
示例
-
HTML 文档
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <!-- 链接到外部样式表 --> <link rel="stylesheet" type="text/css" href="mystyles.css"> </head> <body> <p>访问: <a href="http://www.cnblogs.com/theDesertIslandOutOfTheWorld/">世俗孤岛</a></p> </body> </html>
-
CSS 文件
/*未访问的链接*/ a:link { color: red; } /*已访问的链接*/ a:visited { color: blue; } /*鼠标滑过链接*/ a:hover { color: gray; } /*已选中的链接*/ a:active { color: green; }
-
-
效果图
-
-
伪元素
-
使用方法
-
CSS 选择器与伪类结合
selector: pseudo-element {property: value;}
-
CSS 类与伪类结合
selector.class: pseudo-element {property: value;}
-
-
CSS 中所有的伪元素
选择器 示例 说明 :first-letter p:first-letter 选择每个 <p> 元素的第一个字符 :first-line p:first-line 选择每个 <p> 元素的第一行 :before p:before 在每个 <p> 元素之前插入内容 :after p:after 在每个 <p> 元素之后插入内容 -
示例
-
HTML 文档
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <!-- 链接到外部样式表 --> <link rel="stylesheet" type="text/css" href="mystyles.css"> </head> <body> <p class="paragraph">谁的曾经不苦逼;给自己一点点时间;一辈子也学不会苟且;</p> <br/> <p>谁的曾经不苦逼;给自己一点点时间;一辈子也学不会苟且;</p> </body> </html>
-
CSS 文件
/*作用于所有的 <p> 标签*/ p:first-line { color: blue; } p:first-letter { color: red; font-size: 30px; } /*只作用于类标识为 "paragraph" 的 <p> 标签*/ p.paragraph:before { content: "世俗孤岛:"; } p.paragraph:after { content: " -- Island"; }
-
-
效果图
-
-
CSS 的所有属性
-
文本(Text)
属性 说明 CSS版本 color 文本颜色 1 direction 文本方向/书写方向 2 letter-spacing 字符间距 1 word-spacing 单词间距 1 line-height 行高 1 text-align 文本的水平对齐方式 1 text-align-last 当 text-align 设置为 justify 时,最后一行的对齐方式 3 text-justify 当 text-align 设置为 justify 时指定分散对齐的方式 3 vertical-align 元素的垂直对齐方式 1 text-indent 文本块首行的缩进 1 text-overflow 指定当文本溢出包含的元素,应该发生什么 3 text-wrap 指定文本换行规则 3 word-break 指定非 CJK 文字的断行规则 3 word-wrap 设置浏览器是否对过长的单词进行换行 3 hanging-punctuation 指定一个标点符号是否可能超出行框 3 punctuation-trim 指定一个标点符号是否要去掉 3 white-space 设置怎样给给一元素控件留空白 1 text-decoration 添加到文本的装饰效果 1 text-outline 设置文字的轮廓 3 text-shadow 为文本添加阴影 3 text-transform 控制文本的大小写 1 -
颜色(Color)
属性 说明 CSS版本 color-profile 允许使用源的颜色配置文件的默认以外的规范 3 opacity 设置一个元素的透明度级别 3 rendering-intent 允许超过默认颜色配置文件渲染意向的其他规范 3 -
字体(Font)
属性 说明 CSS版本 font 在一个声明中设置所有字体属性 1 font-family 规定文本的字体系列 1 font-size 规定文本的字体尺寸 1 font-style 规定文本的字体样式 1 font-variant 规定文本的字体样式 1 font-weight 规定字体的粗细 1 @font-face 一个规则,允许网站下载并使用其他超过"Web- safe"字体的字体 3 font-size-adjust 为元素规定 aspect 值 3 font-stretch 收缩或拉伸当前的字体系列 3 -
背景
属性 说明 CSS版本 background 复合属性。设置对象的背景特性 1 background-attachment 设置或检索背景图像是随对象内容滚动还是固定的。必须先指定background-image属性 1 background-color 设置或检索对象的背景颜色 1 background-image 设置或检索对象的背景图像 1 background-position 设置或检索对象的背景图像位置。必须先指定background-image属性 1 background-repeat 设置或检索对象的背景图像如何铺排填充。必须先指定background-image属性 1 background-clip 指定对象的背景图像向外裁剪的区域 3 background-origin S设置或检索对象的背景图像计算background-position时的参考原点(位置) 3 background-size 检索或设置对象的背景图像的尺寸大小 3 -
边框(Border)
属性 说明 CSS版本 border 复合属性。设置对象边框的特性 1 border-color 置或检索对象的边框颜色 1 border-style 设置或检索对象的边框样式 1 border-width 设置或检索对象的边框宽度 1 border-radius 设置或检索对象使用圆角边框 3 border-image 设置或检索对象的边框样式使用图像来填充 3 border-top 复合属性。设置对象顶部边框的特性 1 border-right 复合属性。设置对象右边边框的特性 1 border-bottom 复合属性。设置对象底部边框的特性 1 border-left 复合属性。设置对象左边边框的特性 1 border-top-color 设置或检索对象的顶部边框颜色 1 border-right-color 设置或检索对象的右边边框颜色 1 border-bottom-color 设置或检索对象的底部边框颜色 1 border-left-color 设置或检索对象的左边边框颜色 1 border-top-style 设置或检索对象的顶部边框样式 1 border-right-style 设置或检索对象的右边边框样式 1 border-bottom-style 设置或检索对象的底部边框样式 1 border-left-style 设置或检索对象的左边边框样式 1 border-top-width 设置或检索对象的顶部边框宽度 1 border-right-width 设置或检索对象的右边边框宽度 1 border-bottom-width 设置或检索对象的底部边框宽度 1 border-left-width 设置或检索对象的左边边框宽度 1 border-top-left-radius 定义左上角边框的形状 3 border-top-right-radius 定义右上角边框的形状 3 border-bottom-right-radius 定义右下角边框的形状 3 border-bottom-right-radius 定义右下角边框的形状 3 border-bottom-left-radius 定义左下角边框的形状 3 border-image-source 规定要使用的图像,代替 border-style 属性中设置的边框样式 3 border-image-width 规定图像边框的宽度 3 border-image-outset 规定边框图像超过边框的量 3 border-image-slice 规定图像边框的向内偏移 3 border-image-repeat 规定图像边框是否应该被重复(repeated)、拉伸(stretched)或铺满(rounded) 3 box-decoration-break 规定行内元素被折行 3 box-shadow 向方框添加一个或多个阴影 3 -
轮廓(Outline)
属性 说明 CSS版本 outline 复合属性。设置或检索对象外的线条轮廓 2 outline-color 设置或检索对象外的线条轮廓的颜色 2 outline-style 设置或检索对象外的线条轮廓的样式 2 outline-width 设置或检索对象外的线条轮廓的宽度 2 -
弹性盒子模型(Flexible Box)
属性 说明 CSS版本 box-align 指定如何对齐一个框的子元素 3 box-direction 指定在哪个方向,显示一个框的子元素 3 box-orient 指定一个框的子元素是否在水平或垂直方向应铺设 3 box-pack 指定横向盒在垂直框的水平位置和垂直位置 3 box-lines 每当它在父框的空间运行时,是否指定将再上一个新的行列 box-ordinal-group 指定一个框的子元素的显示顺序 3 box-flex 指定一个框的子元素是否是灵活的或固定的大小 3 box-flex-group 指派灵活的元素到Flex组 3 -
内边距(Padding)
属性 说明 CSS版本 padding 在一个声明中设置所有填充属性 1 padding-top 设置元素的顶部填充 1 padding-right 设置元素的右填充 1 padding-bottom 设置元素的底填充 1 padding-left 设置元素的左填充 1 -
外边距(Margin)
属性 说明 CSS版本 margin 在一个声明中设置所有外边距属性 1 margin-top 设置元素的上外边距 1 margin-right 设置元素的右外边距 1 margin-bottom 设置元素的下外边距 1 margin-left 设置元素的左外边距 1 -
超链接(Hyperlink)
属性 说明 CSS版本 target 简写属性设置target-name, target-new,和target-position属性 3 target-name 指定在何处打开链接(目标位置) 3 target-new 指定是否有新的目标链接打开一个新窗口或在现有窗口打开新标签 3 target-position 指定应该放置新的目标链接的位置 3 -
列表(List)
属性 说明 CSS版本 list-style 在一个声明中设置所有的列表属性 1 list-style-image 将图象设置为列表项标记 1 list-style-position 设置列表项标记的放置位置 1 list-style-type 设置列表项标记的类型 1 -
多列(Multi-column)
属性 说明 CSS版本 columns 缩写属性设置列宽和列数 3 column-width 指定列的宽度 3 column-span 指定元素应该跨越多少列 3 column-count 指定元素应该分为的列数 3 column-gap 指定列之间的差距 3 column-fill 指定如何填充列 3 column-rule 对于设置所有column-rule-*属性的简写属性 3 column-rule-color 指定列之间的颜色规则 3 column-rule-style 指定列之间的样式规则 3 column-rule-width 指定列之间的宽度规则 3 -
表格(Table)
属性 说明 CSS版本 caption-side 规定表格标题的位置 2 border-collapse 规定是否合并表格边框 2 border-spacing 规定相邻单元格边框之间的距离 2 empty-cells 规定是否显示表格中的空单元格上的边框和背景 2 table-layout 设置用于表格的布局算法 2 -
网格(Grid)
属性 说明 CSS版本 grid-columns 指定在网格中每列的宽度 3 grid-rows 指定在网格中每行的高度 3 -
尺寸(Dimension)
属性 说明 CSS版本 height 设置元素的高度 1 max-height 设置元素的最大高度 2 min-height 设置元素的最小高度 2 width 设置元素的宽度 1 max-width 设置元素的最大宽度 2 min-width 设置元素的最小宽度 2 -
盒子(Box)
属性 说明 CSS版本 rotation 围绕由 rotation-point 属性定义的点对元素进行旋转 3 rotation-point 定义距离上左边框边缘的偏移点 3 overflow-style 规定溢出元素的首选滚动方法 3 overflow-x 如果内容溢出了元素内容区域,是否对内容的左/右边缘进行裁剪 3 overflow-y 如果内容溢出了元素内容区域,是否对内容的上/下边缘进行裁剪 3 -
定位(Position)
属性 说明 CSS版本 position 规定元素的定位类型 2 display 规定元素应该生成的框的类型 1 visibility 规定元素是否可见 2 cursor 规定要显示的光标的类型(形状) 2 top 设置定位元素的上外边距边界与其包含块上边界之间的偏移 2 right 设置定位元素右外边距边界与其包含块右边界之间的偏移 2 bottom 设置定位元素下外边距边界与其包含块下边界之间的偏移 2 left 设置定位元素左外边距边界与其包含块左边界之间的偏移 2 float 规定框是否应该浮动 1 clear 规定元素的哪一侧不允许其他浮动元素 1 z-index 设置元素的堆叠顺序 2 overflow 规定当内容溢出元素框时发生的事情 2 clip 剪裁绝对定位元素 2 -
线框(Linebox)
属性 说明 CSS版本 text-height 行内框的文本内容区域设置block-progression维数 3 alignment-adjust 允许更精确的元素的对齐方式 3 alignment-baseline 其父级指定的内联级别的元素如何对齐 3 dominant-baseline 指定scaled-baseline-table 3 baseline-shift 允许重新定位相对于dominant-baseline的dominant-baseline 3 line-stacking 一个速记属性设置line-stacking-strategy, line-stacking-ruby,和line-stacking-shift属性 3 line-stacking-ruby 设置包含Ruby注释元素的行对于块元素的堆叠方法 3 line-stacking-shift 设置base-shift行中块元素包含元素的堆叠方法 3 line-stacking-strategy 设置内部包含块元素的堆叠线框的堆叠方法 3 inline-box-align 设置一个多行的内联块内的行具有前一个和后一个内联元素的对齐 3 drop-initial-size 控制局部的首字母下沉 3 drop-initial-value 激活一个下拉式的初步效果 1 drop-initial-before-adjust 设置下拉的辅助连接点的初始对齐点 3 drop-initial-before-align 校准行内的初始行的设置就是具有首字母的框使用辅助连接点 3 drop-initial-after-adjust 设置下拉的主要连接点的初始对齐点 3 drop-initial-after-align 校准行内的初始行的设置就是具有首字母的框使用初级连接点 3 -
用户外观(User-interface)
属性 说明 CSS版本 appearance 定义元素的外观样式 3 resize 定义元素是否可以改变大小 3 box-sizing 允许您为了适应区域以某种方式定义某些元素 3 outline-offset 设置轮廓框架在 border 边缘外的偏移 3 icon 为元素指定图标 3 nav-index 指定导航(tab)顺序 3 nav-up 指定用户按向上键时向上导航的位置 3 nav-down 指定用户按向下键时向下导航的位置 3 nav-left 指定用户按向左键时向左导航的位置 3 nav-right 指定用户按向右键时向左导航的位置 3 -
内容生成(Generated Content)
属性 说明 CSS版本 content 与 :before 以及 :after 伪元素配合使用,来插入生成内容 3 move-to 使元素从文档流的一处移动到另一处 3 crop 允许replaced元素只是作为一个对象代替整个对象的矩形区域 3 quotes 设置嵌套引用的引号类型 3 page-policy 判定基于页面的给定元素的适用于计数器的字符串值 3 counter-reset 创建或重置一个或多个计数器 3 counter-increment 递增或递减一个或多个计数器 3 -
页面媒体(Paged Media)
属性 说明 CSS版本 page 指定一个元素应显示的页面的特定类型 3 size 指定含有BOX的页面内容的大小和方位 3 image-orientation 指定用户代理适用于图像中的向右或顺时针方向的旋转 3 fit 如果其宽度和高度属性都不是auto给出一个提示,如何大规模替换元素 3 fit-position 判定方框内对象的对齐方式 3 -
媒体页面内容
属性 说明 CSS版本 hyphens 设置如何分割单词以改善该段的布局 3 hyphenate-character 指定了当一个断字发生时,要显示的字符串 3 hyphenate-lines 表示连续断字的行在元素的最大数目 3 hyphenate-resource 外部资源指定一个逗号分隔的列表,可以帮助确定浏览器的断字点 3 hyphenate-before 指定一个断字的单词断字字符前的最少字符数 3 hyphenate-after 指定一个断字的单词断字字符后的最少字符数 3 marks 将crop and/or cross标志添加到文档 3 bookmark-label 指定书签的标签 3 bookmark-level 指定了书签级别 3 bookmark-target 指定了书签链接的目标 3 float-offset 在相反的方向推动浮动元素,他们一直具有浮动 3 image-resolution 指定了正确的图像分辨率 3 string-set 3 -
字幕(Marquee)
属性 说明 CSS版本 marquee-style 设置内容移动的样式 3 marquee-direction 设置内容移动的方向 3 marquee-speed 设置内容滚动的速度有多快 3 marquee-play-count 设置内容移动多少次 3 -
语音(Speech)
属性 说明 CSS版本 voice-volume 语音合成是指波形输出幅度 3 voice-rate 控制语速 3 voice-stress 指示着重力度 3 voice-pitch 指定平均说话的声音的音调(频率) 3 voice-pitch-range 指定平均间距的变化 3 voice-balance 指定了左,右声道之间的平衡 3 voice-duration 指定应采取呈现所选元素的内容的长度 3 rest 一个缩写属性设置rest-before和rest-after属性 3 rest-before 一个元素的内容讲完之前,指定要休息一下或遵守韵律边界 3 rest-after 一个元素的内容讲完之后,指定要休息一下或遵守韵律边界 3 mark 缩写属性设置mark-before和mark-after属性 3 mark-before 允许命名的标记连接到音频流 3 mark-after 允许命名的标记连接到音频流 3 phonemes 指定包含文本的相应元素中的一个音标发音 3 -
分页(Print)
属性 说明 CSS版本 page-break-before 设置元素前的分页行为 2 page-break-after 设置元素后的分页行为 2 page-break-inside 设置元素内部的分页行为 2 orphans 设置当元素内部发生分页时必须在页面底部保留的最少行数 2 widows 设置当元素内部发生分页时必须在页面顶部保留的最少行数 2 -
Ruby
属性 说明 CSS版本 ruby-position 它的base控制Ruby文本的位置 3 ruby-align 控制Ruby文本和Ruby基础内容相对彼此的文本对齐方式 3 ruby-span 控制annotation 元素的跨越行为 3 ruby-overhang 当Ruby文本超过Ruby的基础宽,确定ruby文本是否允许局部悬置任意相邻的文本,除了自己的基础 3 -
过渡(Transition)
属性 说明 CSS版本 transition 此属性是 transition-property、transition-duration、transition-timing-function、transition-delay 的简写形式 3 transition-property 设置用来进行过渡的 CSS 属性 3 transition-duration 设置过渡进行的时间长度 3 transition-delay 指定过渡开始的时间 3 transition-timing-function 设置过渡进行的时序函数 3 -
2D / 3D 转换
属性 说明 CSS版本 transform 适用于2D或3D转换的元素 3 transform-origin 允许您更改转化元素位置 3 transform-style 3D空间中的指定如何嵌套元素 3 perspective 指定3D元素是如何查看透视图 3 perspective-origin 指定3D元素底部位置 3 backface-visibility 定义一个元素是否应该是可见的,不对着屏幕时 3 -
动画
属性 说明 CSS版本 animation 复合属性。检索或设置对象所应用的动画特效 3 @keyframes 定义一个动画,@keyframes定义的动画名称用来被animation-name所使用 3 animation-name 检索或设置对象所应用的动画名称 ,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义 3 animation-duration 检索或设置对象动画的持续时间 3 animation-delay 检索或设置对象动画的延迟时间 3 animation-timing-function 检索或设置对象动画的过渡类型 3 animation-iteration-count 检索或设置对象动画的循环次数 3 animation-direction 检索或设置对象动画在循环中是否反向运动 3 animation-play-state 检索或设置对象动画的状态 3