inline的盒子设置transform不生效

目录

如何遇到的问题

最近在开发过程中,因为需要对一个icon进行旋转,而icon本身,是设置span的伪类来进行的,结果我发现无论怎么设置transform都无法使其生效。

css 复制代码
  span::before {
    font-family: element-icons !important;
    content: "\e6c9";
    transform: rotate(180deg);
  }

原因

经过我的测试和网上找到的原因,它们相互印证这样一个结论:inline的盒子设置transform不生效。

为什么会这样

inline元素被视为一行中的文本片段,其大小由内容决定,并且不允许通过transform属性来改变其尺寸、位置或旋转。transform属性通常用于块级元素或行内块级元素,因为这些元素有明确定义的宽度和高度,可以进行变换操作。

怎么解决

要解决这个问题,可以将元素的display属性更改为inline-block或block。这样做后,transform属性就会生效。

css 复制代码
  span::before {
    font-family: element-icons !important;
    content: "\e6c9";
    transform: rotate(180deg);
    display: inline-block;
  }

如果你仍然希望元素保持display: inline,但仍然需要应用变换效果,可以考虑将元素包裹在一个块级元素中,然后在该块级元素上应用transform属性。

javascript 复制代码
<div class="outer-wrapper">
  <span class="inline-box"></span>
</div>
css 复制代码
  .outer-wrapper {
	transform: rotate(180deg);
  }
  .inline-box::before {
    font-family: element-icons !important;
    content: "\e6c9";
  }
相关推荐
站在风口的猪11088 小时前
《前端面试题:CSS预处理器(Sass、Less等)》
前端·css·html·less·css3·sass·html5
Hygge-star9 小时前
【Flask】:轻量级Python Web框架详解
css·flask·html·学习方法·web app
牧码岛15 小时前
Web前端之隐藏元素方式的区别、Vue循环标签的时候在同一标签上隐藏元素的解决办法、hidden、display、visibility
前端·css·vue·html·web·web前端
棉花糖超人17 小时前
【从0-1的CSS】第1篇:CSS简介,选择器已经常用样式
前端·css
potender18 小时前
前端基础学习html+css+js
前端·css·学习·html·js
Hilaku19 小时前
你以为的 Tailwind 并不高效,看看这些使用误区
前端·css·前端框架
Hilaku19 小时前
为什么越来越多 Vue 项目用起了 UnoCSS?
前端·css·html
中微子19 小时前
☀️这些CSS里的选择器你知道多少❓
css
Larcher19 小时前
css真难,那就从基础开始吧
前端·css
Linsk19 小时前
深入解析 Sass 的 `~` 路径问题:为什么你的导入会失败?
css·scss·前端工程化