# 一、表格CSS 属性
## 1、表格边框
指定 CSS 表格边框,使用 border 属性,通常定义td,th的边框属性
表格会呈现双边框,是因为表和 th / td 元素有独立的边界。
table存在默认属性border-collapse:separate
## 2、表格的折叠边框
border-collapse 属性设置表格的边框是否被合并为一个单一的边框
- 取值
- separate:边框独立(默认值)
- collapse:相邻边框被合并
* border-spacing:单元格之间的间距
* border-spacing:水平方向 垂直方向;
* border-spacing:一个值;代表水平方向和垂直方向的间距是一样的
注意:只有在 边框独立border-collapse: separate时才能用
## 3、单元格内容的垂直对齐
- vertical-align 作用:垂直对齐属性设置垂直对齐,比如顶部,底部或中间
- 常用值
- top顶部对齐
- middle居中对齐
- bottom底部对齐
### 小节:如何使用css实现表格的1像素边框
```css
table{
border-collapse:collspse;
}
```
# 二、CSS字体 ,文本属性
### 1、text-align:
- 作用:设置文本的水平对齐方式
- 语法:text-align:值
- 常用值
- left居左对齐 [默认值]
- right居右对齐
- center居中对齐
- text-align: justify文本两端对齐方式
### 2、text-decoration
- 作用:设置文本装饰
- 语法:text-decoration:值
- 常用值
- none 默认。定义标准的文本。 【常用】
- underline 定义文本下的一条线 【常用】
- line-through 定义穿过文本的一条线。【比较常用】
- overline 定义文本上的一条线。 【不常用】
### 3、text-indent
- 作用:设置文本块首行的缩进
- 语法:text-indent:值
- 常用值
- 默认值:0
- 长度值,px,em
- 百分比: 相对于元素内容宽进行计算
- 允许负值
### 4、color
- 作用:设置文字的颜色
- 语法:color:颜色值
### 6、颜色的几种表现形式
1.英文的关键词:red红色,orange橙色,yellow黄色,green绿色,cyan青色,blue蓝色,purple紫色
transparent:透明色
2.十六进制色值
ps:英文状态下,按下i键,鼠标右键单击,拷贝颜色的十六制进制代码,在代码中ctrl+v粘贴
在代码的颜色中要写#在粘贴颜色的十六进制代码
由#和六位十六进制的数组成(0-9 a-f)
例:#000000表示黑色 #ff0000表示红色 #ffffff 表示白色
3. rgb(r,g,b)
r: red 红色 g: green 绿色 b: blue 蓝色
取值范围0-255
rgb(255, 255, 255); 表示白色
rgb(0, 0, 0);表示黑色
4.rgba(r,g,b,a)
r: red 红色 g: green 绿色 b: blue 蓝色
a: alpha 透明度 透明度在0-1之间表示,0表示完全透明 1 表示完全不透明
# 三、常用复合选择器
概述:由两个或多个基础选择器通过不同的方式组合而成的选择器
### 1.后代选择器
后代选择器又称包含选择器,可以选择某元素后代的元素
- 语法:
```css
E F {
样式声明;
}
```
- 描述:【空格】连接一个或多个选择器
- 作用: 选择E元素内部包含的所有F元素
```css
/* .warp 范围内所有的span都有效 */
.wrap span {
color: tomato;
}
<div class="wrap">
<span>我是第一个span</span>
<ul>
<li>
<span>我是第a二span个</span>
</li>
</ul>
<span>我是第三个span</span>
<div class="txt">div文本</div>
</div>
```
### 2.子代选择器
子代选择器他只能选择他的子代范围内的选择器,也就是父子关系
- 语法
```css
E > F {
样式声明;
}
```
- 描述:【大于】号 连接一个或多个选择器
- 作用: 选择E元素内部包含的所有直接子元素F(第一嵌套层级)
```html
父类选择器与子代选择器之间与大于号隔开
/* .warp 范围内所有的子元素span都有效 */
.wrap>span {
color: tomato;
}
<div class="wrap">
<span>我是第一个span</span>
<ul>
<li>
<span>我是第a二span个</span>
</li>
</ul>
<span>我是第三个span</span>
<div class="txt">div文本</div>
</div>
</div>
```
### 3.群组选择器
群组选择器是在样式表中有很多具有相同样式的元素,为了尽量减少代码,我们可以用群组选择器
群组选择器是将任意多个选择器分在一组,每个选择器之间用逗号隔开
- 语法
```css
E,F {
样式声明;
}
```
- 描述:【逗号】连接一个或多个选择器
- 作用: 使用逗号分隔的列表来对选择器进行分组,给列表中每一个选择器选中的元素设置样式
```html
选择器1,选择器2,选择器3{};
选择器1和选择器2选择器3是都具有相同的样式的
选择器1和选择器2选择器3中间以逗号来隔开: 选择器1,选择器2,选择器
注意:最后一个选择器后面不用加逗号
h2,
h3,
h6,
div,
.box,
#box2 {
color: blue;
}
<h2>h2h2h2h2h2h</h2>
<h3>h3h3h3h3h3</h3>
<h6>h6h6h6h6h6h</h6>
<div>divdivdiv</div>
<div class="box">box111</div>
<p id="box2">ppppp</p>
```
### 4.伪类链接选择器
用于添加特殊效果
- 语法
```
选择器:伪类{ }
```
- 用于设置链接的不同状态
```css
a:link{ 链接的默认样式 }
a:visited{ 链接访问过后的样式 }
a:hover{ 鼠标悬停的样式 }
a:active{ 鼠标按下的样式 }
a:link {
color: tomato;
}
a:visited {
color: yellow;
}
a:hover {
color: purple;
}
a:active {
color: greenyellow;
}
```
> 四个伪类状态都有效:L-v-H-a
- :hover不仅可以表示链接的悬停,也可以用于其他标签中
```html
/* 鼠标悬停到.box1盒上,让其本身的背景颜色变为蓝色 */
.box1:hover{
background-color: lightblue;
}
/* 鼠标悬停到.box2盒上,让p标签文字颜色变为红色 */
.box2:hover p{
color: red;
}
/* 鼠标悬停到.box3上,让p标签和h3标签的文字颜色都变为blue */
.box3:hover h3,
.box3:hover p{
color: red;
}
.box3 :hover{
color: blue;
}
```
### 5.相邻选择器
- 语法
- 示例:E+F{ 样式声明 } 用加号连接
- 描述:【加号】 连接一个或多个选择器
- 作用:E元素之后紧跟着的兄弟元素F
- 代码示例
```
.box + p{
background-color:red
}
<p>这个P元素不会被应用样式</p>
<div class="box">box</div>
<p>这个P元素会被应用样式</p>
<p>这个P元素不会被应用样式</p>
```
```html
兄弟之间的hover
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 100px;
height: 100px;
background: tomato;
}
.con {
width: 300px;
height: 300px;
height: 0;
background: yellowgreen;
transition: 2s;
}
.box:hover+.con {
height: 300px;
background-color: blue;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="con"></div>
</body>
</html>
```
# 四、CSS 盒模型
## 概述
CSS 盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:外间距、边框、内填充、和实际内容。(即装东西的容器)
所有 HTML 标签可以看作盒子,在 CSS 中,"box model" 这一术语是用来设计和布局时使用的。
(即网页布局 就是利用 CSS 摆盒子)


