当前位置: 首页 > news >正文

03-htmlcss

1. 平面转换transform

作用:为元素添加动态效果,一般与过度配合使用
概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜),也叫2D转换

1.1 平移 translate

transform:translate(x轴移动距离,y轴移动距离)
取值

  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算)
  • 正负均可
    技巧
  • translate()只写一个值,表示沿着x轴移动
  • 单独设置的的话可以translateX()或者translateY()

1.2 旋转 rotate

属性:transform:rotate(旋转角度)
单位:deg
技巧

  • 取值正负均可
  • 取值为正顺时针旋转
  • 取值为负 逆时针旋转

1.2.1 改变转换原点

默认情况下,转换原点是盒子中心点
属性:transform-origin:水平原点位置 垂直原点位置;
取值

  • 方位名词(top、left、right、bottom、center)
  • 像素单位数值
  • 百分比

1.2 缩放 scale

属性

  • transform:scale(缩放倍数)
  • transform:scale(X轴缩放倍数,Y轴缩放倍数)
    技巧
  • 通常,职位scale设置一个值,表示X轴和Y轴等比例缩放
  • 取值大于1表示放大,取值小于1表示缩小

1.3 倾斜 skew

属性:transform:skew()
:角度度数 deg

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>transform</title><style>.father{width: 500px;height: 300px;border: 1px solid pink;/*居中显示*/position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);overflow: hidden;}.son{width: 100px;height: 100px;background-color: pink;transition: all 2s;}.father:hover .son{transform: translate(400px,0px) rotate(3600deg) scale(2);/*transform-origin: right bottom;*/}.father1{width: 200px;height: 200px;border: 1px solid pink;/*居中显示*/position: absolute;top: 0%;left: 50%;transform: translate(-50%,2px);background-color: #4ee87f;overflow: hidden;}.father1 img{transform:scale(2);opacity: 0;transition: all 1s;}.father1:hover img{transform:scale(0.3) skew(20deg);opacity: 1;}</style>
</head>
<body>
<div class="father"><div class="son"></div>
</div>
<div class="father1"><img src="imgs/藏獒.png">
</div>
</body>
</html> 

2. 渐变

作用:渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景
分类

  • 线性渐变
  • 径向渐变

2.1 线性渐变

属性 :background-image:linear-gradient(渐变方向,颜色1 终点位置,颜色2 终点位置,…);
取值

  • 渐变方向:可选
    • to 方位名词
    • 角度读书
  • 终点位置:可选
    • 百分比
<head><meta charset="UTF-8"><title>渐变</title><style>*{padding: 0;margin: 0;}.box1{box-sizing: border-box;position: relative;width: 200px;height: 200px;border: 1px solid pink;}.box2{box-sizing: border-box;width: 200px;height: 200px;position: absolute;top: 0;left: 0;border: 1px solid pink;background-image: linear-gradient(transparent,rgba(0,0,0,0.5));opacity: 0;}.box2:hover{opacity: 1;}</style>
</head>
<body><div class="box1"></div><div class="box2"></div>
</body>

2.2 径向渐变

作用:给按钮添加高光效果
属性

  • background-image:redial-gradient(半径 at 圆心位置,颜色1 终点位置,颜色2 终点位置,…)

取值

  • 半径可以是两条,则为椭圆
  • 圆心位置取值“像素单位数值\百分比\方位名词
<head><meta charset="UTF-8"><title>21.1-渐变中径向渐变.html</title><style>button{width: 200px;height: 40px;border-radius: 10px;background-color: green;background-image: radial-gradient(30px at 30px 30px,rgba(255,255,255,0.2),transparent)}</style>
</head>
<body>
<button>点击</button>
</body>

3. 空间转换

空间:是从坐标轴角度定义的X、Y、Z三条坐标轴构成的立体空间,Z轴位置与视线方向想用。
空间转换也叫3D转换
属性:transform

  • transform:translate3d(x,y,z)
  • transform:tanslateX();
  • transform:tanslateX();
  • transform:tanslateY();
  • transform:tanslateZ();

取值(正负均可)

  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算结果)

3.1 视距 perspective

作用:制定了观察者和z=0平面的距离,为元素添加透视效果
透视效果:近大远小 近实远虚
属性:添加给直接父级,取值范围:800-1200
perspective:视距;

