当缩放元素在缩放之前大于容器时,CSS 变换比例(向下)不会使用 margin 0 auto 将元素居中

2024-05-14

看来,当缩小以前不适合其容器的元素时,margin: 0 auto将不再使元素在其父元素中居中(请注意,使用transform-origin: center center并没有解决这个问题)。这是因为自动边距似乎在缩放之前而不是之后应用(我期望后者)。

在玩这个时,我最终设法将元素在其容器内居中,但仅使用绝对定位:

position: absolute;
transform: translateX(-50%) scale(0.5, 0.5);
left: 50%;

这是一种非常流行的技术,但在这种特殊情况下,放置 translateX 函数非常重要before缩放函数,因为它们按定义的顺序执行。

以下是说明该问题的代码片段(也在 CodePen 上:https://codepen.io/liranh85/pen/qVewQp https://codepen.io/liranh85/pen/qVewQp)

.container {
  border: 3px solid black;
  width: 500px;
  height: 200px;
  margin: 0 auto;
  position: relative;
}

.scaled {
  background-color: blue;
  width: 600px;
/*   width: 400px; */
  height: 100%;
  transform: scale(0.5, 0.5);
/*   transform: translateX(-50%) scale(0.5, 0.5); */
  margin: 0 auto;
/*   position: absolute;
  left: 50%; */
  
}
<div class="container">
  <div class="scaled"></div>
</div>

请注意:

  • 当元素的宽度大于其容器的宽度时,该元素不会使用自动边距居中。
  • 当给缩放元素的宽度小于其容器时,缩放后它将保持居中(例如尝试使用width: 400px).
  • 当使用绝对定位时,如上所述,可以将元素居中。

我在想:

  • 还有其他人遇到过这个问题吗?
  • 这是将此类元素居中的最佳方式吗?
  • 我说自动边距不能用于居中这样的元素是否正确?

你需要使用

transform-origin: center;

看一下这方面的一些文档https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当缩放元素在缩放之前大于容器时,CSS 变换比例(向下)不会使用 margin 0 auto 将元素居中 的相关文章

  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • 如何使用 CSS 绘制一个向左的三角形?

    我已经很久没有建造这个向上的三角形了 我怎样才能改变我的 CSS 使角指向左边 http jsfiddle net 3sP8q http jsfiddle net 3sP8q left corner width 0 height 0 bor
  • SASS for 循环更新 hsla 亮度返回错误 $lightness: "96.77419" 不是 `hsla' 的数字

    我试图循环一定次数 逐渐降低 hsla 的亮度值 但是当我运行循环时 出现错误 lightness 96 77419 is not a number forHSLA 谁能告诉我哪里出了问题或者如何改进 Code iterations 31
  • 如何通过 HTML 表单创建 google 图片搜索的链接?

    尝试使用 HTML 表单制作 Google 图像搜索克隆 在搜索字段中输入文本后 它将直接带您进入 Google 图像搜索结果页面 这是我正在使用的代码
  • HTML Canvas:旋转图像 3D 效果

    我怎样才能旋转图像 例如45度 并挤压图像 假设我有一个完美的方形图像 我可以将它旋转到我想要的任何角度 但我想让旋转后的正方形被压扁 使高度比宽度小 2 3 生成的图像将不是一个完美的旋转正方形 而是一个被压扁的正方形 你知道我怎样才能达
  • 为什么 HTML 5 没有内置可编辑组合框或本地菜单? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我应该使用媒体查询来定位哪些设备/推荐尺寸?

    我是响应式网页设计的新手 并且感到困惑 因为对于使用哪些媒体查询以及要定位哪些设备有不同的偏好 有标准吗 我想定位 iPhone iPad 和其他流行设备 我在网上找到了这个 Smartphones portrait and landsca
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • CSS 背景在 iOS 中拉伸以填充高度,但滚动上有空白

    这个 CSS 让我的背景在 iOS 中填充 100 的屏幕高度 但有一个小问题 当你向下滚动时 最初有空白 然后当你松开手指并停止滚动时 背景图像会 调整 并填充 100再次屏幕高度的 如果您继续滚动 该问题不会在同一页面上再次出现 只是第
  • Knockout.js:有条件绑定div的title属性

    我的页面上有一个 viewModel 它保存一些设备当前状态概述的数据 到目前为止 除了一个问题之外 一切都运行良好 我需要根据 viewModel 中的另一个值设置 div 元素的 title 属性 我知道您基本上可以像这样设置 titl
  • 不透明动画在 IE 上不起作用

    我有一个动画菜单 其中包含一些级联不透明动画 这些动画在打开菜单和悬停每个按钮时执行 它只是每 100 毫秒向菜单上的每个图标添加 colorHigh 类 你可以看到一个现场演示在这里 http germanalvarez net 5 la
  • 如何知道 Solr Optimize 何时完成?

    我正在使用 Solr php client 通过 php 与 Solr 进行通信 这段代码触发solr优化命令 solr gt optimize 请问有没有什么方法可以确定优化完成了 这都是因为我的网站上有一个管理页面 我每天必须手动优化
  • Facebook Instant Game - 上传捆绑的 zip 文件会导致 Web 托管出现 SDK 参考错误

    当我尝试上传简单的游戏 应用程序时 我收到一条错误消息 游戏必须通过我们的 CDN 引用我们支持的 SDK 之一 不过我已经给出了 SDK 参考 难道不是这个吗 我也浏览了 facebook 文档的 SDK 参考 但它对我不起作用 有人以前
  • HTML5 画布在缩放和旋转后平移

    我正在尝试用画布做一些事情 首先 我让用户上传图像 如果图像比我想要的大 我需要将其缩小 那部分工作得很好 最近我们遇到了 iPhone 用户上传图像的问题 这些都存在方向问题 我已经弄清楚如何提取方向 我的问题是当我操纵画布中的图像时会发
  • 如何使用C从http下载文件?

    最近几天我试图弄清楚如何从 URL 下载文件 这是我对套接字的第一个挑战 我用它来了解协议 所以我想在没有 cURL 库的情况下只用 C 语言来完成它 我搜索了很多 现在我可以打印页面的源代码 但我认为这与文件不同 我不必只将接收到的数据从
  • 一种用javascript创建随机噪声背景图像(png)的方法?

    YouTube的新布局添加了我非常喜欢的背景随机噪声 在其他网站上看到了几乎完全相同的效果 所以我计划在我的网页原型中使用相同的技术 或者至少在其中使用这个 技巧 我的工具箱以供将来使用 图片是这样的 取自http g raphaeljs
  • BS3 - img 响应类 - 为什么没有最大高度?

    引导程序 3 包括 img responsive班级 应用这些 css 设置 display block height auto max width 100 为什么没有max height 100 我发现添加这个使得图片的高度也适合 但我不
  • 容器中的等间距 div

    这是我的例子 http jsfiddle net rtCP3 62 http jsfiddle net rtCP3 62 我有 3 个 或更多 div 我想在一个容器中均匀分布 当将 Angular 与 ng repeat 一起使用时 样式
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis

随机推荐