HTML+CSS知识点-周3.md

一、定位position

布局方法:文档流、浮动、层布局(定位)

  • 三种定位:相对定位、绝对定位、固定定位

定位元素的层级设置: 设置了定位的元素可以通过z-index属性调整层级关系,默认值都是0,数字越大层级越高,数字相同,层级跟标签的顺序有关,标签越靠后层级越高

1、相对定位(子绝父相)

  • position:relative;

  • 不脱离文档流,在文档中原本的位置依然为其保留

  • 偏移参考位置: 元素本身在文档流内原本的位置

2、绝对定位

  • position:absolute;

  • 脱离文档流,在文档中原本的位置不保留

  • 偏移参考位置(定位父级): 离绝对定位元素最近的一个带有position属性的祖先元素,如果不存在这样的元素就是参考body定位

3、固定定位

  • position:fixed;

  • 固定定位的元素会脱离文档流,在文档流中原本的位置不保留

  • 偏移参考位置: 浏览器的可视区

定位偏移属性偏移属性:

   left  :   正右,负左

   right :  正左,负右

   top   :  正下,负上

   bottom:  正上,负下

left/top和right/bottom通常使用一个,如果同时使用left/top生效

脱离文档流的元素不会自动占满一行,宽度默认是由内容撑开

4、静态定位

  • position:static;

  • 没有定位,偏移属性失效(left/right/top/bottom)

  • 层级(z-index)也失效

二、圆角

1、简写属性

   border-radius:10px;  四个角圆角半径统一

   border-radius:10px 20px;  左上和右下   右上和左下

   border-radius:10px 20px 30px;  左上   右上和左下   右下

   border-radius:10px 20px 30px 40px;  左上   右上   右下  左下  

   border-radius:50%;---是个圆

2、分解属性

   border-top-left-radius: 20px;

   border-top-right-radius: 40px;

   border-bottom-left-radius: 60px;

   border-bottom-right-radius: 80px;

三、变形 transform

   简写属性
   transform:rotate(-30deg) scale(0.5,2);

1、旋转

   transform:rotate(30deg); 正数顺时针,负数逆时针  

2、缩放

   transform:scale(n);  水平和垂直同时缩放 n 取值 0-1之间缩小 , n>1 就是放大
   
   transform:scale(n-x,n-y);  n-x:水平方向的缩放值,n-y垂直缩放值

四、关键帧动画

1、定义动画的关键帧

   @keyframes move-动画名称{
        0%{}
        
        25%{}

        50%{}

        75%{}

        100%{}
   }

2、调用动画

   简写属性
   animation: move 3s linear infinite alternate;
   动画属性
   animation: animation-name animation-duration animation-iteration-count  animation-timing-function  animation-delay  animation-direction;
  • animation-name: 调用的动画名称

  • animation-duration:整个动画过程需要的时间 s(秒)/ms(毫秒)

  • animation-iteration-count:动画执行的次数 n/infinite(无限次)

  • animation-timing-function: 动画速度曲线

    • ease 慢-快-慢

    • linear 匀速

    • ease-in 慢-快

    • ease-out 快-慢

    • ease-in-out 慢-快-慢

    • cubic-bezier(.08,.73,.42,.93) 贝塞尔曲线 https://cubic-bezier.com/

  • animation-delay: 动画延迟时间 s/ms

  • animation-direction: 动画的方向 alternate(轮流反向)

  • animation-fill-mode: 动画结束位置 forwards(停在终点)

五、过渡动画

过渡使用场景:一般用于元素正常状态和鼠标移入状态(:hover)属性变化时,出现平滑过渡效果

   动画属性
   transition:transition-property transition-duration transition-timing-function transition-delay;
  • transition-property:过渡的属性名 ,all(所有变化的属性都过渡)

  • transition-duration:过渡的时间 s/ms

  • transition-timing-function: 过渡的速度曲线,取值同关键帧动画

  • transition-delay:过渡延迟时间 s/ms

   多个属性过渡
   transition: width 2s linear,height 4s ease,...;
  • 使用示例