<head><meta charset="UTF-8"><title>空间转换</title><style>.father{perspective: 1000px;}.son{width: 200px;height: 200px;background-color: red;}.son:hover{transform:translate3d(100px,200px,300px);}</style>
</head>
<body>
<div class="father"><div class="son"></div>
</div></body>

3.2 空间旋转:rotate(值)

X轴旋转:transform: rotateX(60deg)
Y轴旋转:transform: rotateY(60deg);
Z轴旋转:transform: rotateZ(60deg);

3.3 左手法则

根据旋转方向确定值取值正负
左手握住旋转轴,拇指指向正值方式,其余四个手指弯曲方向为旋转正值方向

3.4 立体呈现 transform-style

作用:设置元素的子元素是处理3D空间还是平面中
属性名:transform-style
属性值:

  • flat:子级处于平面中
  • preserve-3d:子级处于3D空间中

步骤:

  • 父元素添加transform-style:preserve-3d
  • 子级定位
  • 调整合资的位置(位移或旋转)

3.5 空间缩放

属性:

  • transform:scale3d(x,y,z);
  • transform:scaleX();
  • transform:scaleY();
  • transform:scaleZ();

4. 动画 animation

过渡:实现两个状态间的变化过程
动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

4.1 实现步骤

  1. 定义动画
    • @keyframes 动画名称{from {} to {}}
    • @keyframes 动画名称{0%{} 10%{} … 100%{}}
  2. 使用动画
    • animation:动画名称 动画花费时常

4.2 介绍

animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态

  1. 速度曲线:
    • linear:匀速
    • steps(n):分n段动画,工作中配合精灵图实现精灵动画
  2. 重复次数:
    • n:重复n次
    • infinite:一直重复
  3. 动画方向:
    • alternate:动画反向进行
  4. 动画执行完毕
    • forwards:动画执行完毕时候的状态

在这里插入图片描述

5. 移动端适配

5.1 视口标签

视口:显示html网页的区域,用来约束html的尺寸

  • width=device-width:视口宽度 = 设备宽度
  • initial-scale = 1.0 : 缩放1倍(不缩放)
<head><meta charset="UTF-8"><title>动画</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

5.2 二倍图

概念: 设置稿里面每个元素的尺寸的倍数
作用: 防止图片在高分辨率的屏幕下失真模糊

5.3 适配方案

  • 宽度适配:宽度自适应
    • 百分比布局
    • flex布局
  • 等比适配:宽高等比缩放
    • rem
    • vw

5.4 rem

rem单位是相对单位
rem单位是相对于HTML标签的字号计算结果
1rem = 1HTML字号大小

5.4.1 媒体查询

手机屏幕大小不同,分辨率不同,设置不同的html标签字号

