CSS Base
Table of Contents
Section titled “Table of Contents”CSS(Cascading Style Sheets) 译为层叠样式表, 用以描述 HTML 元素的样式, 布局, 从而控制网页的外观
- 样式定义: 大小, 形状, 颜色, 字体
- 布局控制: 元素位置, 间隔, 排列方式
- 响应式设计: 根据不同设备或用户操作实现自适应布局和样式调整
- 层叠性: 多个样式同时作用一个元素, 按优先级别进行叠加覆盖
<!-- HTML 元素自带样式 --> <p style="color: red; font-size: 16px;">HTML 内联 CSS</p> <!-- HTML 文件共用样式表 --> <head> <!-- HTML 内部样式 --> <style> p { color: blue; font-size: 14px; } </style> </head> <!-- 引用外部 CSS 样式, href 指向 css 文件路径--> <head> <link rel="stylesheet" href="styles.css" /> </head>
修改样式需要使用选择器指定需要修改的 HTML 元素
*
表示选择所有元素, 常用于初始化元素属性, 统一元素属性
/* 清楚元素默认的内外边距 */ * { margin: 0 auto; padding: 0; }
标签选择器即使用 HTML 标签名作为选择器
匹配所有同名的 HTML 元素
权重低, 会被其它选择器覆盖
<head> <style> /* 直接使用标签名 */ div { color: blue; } p { color: red; font-size: 14px; } </style> </head> <main> <div> <p> content <p> <div> </main>
ID 选择器
Section titled “ID 选择器”ID 选择器用以选择带有 id 属性的元素
单个元素只能有一个 id
所有元素的 id 都必须不同
<head> <style> /* # 开头表示 ID 选择器 */ #title { color: blue; font-size: 14px; } </style> </head> <main> <div id="title"> <p> title div <p> <div> <div id="content"> <p> content div <p> <div> </main>
类选择器用以选择带有 class 属性的元素
单个元素可以有多个类名
多个元素可以使用相同的类名
<head> <style> /* . 开头表示类选择器 */ .div { color: blue; } .title { color: red; } </style> </head> <main> <div class="div title"> <p> title div <p> <div> <div class="div content"> <p> content div <p> <div> </main>
/* 类名为 title 的 div 标签 */ div.title { color: black; }
/* 后代选择, 具有 main div p 层叠结构的 p 标签 */ main div p { font-size: 14px; }
伪类是一种用于选择元素的特殊关键字, 伪类可以通过状态或位置选择元素
伪类 | :hover | :first-child | :nth-child(3) | :last-child |
---|---|---|---|---|
含义 | 鼠标悬停于元素时 | 父元素的第一个子元素 | 父元素的第 3 个子元素 | 父元素的最后一个子元素 |
/* 类名为 static 的元素, 静态样式 */ .static { color: black; font-size: 14px; } /* 当鼠标悬停在元素上, 样式变更 */ .static:hover { color: red; font-size: 20px; } /* ul 或 ol 下第一个字元素样式 */ li:first-child { background-color: blue; } /* ul 或 ol 下第 2 个字元素样式(序号可以替换) */ li:nth-child(2) { background-color: green; } /* ul 或 ol 下最后一个字元素样式 */ li:last-child { background-color: yellow; }
font-family:用于指定文字的字体
font-style:用于指定文字的样式, 例如 italic 或 normal
font-size:用于指定文字的大小
font-weight:用于指定文字的粗细程度
color:用于指定文字的颜色
text-shadow: 文字阴影
text-decoration: 文本装饰, none, underline(下划线), line-through(删除线)
text-align:用于指定文字的对齐方式,例如 left、center 或 right
line-height: 行高, 行与行间的距离
值 | left | right | center | justify | inherit |
---|---|---|---|---|---|
含义 | 左对齐(默认值) | 右对齐 | 居中对齐 | 两端对齐 | 继承父元素 |
p { text-align: center; }
属性 | padding | border | margin |
---|---|---|---|
描述 | 内边距(边框和内容距离) | 边框(边框厚度) | 外边距(边框与外部距离) |
标准盒模型 width, height 指定的是盒子内容大小, 实际占用大小需要加上, 边框, 内边距(不包含外边距)
box_width = width + 2*border + padding-left + padding-right
box_height = height + 2*border + padding-top + padding-bottom
/* 盒子模型 */ .box { width: 200px; height: 100px; background-color: orange; border: 10px solid deepskyblue; padding: 20px; margin: 40px; } /* box width = width + 2 * border + 2 * padding = 200px + 2 * 10px + 2 * 20px = 260px */ /* box height = height + 2 * border + 2 * padding = 100px + 2 * 10px + 2 * 20px = 160px */
左边通过开发工具显示盒模型详细数据, 右边为正常网页渲染效果
橙色的盒子是内容区(500px * 400px), 蓝色的边框是边框(10px), 棕色内边距占用空间(20px), 最外部粉色的外边距(40px)
布局相关属性:如 display、position、float、top、right、bottom、left 等
盒模型相关属性:如 width、height、padding、margin、border 等
排版相关属性:如 font、text-align、line-height、letter-spacing、word-spacing 等
背景相关属性:如 background-color、background-image、background-size、background-position、background-repeat 等
边框相关属性:如 border、border-radius 等
其他属性:如 color、opacity、box-shadow、transition、animation 等