从头学前端-CSS3提升-续

简介: 从头学前端-CSS3提升-续a

CSS3 2D转换

关键字:transform

  • 移动:沿着x,y轴移动,不会影响盒子的位置,对行内元素没有效果

          div {
         
         
              width: 100px;
              height: 100px;
              background-color: rebeccapurple;
              transform: translate(100px,100px);
              transform: translateX(100px);
              transform: translateY(100px);
          }
    
  • 旋转 rotate
    ```css

    div {
          width: 200px;
          height: 200px;
          background-color: aqua;
          /* transform: rotate(30deg); */
          transition:  all 1s;
      }
    
      div:hover {
          transform: rotate(360deg);
      }
    

- 2d转换中心点 transform-origin
```css
        div {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            transition:  all 1s;
            transform-origin: left bottom;
            transform-origin: 300px 300px;
        }

        div:hover {
            transform: rotate(220deg)
        }
  • 缩放 scale:可以设置转换中心点,不影响其他盒子

    p {
         
         
              width: 200px;
              height: 200px;
              background-color: red;
          } 
    
          p:hover {
         
         
              transform: scale(2,1);
              transform: scaleX(3);
              transform: scale(2);
              transform: scale(0.5);
          }
    
  • 转换综合写法: 以空格隔开,顺序会影响效果,最好位移在前
        li:hover {
         
         
              transform: translate(0px,10px) rotate(90deg) scale(1.2);
          }
    

CSS3 动画

关键字: animation

  • 用keyframes定义动画并使用

    @keyframes move {
         
         
              0%{
         
         
                  transform: translateX(0px);
              }
    
              100%{
         
         
                  transform: translateX(1000px);
              }
    
          }
    
          div {
         
         
              width: 200px;
              height: 200px;
              background-color: red;
              animation: move 2s ;
          }
    

    动画相关属性:
    在这里插入图片描述

  • 使用多个状态和属性

     @keyframes move {
         
         
              from {
         
         
                  transform: translateX(0px);
              }
              50% {
         
         
                  transform: translate(500px, 200px);
              }
              60% {
         
         
                  transform: translateX(1000px);
              }
              to {
         
         
                  transform: translateX(0);
              }
    
          }
    
          div {
         
         
              width: 200px;
              height: 200px;
              background-color: red;
              animation: move 2s ;
              animation-iteration-count: infinite;
              animation-direction: alternate;
              /* animation-fill-mode: forwards; */
          }
             div:hover {
         
         
              animation-play-state: paused;
          }
    

CSS3 3D转换

  • 透视 perspective :写到被观察元素的父盒子上;

  • 移动: translate3d:

     body {
         
         
              perspective: 105px;
          }
          div {
         
         
              width: 100px;
              height: 100px;
              background-color: #663399;
              transform: translate3d(100px,100px,10px);
    
          }
    
  • 旋转 rotate3d:

 body {
   
   
            perspective: 300px;
        }
             img {
   
   
            display: block;
            margin: 20px 200px;
            width: 200px;
            transition: all 2s;
        }

        img:hover {
   
   
            transform: rotateX(360deg);
            transform: rotateY(180deg);
            transform: rotateZ(90deg) ;
            transform: rotate3d(1,1,0,270deg);
        }
  • 3d呈现 transform-style:
 body {
   
   
            perspective: 300px;
        }
box {
   
   
            position: relative;
            width: 200px;
            height: 200px;
            margin: 0 auto;
            transform-style: preserve-3d;
            transition:  all 2s;
        }

        .box:hover {
   
   
            transform:  rotateY(180deg);
        }

        .box div {
   
   
            position: absolute;
            top:0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: aqua;
        }

        .box div:last-child {
   
   
            background-color: blue;
            transform: rotateX(60deg);
        }
相关文章
|
1月前
|
前端开发 JavaScript C++
揭秘Web前端CSS引入秘籍:Link vs @import,你的选择决定页面加载速度,你选对了吗?
【8月更文挑战第26天】本文探讨了Web前端开发中CSS的引用方法,主要包括行内样式、内部样式表及外部样式表三种形式。重点对比了外部样式表中的`<link>`和`@import`两种引入方式。`<link>`作为HTML元素,在页面加载初期就开始加载样式资源,支持并行加载,对提高页面加载速度有益。而`@import`作为一种CSS规则,仅能在CSS文件中使用,其引入的样式表会在页面完成加载后才开始加载,可能导致渲染延迟且不支持并行加载。因此,在多数情况下,推荐采用`<link>`方式引入外部样式表,以确保更佳的性能表现和浏览器兼容性。
64 2
|
17天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
236 91
|
2天前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
8 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
2天前
|
前端开发
前端基础(九)_CSS的三大特征
本文详细解释了CSS的三大特性:层叠性、继承性和优先级,并通过实例演示了样式冲突、叠加和选择器优先级的应用。
9 2
前端基础(九)_CSS的三大特征
|
17天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
49 28
|
2天前
|
编解码 前端开发
前端基础(六)_CSS单位
本文介绍了CSS中常用的单位,包括像素(px)、相对长度单位(em、rem)、百分比(%)、视窗宽度(vw)和视窗高度(vh)。文章通过示例代码展示了这些单位在实际布局中的应用,解释了它们各自的特点和使用场景。例如,em和rem单位与字体大小相关,百分比单位与父元素的尺寸相关,而vw和vh单位则与浏览器视窗的宽度和高度相关。
6 1
|
2天前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
17 1
|
17天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
34 15
|
16天前
|
前端开发
|
16天前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`<div>`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。