## 1、内容 content
概述 :CSS通过为元素设置width和height属性值来规定元素的content内容区域的大小。
元素的内容及子元素默认从内容区域开始排列。
### 1.width:宽度
length:像素px,rem,em等单位
auto:默认值,浏览器可以计算出内容的实际宽度
百分比%:定义基于包含块(父元素)的宽度百分比来计算宽度的
max-width:最大宽度
min-width:最小宽度
### 2.height:高度
length:像素px,rem,em等单位
auto:默认值,浏览器可以计算出内容的实际高度
百分比%:定义基于包含块(父元素)的高度百分比来计算高度的
max-height:最大高度
min-height:最小高度
## 2.内边距
padding
```html
padding内填充
元素边框和元素内容之间的距离
取值
- px
- 百分比
- 上下内填充和左右内填充百分数值是相对于其父元素的width属性计算的
- 不可使用负值
单边填充:
padding-top: 50px;上内填充
padding-left: 20px;左内填充
padding-right: 10px;右内填充
padding-bottom: 20px;下内填充
复合写法:
padding: 20px; 一个值 四个填充
padding: 20px 40px; 两个值 上下填充 左右填充
padding: 20px 40px 60px; 三个值 上填充 左右填充 下填充
padding: 20px 40px 60px 80px; 上填充 右填充 下填充 左填充(顺时针方向)
.box1 {
width: 100px;
height: 100px;
background-color: yellow;
padding-top: 50px;
padding-left: 20px;
padding-right: 10px;
padding-bottom: 20px;
}
.box2 {
width: 100px;
height: 100px;
background-color: tomato;
padding: 20px 40px 60px 80px;
}
```
## 4.外边距
margin
```html
外间距:margin
盒外属性:两个盒子之间的距离
取值
- px
- auto浏览器自动计算
- 百分比
- 允许使用负值
单边外间距:
margin-top: 20px;上外间距
margin-right: 40px;右外间距
margin-bottom: 20px;下外间距
margin-left: 20px;左外间距
复合写法
margin: 20px; 一个值 四个外间距
margin: 20px 40px; 两个值 上下外间距 左右外间距
margin: 20px 40px 60px; 三个值 上外间距 左右外间距 下外间距
margin: 20px 40px 60px 80px; 上外间距 右外间距 下外间距 左外间距(顺时针方向)
盒子水平居中
margin: 0 auto; 需要与width属性配合使用才会有效——固定宽度且居中
```
### 1.外边距应用
- 外边距实现已知宽度的块级盒子居中
- 需要与width属性配合使用才会有效——固定宽度且居中
```css
.box{
width:200px;
/*
margin-left:auto;
margin-right:auto;
*/
margin:0 auto;
}
```