HTML+CSS学习笔记

HTML
HTML骨架:(VS Code 可以快速生成骨架:在 HTML 文件(.html)中,!(英文)配合 Enter / Tab 键)
  html:整个网页
  head:网页头部,用来存放给浏览器看的信息,例如 CSS
  title:网页标题
  body:网页主体,用来存放给用户看的信息,例如图片、文字
 
常用标签:
  1、标题标签:(文字加粗、字号逐渐减小、独占一行(换行))  
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>.
  2、段落标签:(独占一行、段落之间存在间隙)
    <p>段落</p>
  3、换行和水平线:
    <br>、<hr>
  4、文本格式化标签:
    <strong></strong>:加粗
    <em></em>:倾斜
    <ins></ins>:下划线
    <del></del>:删除线
  5、图像标签:(在网页中插入图片)
    <img  src="图片的 URL" alt=“替换文本” title=“提示文本”>:src用于指定图像的位置和名称,使用相对路径
    图像属性:
      1、alt:替换文本。图片无法显示的时候显示文字
      2、title:提示文本。鼠标悬停在图片上面的时候显示的文字
      3、width:图片的宽度。值为数字,没有单位
      4、height:图片的高度。值为数字,没有单位
  6、超链接标签:(点击跳转到其他页面)
    <a href="https://www.baidu.com">跳转到百度</a>
    属性:
      1、href :href 属性值是跳转地址,是超链接的必须属性。开发初期,不确定跳转地址,则 href 属性值写为 #,表示空链接,页面不会跳转,在当前页面刷新一次
      2、target:超链接默认是在当前窗口跳转页面,添加 target="_blank" 实现新窗口打开页面。
  7、音频:(插入一段音频)
    <audio src="音频的 URL" loop=“loop” autoplay=“autoplay”></audio>
    属性:
      1、src:音频URL,必备属性
      2、control:显示音频控制面板
      3、loop:循环播放
      4、autoplay:自动播放
  8、视频:(插入一段视频)
    <video src="视频的 URL"></video>
    <video src="./media/vue.mp4" controls loop muted autoplay></video>
    属性:
      1、src:视频URL,必备属性
      2、control:显示视频控制面板
      3、loop:循环播放
      4、autoplay:自动播放
      5、muted:静音播放
  9、列表
    1、无序列表
      布局排列整齐的不需要规定顺序的区域。
      标签:ul 嵌套 liul 是无序列表,li 是列表条目。
      
 1 <ul>
 2   <li>第一项</li>
 3   <li>第二项</li>
 4   <li>第三项</li>
 5   ......
 6 </ul>
 7 <ol>
 8   <li>第一项</li>
 9   <li>第二项</li>
10   <li>第三项</li>
11   ......
12 </ol>
View Code
     2、有序列表
      作用:布局排列整齐的需要规定顺序的区域。
      标签:ol 嵌套 li,ol 是有序列表,li 是列表条目。
 
1 <ol>
2   <li>第一项</li>
3   <li>第二项</li>
4   <li>第三项</li>
5   ......
6 </ol>
View Code
     3、定义列表
      标签:dl 嵌套 dt 和 dd,dl 是定义列表,dt 是定义列表的标题,dd 是定义列表的描述 / 详情。
1 <dl>
2   <dt>列表标题</dt>
3   <dd>列表描述 / 详情</dd>
4    ......
5 </dl>
View Code

  

 

   10、表格
    table 嵌套 tr,tr 嵌套 td / th。
    
 1 <table border="1">
 2   <tr>
 3     <th>姓名</th>
 4     <th>语文</th>
 5     <th>数学</th>
 6     <th>总分</th>
 7   </tr>
 8   <tr>
 9     <td>张三</td>
