css - 防止用户缩放浏览器时网格区域大小增加/减少
问题描述
我有一个具有装饰性边框(顶部、右侧、底部、左侧)的布局,这些边框不包含内容,但包含华丽的 SVG 图案。
这些边框是使用grid-template-columns
和grid-template-rows
grid
属性定义的,高度或宽度为 70 像素。
当用户将浏览器缩放级别设置为 125%、150%、200% 时,元素的大小会按比例缩放(87px、105px、140px)
如何根据用户的浏览器缩放输入防止某些网格区域(顶部、右侧、底部、左侧)增长/缩小。
.stage-inner {
min-height: 100vh;
display: grid;
grid-template-columns: 70px 1fr 1fr 1fr 70px;
grid-template-rows: 70px 1fr 1fr 1fr 70px;
grid-template-areas:
"top top top top top"
"left content content content right"
"left content content content right"
"left content content content right"
"bottom bottom bottom bottom bottom";
}
解决方案
您可以尝试访问设备像素比率并将您的尺寸除以该百分比以重新计算将以 70 像素呈现的尺寸。
browserZoomLevel = Math.round(window.devicePixelRatio * 100);
https://codepen.io/Jason_B/pen/GzNZZd
我分叉了你的 codepen 并添加了这个 jQuery 代码:
$( window ).on( 'load resize', function() {
const browserZoomLevel = Math.round(window.devicePixelRatio * 100);
const normalizedDimension = 70 * 100 / browserZoomLevel + 'px';
$( '.stage-inner' )
.css(
'gridTemplateColumns',
normalizedDimension + ' 1fr 1fr 1fr ' + normalizedDimension
).css(
'gridTemplateRows',
normalizedDimension + ' 1fr 1fr 1fr ' + normalizedDimension
);
});
推荐阅读
- node.js - 如何使用 MS Team 机器人在最终用户/客户端机器上运行命令/代码
- nhibernate - NHibernate 加入 2 个表并通过集合项目到 DTO
- c++ - 更改“孩子的父母的样式表”时如何将孩子的样式表重置为Qt默认样式表?
- html - 单击按钮后如何将按钮颜色更改为红色(原色为红色)?
- java - 从 java 运行密码查询的更快方法
- javascript - 如何区分滚动事件和长按事件?
- php - 上传大块谷歌驱动器文件错误
- python - python中嵌套列表的双重部分
- javascript - 无法使用 puppeteer 重用新填充的链接
- qml - 如何使用“Layout.alignment”而不是“anchors.right: someItemID.right”