CSS
## 元素显示与隐藏
|  **display属性**  |      说明:不占位置    |
| ----------------- | ------------------- |
| none   | 隐藏某个元素 |
| block | 显示某个元素 |
|  **visibility属性**  |      说明:占位置    |
| ----------------- | ------------------- |
| hidden   | 隐藏某个元素 |
| visible | 显示某个元素 |
|  **overflow属性**  |      说明    |
| ----------------- | ------------------- |
| hidden | 溢出隐藏 |
| visible | 默认显示效果 |
| scroll | 溢出滚动(无论是否溢出,都显示滚动条位置) |
| auto | 溢出滚动(溢出才显示滚动条位置) |
## 多图层进行调用
```
<div class="box">
	  <a href="#">
		<div class="hidden">
		<img src="20201018/images/arr.png">
		</div>
		<img class="tu" src="20201018/images/3.jpg">
	  </a>
</div>
a:hover .hidden{     // 鼠标经过a的时候,a里面的hidden进行显示
				display:block;
    }
```
## 轮廓(outline)
在输入框选中时,四周的线就是轮廓线  outline:none就是无边框
outline-color   颜色
outline-style   样式    none无边框  dotted点线边框   dashed虚线边框   solid实线边框   double双线边框 
outline-width   宽度  
## 防止拖拽文本域(resize)
|  **resize属性**  |      说明    |
| ----------------- | ------------------- |
| none   | 不允许设置文本域大小 |
| both | 用户可以设置高和宽 |
| horizontal | 可以设置宽度 |
| vertical | 可以设置高度 |
## 垂直对齐方式(vertical-align)
|  **vertical-align属性**  |      说明    |
| ----------------- | ------------------- |
| baseline   | 让文字和图片基线对齐 |
| middle | 让文字和图片垂直居中 |
| top | 让文字和图片顶部对齐 |
| bottom | 让文字和图片底部对齐 |
如果控件带有边框,图片撑开边框,那只要让图片垂直居中对齐,即可解决
## 过渡
作用:可以为一个元素在不同状态之间切换的时候添加**过渡效果**
属性名:**transition(复合属性)**
属性值:**过渡的属性  花费时间 (s)**
提示:
* 过渡的属性可以是具体的 CSS 属性
* 也可以为 all(两个状态属性值不同的所有属性,都产生过渡效果)
* transition 设置给元素本身
```
<!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>
    .box {
      width: 200px;
      height: 200px;
      background-color: pink;
      /* 谁做过渡给谁加 */
      transition: all .3s;
    }
    .box:hover {
      height: 300px;
      width: 300px;
      background-color: green;
    }
    input {
      width: 200px;
      height: 30px;
      transition: all .3s;
    }
    /* 当表单得到光标的时候 */
    input:focus {
      width: 300px;
      background-color: pink;
    }
  </style>
</head>
<body>
  <div class="box"></div>
  <input type="text">
</body>
</html>
```
## 表单获得焦点选择器  focus
```
/* 当表单得到光标的时候 */
input:focus {
  width: 300px;
  background-color: pink;
}
```
## 透明度opacity
作用:设置**整个元素的透明度**(包含背景和内容)
属性名:opacity
属性值:0 – 1
* 0:完全透明(元素不可见)
* 1:不透明
* 0-1之间小数:半透明
```
<!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>
    body {
      background: url(./images/huawei.jpg);
    }
    .box1 {
      width: 200px;
      height: 200px;
      background-color: pink;
      /*1. 盒子包括内容都是半透明 */
      /* 0 是完全透明 */
      /* 1 是完全不透明 */
      opacity: 0.2;
    }
    .box2 {
      width: 200px;
      height: 200px;
      /*2. 背景半透明只是盒子背景透明,而里面的内容不透明 */
      background-color: rgba(0, 0, 0, 0.3);
      color: #fff;
    }
  </style>
</head>
<body>
  <div class="box1">
    里面的文字也会半透明
  </div>
  <div class="box2">
    里面的文字不半透明
  </div>
</body>
</html>
```
## 光标类型cursor
作用:鼠标悬停在元素上时指针显示样式
属性名:cursor
|  **cursor属性**  |      说明    |
| ----------------- | ------------------- |
| default   | 默认值,通常是箭头 |
| pointer | 小手效果,提示用户可以点击 |
| text | 工字型,提示用户可以选择文字 |
| move | 十字光标,提示用户可以移动 |
```
<!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>
    div:nth-child(1) {
      cursor: default;
    }
    div:nth-child(2) {
      /* 小手 */
      cursor: pointer;
    }
    div:nth-child(3) {
      /* 文本 */
      cursor: text;
    }
    div:nth-child(4) {
      /* 移动 */
      cursor: move;
    }
    div:nth-child(5) {
      /* 禁止 */
      cursor: not-allowed;
    }
    button {
      cursor: pointer;
    }
  </style>
</head>
<body>
  <div>鼠标默认</div>
  <div>鼠标小手</div>
  <div>鼠标选择文本</div>
  <div>鼠标移动</div>
  <div>鼠标禁止</div>
  <button>注册</button>
</body>
</html>
```
## 禁用鼠标样式

```
div:nth-child(5) {
  /* 禁止 */
  cursor: not-allowed;
}
```
## 表格样式-合并相邻两个边框

