html - 有没有办法使用描述元素 CSS 填充和 max-width 属性之间依赖关系的公式来创建 @media 规则?
问题描述
有一个div会根据页面宽度更改其padding-left CSS 值。当页面宽度减小时,填充值增加。如果页面宽度为 1800px,则 padding 为 0px,如果 width=1700px,则 padding=10px,换句话说:
|N| Page width | padding-left |
|-| -----------| ------------ |
|1| 1800px | 0px |
|2| 1700px | 10px |
|3| 1600px | 20px |
|.| ... | ... |
|9| 1000px | 80px |
为此,创建了 9 个@media规则,如下所示
@media (max-width: 1800px) {
.my-padding {
padding-left: 0px;
}
}
@media (max-width: 1700px) {
.my-padding {
padding-left: 10px;
}
}
...
...
@media (max-width: 1000px) {
.my-padding {
padding-left: 80px;
}
}
问题:有没有办法只创建一个@media规则,但包含一种描述 CSS填充和max-width属性之间依赖关系的公式?一种解决方案是使用 9 个所需的@media规则以编程方式生成单独的 CSS 文件
计算padding-left值的公式可以如下:
padding-left = ((1800px - current_page_width) / 100) * 10
问题是我不知道如何应用它
解决方案
padding-left = ((1800 - current_page_width)/100)*10
可能 :padding-left: calc( (1800px - 100vw ) * 0.1 );
演示
body {
margin: 0;
padding-left: calc( (1800px - 100vw) * 0.1);
background: repeating-linear-gradient(to right, gray 0 10px, transparent 10px 20px);
}
<div style="border:solid;">div</div>
推荐阅读
- sql - 如何使用 distinct 和 count 与 partition by
- codeigniter - 当用户在codeigniter中输入http时如何重定向到https
- amazon-web-services - 我的 python 代码无法识别 aws s3 中的数据更新
- java - 如何在算法结束之前重新绘制排序算法的每次迭代?
- python-3.x - 在 Jetson Xavier 上使用 OpenCV 的低相机 FPS
- mysql - 如何从具有连续字段名称和值的txt文件中加载MySQL中的数据?
- javascript - Leaflet featureGroup().getLayers() 返回空,而对象已定义
- google-data-studio - 重置所有操作 - Google 数据洞察中的交互式过滤器
- wordpress - Docker-compose 重新运行现有的包含
- python - 使用 PySide 的圆形进度条