【发布时间】:2023-04-02 01:29:01
【问题描述】:
默认行为
* {
margin: 0;
}
html,
body {
height: 100%;
}
div {
width: 10rem;
height: 10rem;
background-color: #333;
position: absolute;
left: 25%;
}
<div></div>
调整窗口大小时,div 距离其容器的左边缘 25%。
我们能否增加或假象left 属性的百分比值随着窗口宽度的减小而增加?
编辑:这是否可能在不使用 1000 个媒体查询或 JavaScript 的同时保持平稳、一致、不紧张的过渡?
其实我很久以前就用纯CSS实现过这个效果了,但是忘记是怎么做的了。我的代码有点复杂,并且使用了很多百分比来表示宽度和绝对定位。但我知道这是可能的。至少在寻找 CSS hack。
【问题讨论】:
-
您需要媒体查询来实现这一点。这应该对您有所帮助:w3schools.com/cssref/css3_pr_mediaquery.asp
-
@pegla 谢谢你,但媒体查询不会是一个平稳的过渡,除非我们有一百万大声笑
-
如果你想要平滑,你可以在 css 上设置转换属性,稍微调整一下,对于初学者来说,transition: 1s all;如果你不介意使用它,总有 JS。
-
@pegla 使用过渡仍然不会像我的示例中的默认行为那样平滑。它只会在断点处设置动画。我不想要一个更线性的过渡,它取决于每个计算器的浏览器窗口的大小。在我的示例中,默认 CSS 的确切工作方式是向右移动而不是向左移动。
-
所以你想拥有例如
left: 20%当宽度= 1024px和left: 30%当宽度= 768px等等?
标签: html css responsive-design responsive