情况1
   .box{
        width: 100px;
        transition:all 0.5s linear;<!-- 鼠标脱离时的过渡 -->
   }
   .box:hover{
        width: 200px;
        transition:all 2s linear;  <!-- 鼠标悬停时的过渡 -->
   }
情况2
   .box{
        width: 100px;
            <!-- 鼠标脱离时没有过渡效果 -->
   }
   .box:hover{
        width: 200px;
        transition:all 2s linear;  <!-- 鼠标悬停时的过渡 -->
   }

情况3
   .box{
        width: 100px;
        transition:all 0.5s linear;<!-- 鼠标悬停和脱离时都有过渡,并且效果相同 -->
   }
   .box:hover{
        width: 200px;
   } 
  • 关键帧动画和过渡动画的区别
关键帧动画 过渡动画
动画可设多个状态 动画只有两个状态(开始和结束)
可多次(无限次)运行 触发一次运行一次
不可自动执行,需伪类触发 不会反复运行

六、阴影

1、 盒子阴影

   属性
   box-shadow:x-shadow y-shadow blur spread color inset;

   - x-shadow : 必需,水平阴影位置 ,正数向右偏移,负数向左偏移

   - y-shadow : 必需,垂直阴影位置 ,正数向下偏移,负数向上偏移

   - blur :  可选,阴影的模糊距离

   - spread: 可选,阴影的扩展尺寸

   - color:  可选,阴影的颜色

   - inset:  可选,不设置表示外阴影,设置inset表示内阴影 

   多组阴影
   box-shadow:x-shadow y-shadow blur spread color inset,x-shadow y-shadow blur spread color inset, ... ;

2、 文字阴影

   text-shadow:x-shadow y-shadow blur color;

   - x-shadow : 必需,水平阴影位置 ,正数向右偏移,负数向左偏移

   - y-shadow : 必需,垂直阴影位置 ,正数向下偏移,负数向上偏移

   - blur: 可选,阴影的模糊距离

   - color:可选,阴影的颜色 默认和文字颜色相同

   多组阴影:x-shadow y-shadow blur color,x-shadow y-shadow blur color,...;

七、三角和箭头

1、小三角

实现思路:把盒子宽高设置为0,保留一个边框的颜色,其他边框设置为透明

   .box{
       width: 0px;
       height: 0px;
       border: 50px solid;
       border-color: red transparent transparent;
    }

2、小箭头

实现思路:实现两个三角,通过定位让两个三角部分重叠,上一层三角颜色设置成和背景相同的颜色

<div class="arrow1"></div>
   .arrow1{
           position: relative;
           width: 0px;
           height: 0;
           border: 50px solid;
           border-color: red transparent transparent;
           margin-top: 10px;
    }
   .arrow1::after{
           position: absolute;
           left: -50px;
           top: -55px;
           content: '';
           width: 0px;
           height: 0px;
           border: 50px solid;
           border-color: #fff transparent transparent;
   }

八、透明兼容

1、rgba() 模式颜色: 可以给文字和背景设置颜色(IE低版本不兼容)

给元素设置背景透明时,不会影响里面的内容

2、opacity:0-1; 0完全透明,1不透明,0.X半透明(IE低版本不兼容)

元素整体透明,元素本身以及里面的内容全部透明

3、filter:alpha(opacity=50) IE低版本浏览器专用透明滤镜,效果等同于opacity属性,0代表完全透明,100代表不透明

九、居中技巧

1、父级尺寸未知,子元素尺寸已知

   .outer{
        position:relative;  /*父元素相对定位*/
   }
   .inner{
        width:300px;
        height:200px;
        position:absolute;  /* 子元素绝对定位*/
        left:50%;   /*盒子偏右*/
        top:50%;    /*盒子偏下*/
        margin-left:-150px;   /* 设置为子元素宽度的一半(负值),往左移*/
        margin-top:-100px;  /* 设置为子元素高度的一半(负值),往上移*/
  }

2、父级尺寸和子元素尺寸都可以未知

  .outer{
        position:relative;  /*父元素相对定位*/
  }
  .inner{
        position:absolute;
        left:0;
        right:0;
        top:0;
        bottom:0;
        margin:auto;
        width:300px;
        height:200px;
  }