10     <td>99</td>
11     <td>100</td>
12     <td>199</td>
13   </tr>
14   <tr>
15     <td>李四</td>
16     <td>98</td>
17     <td>100</td>
18     <td>198</td>
19   </tr>
20   <tr>
21     <td>总结</td>
22     <td>全市第一</td>
23     <td>全市第一</td>
24     <td>全市第一</td>
25   </tr>
26 </table>
View Code
   11、表单
    收集用户信息
    <input type="..." >
    属性:
      1、type:
      1、text:文本框,用于输入单行文本
      2、password:密码框
      3、radio:单选框
      4、checkbox:多选框
      5、file:上传文件
    2、placeholder:标签站位文本,用于显示提示信息
  
  单选框:
    <input type="radio" name="gender" checked> 男
    <input type="radio" name="gender"> 女
    属性:
      1、name:控件名称。控件分组,同组只能选一个
      2、checked:默认选中
  上传文件:
    默认情况下,文件上传表单控件只能上传一个文件,添加 multiple 属性可以实现文件多选功能。
    <input type="le" multiple>
    属性:
      multiple:支持多选
  多选框:
    <input type="checkbox" checked> 敲前端代码
  下拉菜单:
    select 嵌套 option,select 是下拉菜单整体,option是下拉菜单的每一项。
    默认显示第一项,selected 属性实现默认选中功能
    
1 <select>
2   <option>北京</option>
3   <option>上海</option>
4   <option>广州</option>
5   <option>深圳</option>
6   <option selected>武汉</option>
7 </select>
8 <textarea>默认提示文字</textarea>
View Code
   文本域:
    多行输入文本的表单控件。style=“resize:none” ,避免文本框大小由用户自定义,禁用文本域拖拽拉伸功能
    <textarea style=“resize:none”>默认提示文字</textarea>
  按钮:
    <button type="">按钮</button>
    性:
      1、submit:提交按钮,点击后提交数据到后台(默认功能)
      2、reset:重置功能,点击后将表单控件恢复默认值
      3、button:普通按钮,默认没有功能,配合JavaScript使用
   
 1 <!-- form 表单区域 -->
 2 <!-- action="" 发送数据的地址 -->
 3 <form action="">
 4   用户名:<input type="text">
 5   <br><br>
 6   密码:<input type="password">
 7   <br><br>
 8  
 9   <!-- 如果省略 type 属性,功能是 提交 -->
10   <button type="submit">提交</button>
11   <button type="reset">重置</button>
12   <button type="button">普通按钮</button>
13 </form>
14 <div>div 标签,独占一行</div>
15 <span>span 标签,不换行</span>
View Code
 12、无语义布局标签
  div:独占一行
  span:不换行
13、有语义的布局标签:
  1、header:网页头部
  2、nav:网页导航
  3、footer:网页底部
  4、aside:网页侧边框
  5、section:网页块区
  6、article:网页文章
14、字符实体
  空格:&nbsp;
  <:&lt;
  >:&gt;
 
 