```
<!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>
    table {
      width: 700px;
      height: 400px;
      margin: 0 auto;
      text-align: center;
    }
    table,
    tr,
    td {
      border: 1px solid pink;
      /* 合并相邻的两个边框 */
      border-collapse: collapse;
    }
    /* 2n 偶数 / even   */
    /* tr:nth-child(2n) {
      background-color: #eee;
    } */
    tr:nth-child(even) {
      background-color: #eee;
    }
    /* 2n+1 奇数   odd */
    tr:nth-child(odd) {
      background-color: #ddd;
    }
  </style>
</head>
<body>
  <table>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
    <tr>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
      <td>内</td>
    </tr>
  </table>
</body>
</html>
```
## 溢出的文字隐藏(white-space)
white-space  设置检索对象内的文本的显示方式 
超出文字以省略号显示的方法
属性名:white-space
|  **white-space属性**  |      说明    |
| ----------------- | ------------------- |
| nowrap   | 文本不会换行,文本会在在同一行上显示所有文本 |
属性名:overflow
|  **overflow属性**  |      说明    |
| ----------------- | ------------------- |
|  hidden  | 隐藏溢出的文字 |
属性名:text-overflow
|  **text-overflow属性**  |      说明    |
| ----------------- | ------------------- |
|  clip  | 不显示省略标记(...),而是简单的裁切 |
|  ellipsis  | 当对象内文本溢出时显示省略标记(...) |
>d 直接复制以下代码,溢出文字不显示省略号
```
// 这是一套代码
 white-space:nowrap;
 overflow:hidden;
 text-overflow:clip;
```
1、文字一行显示不换行 white-space:nowrap;    
2、溢出部分隐藏   overflow:hidden;
3、超出的部分以省略号显示   text-overflow:ellipsis;
## CSS精灵技术 (sprite)
CSS 精灵,也叫 **CSS Sprites**,是一种网页**图片应用处理方式**。把网页中**一些背景图片**整合到**一张图片**文件中,再**background-position** 精确的定位出背景图片的位置。

优点:减少服务器被请求次数,减轻服务器的压力,提高页面加载速度

实现步骤:
1. 创建盒子,**盒子尺寸**与**小图**尺寸**相同**
2. 设置盒子**背景图**为精灵图
3. 添加 **background-position** 属性,改变**背景图位置**
3.1 使用 PxCook 测量小图片**左上角坐标**
3.2 取**负数**坐标为 background-position 属性值(向左上移动图片位置)
案例-写出自己的名字
```
<!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>
    div {
      display: inline-block;
      margin: 0 15px;
      background: url(./images/abcd.jpg) no-repeat;
    }
    .l {
      width: 96px;
      height: 112px;
      background-color: pink;
      background-position: -5px -275px;
    }
    .i {
      width: 62px;
      height: 107px;
      background-position: -324px -141px;
    }
    .u {
      width: 112px;
      height: 112px;
      background-position: -476px -421px;
    }
    span {
      display: block;
      width: 106px;
      height: 118px;
      background: url(./images/abcd.jpg) no-repeat;
      /* 过渡 */
      transition: .2s;
    }
    span:hover {
      /* background-position: -118px -12px; */
      background-position: -484px -10px;
      /* width: 95px; */
      /* background-position: -3px -137px; */
    }
  </style>
</head>
<body>
  <div class="l"></div>
  <div class="i"></div>
  <div class="u"></div>
  <span></span>
</body>
</html>
```
          精灵图就是通过背景图,切换位置,让一张图里面的多张小图,进行显示,精灵图的坐标一般都是负值
background的使用方式一样
```
              地址     不平铺   X   Y向下是负值
background: url(url) no-repeat 0 -100px;
```
            
 滑动门    左右两张背景图拼接,即为滑动门
## 边框重叠线,解决方法
float:left;           // 即可解决重叠之间的粗线
margin-left:-1px;
margin-top: -1px;
// 如果重叠引起的缺边,压住的解决方法
position:relative;    
## CSS制作三角形
```
p {
    width:0;
    height:0;
    border-style:solid;
    border-width:10px;
    border-color:red transparent transparent transparent;
                   // 修改颜色来转变方向
}
<p> </p>
```
## 字体引入到HTML
第一步:引入字体CSS到HTML
```
  <link rel="stylesheet" href="./fonts/iconfont.css">
```
第二步:给盒子使用字体
```
<i class="iconfont 图标css名称"></i>
<i class="iconfont icon-search"></i>
```
## 引入ico图标  网页标签的小图标 
### 网站图标
```    
<link rel="shortcut icon" href="favicon.ico"  type="image/x-icon"/>
```
favicon.ico 放到根目录里面
### 网站标题(title)
```
<title>小兔鲜</title>
```
### 网站说明(Description)
```
<meta name="description" content="网站介绍内容"/>
```
### 网站关键词(Keywords)
不要超过120个汉字,用英文逗号分隔,
Keywords   网站关键词  跟Description用法相似,一般6-8个关键词
```
<meta name="keywords" content="HTML,CSS,JavaScript">
```
## css变量
```
<!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>
    /* 1. 声明变量 */
    :root {
      --myColor: blue;
    }
    /* 2. 使用变量 */
    .box {
      color: var(--myColor);
    }
    .box1 {
      background-color: var(--myColor);
    }
    .box2 {
      border: 1px solid var(--myColor);
    }
  </style>
</head>
<body>
  <div class="box">文字</div>
  <div class="box1">文字</div>
  <div class="box2">文字</div>
</body>
</html>
```