十、浮动和定位对比

布局方法:文档流、浮动、层布局(定位)

  • 文档流:指的是元素按照本身的属性进行排列,块元素从上往下垂直排列,行内元素从左往右
  • 文本流:元素在页面出现的先后顺序
浮动(水平布局) 定位(层布局)
通常用来实现水平得多列布局(左右、左中右、四列、五列) 通常用来实现元素之间固定的位置关系,或者有覆盖关系的
所有元素(块级、行内、行内块)都可浮动 所有元素(块级、行内、行内块)都可定位
float:left/right; 会使元素脱离文档流 position:absolute/fixed;会使元素脱离文档流
浮动元素脱离文档流,不脱离文本流(文字、图片、表单元素不会被浮动元素覆盖) 定位的元素既脱离文档流,又脱离文本流
  • 脱离文档流的元素特点
不再区分行内和块级
默认宽高都是由内容撑开
能设置宽高,所有盒模型属性

十一、css精灵图(雪碧图)

英文叫法 CSS sprites , “css贴图定位”或“css图像拼合”。
原理: 把一些小图片拼在一张图片上,通过背景引入,用背景定位调整显示的图标。

适合一些小图标,不适合大图背景。

优点 缺点
减少网页http请求次数,提高页面性能 必须要规定好容器的尺寸
减少图片命名困扰 背景定位的值也必须精确计算
更换风格方便 相对比较麻烦

十二、PS操作

1、移动工具  :用来定位图层,或者移动图层

2、历史记录 : 用来返回前面一些操作

  - 撤回  ctrl+z   撤回多步  ctrl+shift+z

  - 直接返回初始状态  F12

3、吸管工具: 用来取页面的色值

4、标尺工具:用来量尺寸

5、放大镜工具: 用来放大或者缩小画布 

  - ctrl+ 加号  放大

  - ctrl+ 减号  缩小    

  - 按住alt  + 鼠标滚轮 向上滚动放大  向下滚动缩小

6、抓手工具:用来移动整个画布  

  - 按住空格键 + 鼠标左键按下拖拽

7、文字工具:添加文字图层,或者选取文字图层,查看文本样式信息

8、保存切片:

 - 存储为web所用格式,快捷键:ctrl+alt+shift+s

 - 设置切片格式和品质

 - 切片选项:

    - 所有切片(划分的切片 + 整个页面剩余的部分)

    - 用户切片(指的是自己划的切片)

    - 选中的切片  (指定部分切片保存)

9、ctrl+T  : 自由变换工具,改变图层大小

1、网页中的常见图片格式

  • jpg 色彩丰富,文件相对小,有损压缩,反复保存质量下降 使用场景-广告/商品图/照片

  • gif 支持动图,文件小 只支持256种颜色 色彩简单的小图标icon/动图

  • png 支持透明,简单图尺寸较小 色彩丰富的图片尺寸大,不支持动图,适用透明图片

  • webp 支持透明、动画,文件小、质量高 浏览器兼容性不好 只能在支持它格式的设备上显示

2、切透明图标

  • 方法一:

    • 定位到图层-去掉显示为透明、最下面图层6 layer0也隐藏

    • 切片-存png24半透明/全透明 png8是全透明

  • 方法二:

    • 复制小图标,新建粘贴 去掉背景即可看透明图标—ctrl a全选+ctrl c复制+ ctrl n新建时是选择设置为透明

3、制作精灵图

  • 复制小图标(ctrl a +ctrl c) 复制图层 (ctrl j)–点击图层-混合选项-颜色叠加–设置图标颜色

  • 图层编组 ctrl+G

  • 合并图层 ctrl+E

4、静态大banner图优化

  • 从重要内容使用img标签,修饰的图案使用背景图片这个原则,需要把中间部分切成图片 ,两边剩余的部分作为大背景图

  • 中间部分可以再划分成几个小切片,为了防止网络情况不好大图请求超时

猜你喜欢

转载自blog.csdn.net/qq_41008567/article/details/108803603