需求
开发的时候遇到需要将背景图片旋转-45度。这样的效果。
UI给的图片是正的。
方法
第一想到的是通过设置css3样式的transform: rotate(-45deg)。
问题
但是发现内容也跟着旋转了。
解决
所以把背景图放到伪类中进行旋转就可以完美解决这个问题了
.bgimg1{ position: relative; } .bgimg1::after { content: ""; position: absolute; right: 30px; top: 0; width: 108px; height: 108px; display: block; background-size: 108px 108px; background-repeat: no-repeat; background-position: right top; background-image: url('./images/state1.png'); transform: rotate(-45deg); opacity: 0.8; }
扩展
- transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
值 | 描述 |
none | 定义不进行转换。 |
translate(x,y) | 定义 2D 转换。 |
translate3d(x,y,z) | 定义 3D 转换。 |
translateX(x) | 定义转换,只是用 X 轴的值。 |
translateY(y) | 定义转换,只是用 Y 轴的值。 |
translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 |
scale(x[,y]?) | 定义 2D 缩放转换。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 |
rotate(angle) | 定义 2D 旋转,在参数中规定角度。 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 |
rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 |
rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 |
- CSS伪类是用来添加一些选择器的特殊效果。
伪类/伪元素 | 描述 |
:hover | 选择鼠标指针浮动在其上的元素 |
:active | 选择被用户激活的元素,例如点击按钮 |
:link | 选择所有未被访问的链接 |
:visited | 选择所有已被访问的链接 |
:first-child | 选择其父元素的第一个子元素 |
:last-child | 选择其父元素的最后一个子元素 |
:nth-child(n) | 选择其父元素的第n个子元素 |
:nth-last-child(n) | 选择其父元素的倒数第n个子元素 |
:only-child | 选择其父元素仅有的子元素 |
:only-of-type | 选择其父元素同类型子元素中仅有的一个 |
:empty | 选择没有子元素的元素 |
:not(selector) | 选择不符合给定选择器的元素 |
:nth-of-type(n) | 选择同类型子元素中的第n个元素 |
:nth-last-of-type(n) | 选择同类型子元素中的倒数第n个元素 |
:first-of-type | 选择同类型子元素中的第一个元素 |
:last-of-type | 选择同类型子元素中的最后一个元素 |
:lang(language) | 选择带有指定语言的元素 |
:focus | 选择获得焦点的元素 |
:target | 选择当前活动的目标元素 |
:enabled | 选择启用的元素 |
:disabled | 选择禁用的元素 |
:checked | 选择被选中的元素(如单选按钮或复选框) |
:not(selector) | 否定选择器,返回与给定选择器不匹配的元素 |
:root | 选择文档的根元素 |
:nth-root(n) | 选择根元素的第n个子元素 |