CSS的引入方式:
  内部样式表:CSS 代码写在 style 标签里面
    <style>/* 选择器 { } */</style>
  外部样式表: 
    <link rel="stylesheet" href="./my.css">
    1、CSS 代码写在单独的 CSS 文件中(.css
    2、 HTML 使用 link 标签引入
  行内样式:配合 JavaScript 使用,CSS 写在标签的 style 属性值里
    <div style="color: red; font-size:20px;">这是 div 标签</div>
选择器:
  1、标签选择器:
    使用标签名作为选择器 选中同名标签设置相同的样式
    <style> p {}</style>
  2、类选择器
    <style> .classname {}</style>
    类名自定义,不要用纯数字或中文,尽量用英文命名
    一个类选择器可以供多个标签使用
    一个标签可以使用多个类名,类名之间用空格隔开
  3、id选择器    
    id 选择器一般配合 JavaScript 使用,很少用来设置 CSS 样式
    <style> #idname {}</style>
  4、通配符选择器,去除一些样式或者设置默认的样式
    <style> * {}</style>
  5、复合选择器
    1、后代选择器:
      选中某元素的后代元素
      父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开
      <style> div span {}</style>
    2、子代选择器
      选中某元素的子代元素(最近的子级
      父选择器 > 子选择器 { CSS 属性},父子选择器之间用 > 隔开。
      <style>div > span {color: red;}</style>
    3、并集选择器
      选中多组标签设置相同的样式
      选择器1, 选择器2, ..., 选择器N { CSS 属性},选择器之间用 , 隔开。
      <style>div,span,p {colorred;}</style>
    4、交集选择器
      选中同时满足多个条件的元素
      选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号
      <style>div.classname {colorred;}</style>
    5、伪类选择器
      伪类表示元素状态,选中元素的某个状态设置样式。
      选择器:hover { CSS 属性 }
      <style>
      a:hover {color: red;}
      .box:hover {color: green;}
      </style>
    6、结构伪类选择器
      根据元素的结构关系查找元素
      E:first-child:查找第一个E元素
      E:last-child:查找最后一个E元素
      E:nth-child(N):查找第N个E元素(N从1开始)
        偶数标签:2n
        奇数标签:2n+1
        5的倍数标签:5n
        第五个以后标签:5+n
        第五个之前标签:5-n
    7、伪元素选择器
      创建虚拟元素(伪元素),用来摆放装饰性的内容
      必须设置 content: ””属性,用来 设置伪元素的内容,如果没有内容,则引号留空即可
      伪元素默认是行内显示模式。权重和标签选择器相同
 
      E::before:在E元素里面最前面添加一个伪元素
      E::after:在E元素里面最后面添加一个伪元素
      div::before {content: "before 伪元素";}      
      div::after {content: "after 伪元素";}
 
CSS特性
  1、继承性:
    子级默认继承父级的文字控制属性

 

  2、层叠性:选择器类型相同则遵循层叠性,否则按选择器优先级判断。
    1、相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性
    2、不同的属性会叠加:不同的 CSS 属性都生效
  3、也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则
    基础选择器
      规则:选择器优先级高的样式生效
      公式:通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
      (选中标签的范围越大,优先级越低)
    复合选择器-叠加
      叠加计算:如果是复合选择器,则需要权重叠加计算。
      公式:(每一级之间不存在进位)
      (行内样式,id选择器个数,类选择器个数,标签选择器个数)
      规则:
        从左向右依次比较选个数,同一级个数多的优先级高,如果个数相同,则向后比较
        !important 权重最高
        继承权重最低
  
文字控制属性
  1、字体大小:font-size
  2、字体样式(是否倾斜):font-style
    normal(正常)
    italic(倾斜)
  3、行高:line-height  (可实现垂直居中,行高 = 盒子高度) 行高 = 上间距 + 文本高度 + 下间距
    数字+px
    数字:当前标签font-size属性值的倍数
  4、字体族:font-family。font-family属性值可以书写多个字体名,各个字体名用逗号隔开,执行顺序是从左向右依次
    font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
  5、是否加粗:font-weight
    不加粗:400
    加粗:700
  6、font复合属性
    属性的简写方式,一个属性对应多个值的写法,各个属性值之间用空格隔开
    font: 是否倾斜 是否加粗 字号/行高 字体(必须按顺序书写)
  7、文本缩进:text-indent
    数字+px
    数字 + em(推荐:1em = 当前标签的字号大小
  8、文本对齐方式:text-align
    left:左对齐
    center:水平居中
    right:右对齐
  9、文本修饰符:text-decoration  (一般用于清除A标签的下划线效果和鼠标悬浮时显示下划线)
    none:无
    underline:下划线
    line-through:删除线
    overline:上划线
  10、文字颜色:color
    颜色关键词:颜色英文单词(red、blue)
    rgb表示法:rgb(r,g,b)
    rgba表示法:rgb(r,g,b,a)。a表示透明度,取值0-1
    十六进制表示法:#RRGGBB
   
背景属性
  1、背景图:background-image:URL()。默认是有平铺效果
  2、平铺方式:background-repeat
    1、no-repeat:不平铺
    2、repeat:平铺(默认效果)
    3、repeat-x:水平方向平铺
    4、repeat-y:垂直方向平铺
  3、宽度:width
  4、高度:height
  5、背景颜色:background-color
  6、背景图位置:background-position
    1、关键字:
      left:左侧
      right:右侧
      center:居中
      top:顶部
      bottom:底部
    2、坐标
      水平:正数向右,负数向左
      垂直:正数向下,负数向上
  7、背景图缩放:background-size
    1、关键字:
      cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见
      contain:等比例缩放背景图片以完全装入背景区,可能背景区部分空白
    2、百分比:根据盒子尺寸计算图片大小
    3、数字 + 单位(例如:px
  8、背景图固定(背景不会随着元素的内容滚动):background-attachment:fixed
  9、背景复合属性:    
    background:背景色 背景图 背景图平铺方式 背景图位置/背景图缩放 背景图固定(空格隔开各个属性值,不区分顺
 
显示模式
  1、块级元素(div)
    1、独占一行
    2、宽度默认是父级的100%
    3、添加宽高属性生效
  2、行内元素(span)
    1、一行可以显示多个
    2、设置宽高属性不生效
    3、宽高尺寸由内容撑开
  3、行内块元素
    1、一行可以显示多个
    2、设置宽高属性生效
    3、宽高尺寸也可以由内容撑开
  4、转换显示模式:display
    block:块级
    inline-block:行内块
    inline:行内
 
盒子模型
  1、组成
    内容区域:width、height
    内边距:padding
    边框线:border
    外边距:margin

 

  2、边框线:border
    属性值:边框线粗细(XXpx) 线条样式  颜色(不区分顺序)
      线条样式:
        solid:实线
        dashed:虚线
        dotted:点线
    单方向边线:border-方位名词(left、right、top、bottom)
   3、内边距:padding、padding-方位名词
    多值写法:(开始顺时针赋值,当前方向没有数值则与对面取值相同
      一个值:四个方向都相同
      俩个值:上下、左右
      三个值:缺失的值跟相对的值一样
      四个值:上、右、下、左
    內减模式:你想要设置的边框和内边距的值就会包含在 width 内的,否则盒子会被扩大,这个属性一般放在 * {} 内,作为默认样式
      box-sizing: border-box
 
  4、外边距:margin
     padding 属性值写法、含义相同
  5、版心居中:
    margin:0 center
  6、清除默认样式
 1 /* 清除默认内外边距 */
 2 * {
 3   margin: 0;
 4   padding: 0;
 5   box-sizing: border-box;
 6 }
 7 /* 清除列表项目符号 */
 8 li {
 9   list-style: none;
10 }
View Code
   7、元素溢出(控制溢出元素的内容的显示方式):overow
    hidden:溢出隐藏
    scroll:溢出滚动(无论是否溢出都会出现滚动条)
    auto:溢出滚动(溢出才会出现滚动条)
  8、外边距问题:
    1、合并现象:
      场景:垂直排列的兄弟元素,上下 margin 合并
      现象:取两个 margin 中的较大值生效
    2、外边距塌陷
      场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题
      现象:导致父级一起向下移动
      解决方法:
        1、取消子级margin,父级设置padding
        2、父级设置 overow: hidden
        3、父级设置 border-top
  9、行内元素内外边距问题
    场景:行内元素添加 margin padding,无法改变元素垂直位置
    解决方法:给行内元素添加 line-height 可以改变垂直位置
  10、圆角:设置元素的外边框为圆角,正圆形状:给正方形盒子设置圆角属性值为 宽高的一半 / 50%
    属性名:border-radius
    属性值:数字+px / 百分比(属性值是圆角半径)   
    多值写法:(从左上角开始顺时针赋值,当前角没有数值则与对角取值相同
      一个值:四个角都相同
      俩个值:左上右下、右上左下
      三个值:缺失的值跟相对的值一样
      四个值:左上、右上、右下、左下
  11、盒子阴影:给元素设置阴影效果
    属性名:box-shadow
    属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影
    注意:
      1、X 轴偏移量 Y 轴偏移量 必须书写
      2、默认是外阴影,内阴影需要添加 inset
    box-shadow: 2px 5px 10px 0 rgba(0, 0, 0, 0.5) inset;
 
Flex 布局
  1、标准流:标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个
  2、Flex 
    Flex 布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。
    Flex 模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活
    1、Flex组成:设置方式:给元素设置 display: ex,子元素可以自动挤压或拉伸
      组成部分:
        1、弹性容器
   2、弹性盒子
     3、主轴:默认在水平方向
  4、侧轴 / 交叉轴:默认在垂直方向
 
 
       主轴对齐方式:
        属性名:justify-content
        属性值:
          flex-start:默认值,弹性盒子从起点开始依次排列
          flex-end:弹性盒子从终点开始依次排列
          center:弹性盒子延主轴居中排列,没有间隔
          space-between:弹性盒子延主轴均匀排列,空白间距均分在弹性盒子中间(最左最右没有间距)
          space-around:弹性盒子延主轴均匀排列,空白间距均分在弹性盒子俩侧(最左最右有间距)
          space-evenly:弹性盒子延主轴均匀排列,弹性盒子和容器之间间距相等(最左最右的间隔和每个盒子的间距一样)
 
       侧轴对齐方式:如果换行的话弹性容器会根据所得行数平分高度,侧轴对齐方式是各自根据每行的高度来对齐,当行对齐
        align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式(给弹性容器设置)
        align-self:单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)
        属性值:
          stretch:弹性盒子延侧轴线被拉伸至铺满容器(弹性盒子没有设置侧轴方向尺寸则默认拉伸)
          center:弹性盒子延侧轴线居中排列
          flex-start:弹性盒子从起点开始依次排列
          flex-end:弹性盒子从终点开始依次排列
 
       修改主轴方向:主轴默认在水平方向,侧轴默认在垂直方向
         属性名:flex-direction
         属性值:
          row:水平方向,从左到右,默认方向
          column:垂直方向,从上到下
          row-reverse:水平方向,从右到左
            column-reverse:垂直方向,从下到上
 
      弹性伸缩比:控制弹性盒子的主轴方向的尺寸
        属性名:flex
        属性值:整数数字,表示占用父级剩余尺寸的份数
        一行内的弹性盒子有一些是固定尺寸的,剩余部分则可以根据flex属性来划分剩余宽度,例如一个div是flex:1,另一个div是flex:2,则第一个为剩余的1/3,另一个是2/3
 
        弹性盒子换行:弹性盒子可以自动挤压或拉伸(弹性盒子会改变原来的宽度),默认情况下,所有弹性盒子都在一行显示
        属性名:flex-wrap
        属性值
          wrap:换行
          nowrap:不换行(默认)
       
      行内对齐方式:该属性对单行弹性盒子模型无效,与侧轴对齐不同,侧轴对齐是当行,行内对齐是多行,类似于主轴对齐,只是轴的方向不对
        属性名:align-content
          flex-start:默认值,弹性盒子从起点开始依次排列
          flex-end:弹性盒子从终点开始依次排列
          center:弹性盒子延主轴居中排列,没有间隔
          space-between:弹性盒子延主轴均匀排列,空白间距均分在弹性盒子中间(最左最右没有间距)
          space-around:弹性盒子延主轴均匀排列,空白间距均分在弹性盒子俩侧(最左最右有间距)
          space-evenly:弹性盒子延主轴均匀排列,弹性盒子和容器之间间距相等(最左最右的间隔和每个盒子的间距一样)
 
定位:灵活的改变盒子在网页中的位置
  相对定位:position:relative。
    特定:
      1、不脱标,占用自己原来位置
      2、显示模式特点保持不变
      3、设置边偏移则相对自己原来位置移动
  
  绝对定位:position:relative
    使用场景:子级绝对定位,父级相对定位(子绝父相),不然会向上找定位,最后到html标签
    特点:
      1、脱标,不占位
      2、显示模式具备行内块特点
      3、设置边偏移则相对最近的已经定位的祖先元素改变位置
      4、如果祖先元素都未定位,则相对浏览器可视区改变位置
 
  固定定位:position:flxed
    元素的位置在网页滚动时不会改变
    特点:
      1、脱标,不占位
      2、显示模式具备行内块特点
      3、设置边偏移相对浏览器窗口改变位置
  
  堆叠层级:
    默认效果:按照标签书写顺序,后来者居上
    作用:设置定位元素的层级顺序,改变定位元素的显示顺序
    属性名:z-index
    属性值:整数数字(默认值为0,取值越大,层级越高)
  
 CSS精灵:
  CSS 精灵,也叫 CSS Sprites,是一种网页图片应用处理方式。把网页中一些背景图片整合到一张图片文件中,再
  background-position 精确的定位出背景图片的位置。
  优点:减少服务器被请求次数,减轻服务器的压力,提高页面加载速度
  实现步骤:
  1. 创建盒子,盒子尺寸小图尺寸相同
  2. 设置盒子背景图为精灵图
  3. 添加 background-position 属性,改变背景图位置
    3.1 使用 PxCook 测量小图片左上角坐标
    3.2 负数坐标为 background-position 属性值(向左上移动图片位置)
 
 字体图标:(例如购物车图标)
  字体图标:展示的是图标,本质是字体(字体的属性都生效,如颜色、大小)
  作用:在网页中添加简单的、颜色单一的小图标
  优点
    灵活性:灵活地修改样式,例如:尺寸、颜色等
    轻量级:体积小、渲染快、降低服务器请求次数
    兼容性:几乎兼容所有主流浏览器
    使用方便:先下载再使用
  使用:
    1、引入字体样式文件
      <link rel="stylesheet" href="./iconfont/iconfont.css">
    2、标签使用字体图标类名
      <span class="iconfont icon-icon-test3"></span>
    
CSS修饰属性
  垂直对齐方式,因为浏览器把行内块、行内标签当做文字处理,默认按基线对齐,会有空白间距
  属性名:vertical-align 
  属性值:
    1、baseline:基线对齐(默认)
    2、top:顶部对齐
    3、middle:居中对齐
    3、bottom:底部对齐
  

 

 过渡
  作用:可以为一个元素在不同状态之间切换的时候添加过渡效果
  属性名:transition(复合属性)
  属性值:过渡的属性 花费时间 (s)
  提示:
    1、过渡的属性可以是具体的 CSS 属性
    2、也可以为 all(两个状态属性值不同的所有属性,都产生过渡效果)
    3、transition 设置给元素本身
  
 1 img {
 2   width: 200px;
 3   height: 200px;
 4   transition: all 1s;
 5 }
 6  
 7 img:hover {
 8   width: 500px;
 9   height: 500px;
10 }
View Code

 

 
透明度opacity
  作用:设置整个元素的透明度(包含背景和内容)
  属性名:opacity
  属性值:0 – 1
    0:完全透明(元素不可见)
    1:不透明
    0-1之间小数:半透明
 
 
光标类型cursor
  作用:鼠标悬停在元素上时指针显示样式
  属性名:cursor
    1、default:默认值,通常是箭头
    2、pointer:小手效果,提示用户可以点击
    3、text:工字型,提示用户可以选择文字
    4、move:十字光标,提示用户可以移动
 
平面转换
  作用:为元素添加动态效果,一般与过渡配合使用
  概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜)
  平面转换也叫 2D 转换,属性是 transform
  
  平移:transform: translate(X轴移动距离, Y轴移动距离)
    取值
      1、像素单位数值
      2、百分比(参照盒子自身尺寸计算结果)
      3、正负均可
    技巧
      1、translate() 只写一个值,表示沿着 X 轴移动
      2、单独设置 X Y 轴移动距离:translateX() translateY()
  
  旋转:transform: rotate(旋转角度);
     取值:角度单位是 deg
    技巧
      1、取值正负均可
      2、取值为正,顺时针旋转
      3、取值为负,逆时针旋转
   
  转换原点:transform-origin: 水平原点位置 垂直原点位置;
    默认情况下,转换原点是盒子中心点
      取值:
      1、方位名词lefttoprightbottomcenter
      2、像素单位数值
      3、百分比
  
  多重转换:transform: translate() rotate();
    多重转换技巧:先平移再旋转
    多重转换原理:以第一种转换方式坐标轴为准转换形态
      1、旋转会改变网页元素的坐标轴向
      2、先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果
 
  缩放:
    transform: scale(缩放倍数);
    transform: scale(X轴缩放倍数, Y轴缩放倍数);
    技巧
      1、通常,只为 scale() 设置一个值,表示 X 轴和 Y 轴等比例缩放
      2、取值大于1表示放大,取值小于1表示缩小
  
  倾斜:transform: skew();
    取值:角度度数 deg
 
渐变:渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景
  线性渐变:
    取值:
      渐变方向:可选
        to 方位名词
        角度度数
      终点位置:可选
        百分比
    background-image: linear-gradient(
      渐变方向,
      颜色1 终点位置,
      颜色2 终点位置,
      ......
      );
 
    background-image: linear-gradient(
    transparent, // 透明
    rgba(0,0,0,0.5)
    );
  
  径向渐变
    取值:
      半径可以是2条,则为椭圆
      圆心位置取值:像素单位数值 / 百分比 / 方位名词
    background-image: radial-gradient(
    半径 at 圆心位置,
    颜色1 终点位置,
    颜色2 终点位置,
    ......
    );
 
空间转换
  空间:是从坐标轴角度定义的 X Y Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同(类似屏幕到眼睛的距离)
  空间转换也叫 3D转换
  属性:transform
  
  平移:默认情况下,Z 轴平移没有效果,原因:电脑屏幕默认是平面,无法显示 Z 轴平移效果
    transform: translate3d(x, y, z);
    transform: translateX();
    transform: translateY();
    transform: translateZ();
  
  视距
    作用:指定了观察者与 Z=0 平面的距离,为元素添加透视效果
    透视效果:近大远小、近实远虚
    属性:(添加给父级,取值范围 800-1200,一般取1000)
    perspective: 视距;
 
  旋转:
    rotate3d(x, y, z, 角度度数) :用来设置自定义旋转轴的位置及旋转的角度
    xyz 取值为0-1之间的数字
  
  缩放:
    transform: scale3d(x, y, z);
    transform: scaleX();
    transform: scaleY();
    transform: scaleZ();
 
 
  立体呈现
    作用:设置元素的子元素是位于 3D 空间中还是平面中
    属性名:transform-style
    属性值:
      flat:子级处于平面中
      preserve-3d:子级处于 3D 空间
 
 动画
  过渡:实现两个状态间的变化过程
  动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)
  使用:
    1、定义动画      
      /* 方式一 */
      @keyframes 动画名称 {
      from {}
      to {}
      }

      /* 方式二 */
      @keyframes 动画名称 {
      0% {}
      10% {}
      ......
      100% {}
      }
    2、使用动画
      animation: 动画名称 动画花费时长;
    
  animation复合属性
    animation:动画名称  动画时长  速度曲线  延迟时间  重复次数  动画方向  执行完毕状态
    提示:
      动画名称和动画时长必须赋值
      取值不分先后顺序
      
如果有两个时间值,第一个时间表示动画时长,第二个时间表示延迟时间
  animation拆分写法

 

 1 .box {
 2   width: 600px;
 3   height: 112px;
 4   border: 5px solid #000;
 5   margin: 100px auto;
 6   overow: hidden;
 7 }
 8  
 9 .box ul {
10   display: ex;
11   animation: move 6s innite linear;
12 }
13  
14 /* 定义位移动画;ul使用动画;鼠标悬停暂停动画 */
15 @keyframes move {
16   0% {
17     transform: translate(0);
18   }
19   100% {
20     transform: translate(-1400px);
21   }
22 }
23  
24 .box:hover ul {
25   animation-play-state: paused;
26 }
View Code

 

移动端适配
  vw和基本使用
    vwvh是相对单位,相对视口尺寸计算结果
      vwviewport width1vw = 1/100视口宽度
      vhlviewport height ( 1vh = 1/100视口高度 )
  vw布局
    vw单位的尺寸 = px 单位数值 / ( 1/100 视口宽度 )
 
posted @ 2023-09-17 15:27  小xxxx程序员  阅读(22)  评论(0编辑  收藏  举报