@media(媒体特征){选择器{css属性}}

  • 媒体查询能够检测出视口的宽度,然后编写差异化的css样式
  • 但某个条件成立,执行对应的css样式
 <style>html{font-size: 10px;}.box1{width: 20rem;height: 20rem;background-color: pink;}@media (width: 375px){body{background-color: #ea0909;}}</style>
</head>
<body><div class="box1"></div>
</body>

5.4.2 设备宽度不同,html字号是多少合适

  • 设备宽度大,元素尺寸大
  • 设置宽度小,元素尺寸小

目前rem方案中,将网页分为10份,html字号大小为1/10

5.4.3 flexible.js

  • flexible.js用来适配移动端的js库
  • 核心原理就是根据不同的视口宽度给网页中的html根节点设置不同的font-size

6. less

  • less是一个css预处理器,less文件后缀是.less。扩充了css语言,使得css具备一定的逻辑性、计算能力
  • 注意:浏览器不识别Less代码,目前阶段,网页要引入对应的css插件
  • vscode插件:easy less保存less文件后自动生成对应的css代码

6.1 less运算

  • 加、减、乘、除
  • 除法需要添加小括号

6.2 变量

概念:容器,存储数据
作用:存储数据,方便使用和修改
语法:
1. 定义变量:@变量名:数据;
2. 使用变量:css属性:@变量名
eg:@mycolor:pink; .box{color:@mycolor}

6.3 导入

作用:导入less公共样式文件
语法:导入:@import “文件路径”
提示:如果是less文件可以省略后缀
eg: @import './base.less';

6.4 导出

写法:在less文件第一行添加//out::存储url
提示:文件名后面添加/
eg:// out:./index.css 或者 //out:./css/
禁止导出:在less文件第一行添加//out:false

7. vw&vh

相对单位
相对视口的尺寸计算结果
vw:viewport width

  • 1vw = 1/100 视口宽度
    vh:viewport height
  • 1vh = 1/100 视口高度

8. 响应式

  1. 媒体查询
@media(条件){
html{color:red
}
}

一般条件都是最大值(max-width)和最小值(min-width)进行判断

2.Bootstrap:简介、直观、强悍的前端开发框架,让web开发更迅速、简单

  • Bootstrap是由Twitter公司开发维护的前端ui框架,它提供了大量编写好的css样式,允许开发者结合一定的html结构及JavaScript,快速编写功能完善的网页及常见的交互效果。
  • 中文官网
  • 使用:下载css样式,进行引用

文章转载自:

http://lxDSqi2C.fgsct.cn
http://0v2E35JV.fgsct.cn
http://C7Zs9lAF.fgsct.cn
http://OzyEGgRq.fgsct.cn
http://7ajJBSXO.fgsct.cn
http://ob1eoDyg.fgsct.cn
http://qt3uQMv6.fgsct.cn
http://hOC24NF3.fgsct.cn
http://BbxtZZVc.fgsct.cn
http://ftugP3Ad.fgsct.cn
http://G0SsAe5H.fgsct.cn
http://qlwdW6MH.fgsct.cn
http://Mr84No1A.fgsct.cn
http://0ChGrO9K.fgsct.cn
http://0AxdCO3B.fgsct.cn
http://BdiOkne7.fgsct.cn
http://v1ypMzkl.fgsct.cn
http://s1p66mMN.fgsct.cn
http://KV7bsvNL.fgsct.cn
http://4JUggpWJ.fgsct.cn
http://1xvOSbX7.fgsct.cn
http://dSUzfICe.fgsct.cn
http://TvMdxJKd.fgsct.cn
http://pN3vAxxt.fgsct.cn
http://Wfqw4cIT.fgsct.cn
http://NOcX7Vhg.fgsct.cn
http://ADqGqymN.fgsct.cn
http://XmQay80A.fgsct.cn
http://BjIMTw6Y.fgsct.cn
http://B8JSZXqB.fgsct.cn
http://www.dtcms.com/a/384568.html

相关文章:

  • 【PSINS工具箱下的例程】用于生成平面上8字型飞行轨迹,高度和飞行速度等值可自定义|包括AVP(姿态、速度、位置)和IMU数据(加速度计与陀螺仪)
  • SSB-Based Signal Processing for Passive Radar Using a 5G Network
  • SQLAlchemy使用笔记(一)
  • 【C#】.net core 8.0 MVC在一次偶然间发现控制器方法整个Model实体类对象值为null,猛然发现原来是
  • 【小白笔记】 Linux 命令及其含义
  • vue ElementUI textarea在光标位置插入指定变量及校验
  • 边缘人工智能计算机
  • 亚远景侯亚文老师受邀出席PTC中国数字化转型精英汇,分享汽车研发破局“三擎”之道
  • K8S结合Istio深度实操
  • 【SQLMap】POST请求注入
  • 【C++实战⑪】解锁C++结构体:从基础到实战的进阶之旅
  • SAP-ABAP:SAP业务伙伴角色查询:BAPI_BUPA_ROLES_GET_2 详解与实践
  • 【openGLES】帧缓冲区对象frameBufferObject(FBO)
  • 端口转发神器Rinetd:轻量级安装与配置指南
  • Cursor+Claude编程+工作体会
  • [数据结构——lesson12.希尔排序]
  • Field II 超声成像仿真 1--得到Bmode图像
  • SpringBoot整合RustFS:全方位优化文件上传性能
  • 硬件(十一):EPIT、GPT、UART 外设配置
  • 趣味学RUST基础篇(OOP)
  • 微服务网关的bug
  • Rust 与 C/C++ 的特性对比
  • mac 安装hive
  • Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
  • 微服务-nacos服务中心
  • uniApp开发XR-Frame微信小程序 | 动态加载与删除模型
  • AR 巡检在工业的应用|阿法龙XR云平台
  • eureka微服务注册问题
  • 【LangChain指南】大语言模型(LLMs)
  • 一台设备管理多个 GitHub 账号:从配置到切换的完整指南