2021-07-30 知识总结

本文详细解读CSS的transform属性,包括位移、旋转、缩放、倾斜和矩阵操作,介绍坐标系设定,以及translate、rotate、scale和skew的使用技巧,以及transform-origin对缩放方向的影响。通过实例演示如何灵活运用这些技术改变元素布局和视觉效果。

变形属性:transform
可以实现元素的位移、拉伸或者旋转等效果
2D变换,是在一个平面对元素进行的操作。
可以对元素进行水平或者垂直位移、旋转或者拉伸

变形属性:transform的所有属性值
1、transform:none;默认值
2、transform:translate();移动 平移 单位是px
3、transform:rotate();旋转 单位是deg deg度数
4、transform:scale();缩放 没有单位 默认值是1
5、transform:skew();倾斜 单位是deg
6、transform:matrix();矩阵
7、transform:perspective();景深 视距 单位是px

确定坐标系
.默认状态下,x轴是水平的,向右为正。
.默认状态下,y轴是垂直的,向下为正,这与传统的数学坐标系不同。

transform:translate()移动


属性值: translateX():水平移动 translateY():垂直移动

缩写:
1.transform:translateX(像素值) translateY(像素值);
2.transform:translate(X轴像素值,Y轴像素值);

注意:在和旋转,缩放等属性值一起用时,变形属性值放在前面会改变它的轴方向,所以要把移动的属性值放在前面才不受影响。

transform:rotate()旋转
属性值:rotateX():水平旋转 rotateY():垂直移动
缩写:transform:rotateX(X轴像素值) rotateY(Y轴像素值);
注意:旋转rotate只有一种缩写,要和translate区分开

transform:scale()缩放
属性值:scale():值趋于0~1,大于1是放大,小于1是缩小

可以改变基点的位置,来实现缩放的方向

基点transform-origin属性
可以改变变换的方向

属性值:可以写一个或两个(不写默认是中心点) 例如:transform-origin:top;表示基点变成上边
transform-origin:bottom left;表示基点变成左下方

如何理解基点呢?
举个例子:
写一个div 宽度为2px高度60px,让它沿X轴旋转90度,css属性就是transform:rotateX(90deg)
不写基点位置的默认是从中间旋转的,旋转后它看起来就是高度为0px了
加上基点transform-origin:bottom;这样它是把X轴移到div的底部开始旋转,旋转后看起来的高度就是30px

<think>嗯,用户遇到了MySQL插入中文数据时报错ERROR 1366的问题,需要解决字符集编码的问题。首先,我得回忆一下相关的知识。这个错误通常是因为数据库、表或列的字符集不支持中文字符,导致存储时出现乱码。根据用户提供的引用内容,特别是引用[3]、[4]、[5]提到了设置字符集的方法,可能需要检查并修改数据库、表和连接的字符集。 用户提到插入“张三”时出错,张三的中文字符在UTF-8中需要正确的编码支持。可能当前数据库或表使用的是latin1字符集,这无法存储中文,所以需要改为utf8mb4。引用[5]里提到修改表或数据库的字符集,以及创建数据库时指定字符集,这些都是可行的解决方案。 另外,引用[3]提到在MySQL 5.5版本中设置names为gbk,但更推荐使用utf8mb4,因为gbk可能对某些字符支持不够。现在一般建议使用utf8mb4来全面支持Unicode,包括表情符号等。所以步骤可能包括检查当前字符集设置,修改数据库、表、列的字符集为utf8mb4,同时设置客户端的连接字符集。 还需要考虑连接的字符集,比如在插入数据时使用SET NAMES utf8mb4,或者在配置文件中设置默认的字符集。此外,用户可能没有正确配置MySQL的my.cnf文件,导致服务重启后设置失效,这也是需要注意的地方。 总结解决方案的步骤应该是:1. 检查当前字符集设置;2. 修改数据库和表的字符集;3. 设置客户端连接字符集;4. 必要时修改MySQL配置文件永久生效。同时,确保所有环节都统一使用utf8mb4,避免不一致导致的问题。</think>以下分步骤说明MySQL插入中文出现ERROR 1366的解决方案: ### 一、问题诊断 1. **错误现象**:插入中文时出现`ERROR 1366 (HY000): Incorrect string value`,如`insert into student values (1,1111,&#39;张三&#39;,null)`报错[^1][^4] 2. **根本原因**:数据库/表/列的字符集不支持Unicode字符,常见于: - 使用默认`latin1`字符集 - 未正确设置`utf8mb4`字符集 - 客户端连接字符集不匹配 ### 二、即时解决方案 1. **临时修改连接字符集**(当前会话有效) ```sql SET NAMES utf8mb4; -- 同时设置character_set_client/connection/results ``` 2. **修改表的字符集** ```sql ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 三、永久解决方案 1. **修改数据库默认字符集** ```sql ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **修改MySQL配置文件** ```ini # my.cnf或my.ini [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` ### 四、验证步骤 1. **查看字符集设置** ```sql SHOW VARIABLES LIKE &#39;character%&#39;; SHOW CREATE TABLE 表名; ``` 2. **测试插入中文** ```sql INSERT INTO 表名 VALUES (2,&#39;李四&#39;); ``` ### 五、注意事项 - `utf8`与`utf8mb4`区别:后者支持4字节字符(如表情符号) - 已有数据需通过`ALTER TABLE`转换字符集[^5] - 新建数据库建议指定字符集: ```sql CREATE DATABASE 新数据库 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值