我注意到一台配有1920x1080屏幕的小型笔记本电脑,Windows 10会自动调整缩放比例.我看到它高达150%.有没有办法可以发现这个?我的媒体查询没有启动,因为它们是在px中设置的.
Chr*_*yes 14
这并不是OP具体要求的,但我认为很多登陆这个问题的用户都会问。
Windows 10 中 150% 的文本缩放破坏了我的网页,我该怎么办?
rem
对问题文本使用字体大小。media
html
这可以避免任何 CSS 变换缩放,从而不可避免地导致模糊的结果。
/* Handle 125% and 150% Windows 10 Font Scaling on 96dpi monitors */
@media (min-resolution: 120dpi) {
html {
font-size: 80%;
}
}
Run Code Online (Sandbox Code Playgroud)
根据您的喜好调整 80%,较小 = 较小的文本
注意:请注意,150% 缩放并不意味着 150dpi。大多数显示器的分辨率为 72dpi 或 96dpi。因此,150% 缩放意味着 108dpi 或 144dpi 作为您查询的最小分辨率。
rem
字体大小并确保您使用的rem
是字体,例如:
p {
font-size: 1rem;
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是px
,则不必更改所有内容,只需对引起问题的文本进行更改即可。
编辑 - 辅助功能问题:用户首选项应始终放在第一位。为了响应 Windows 文本放大而缩小字体大小将是一种用户体验反模式,并且会对视障用户产生不成比例的影响。理想情况下,仅将此作为最后的手段。
Mar*_*mek 10
尝试访问window.devicePixelRatio
变量.
Window属性devicePixelRatio返回当前显示设备的物理像素分辨率与CSS像素分辨率的比率.该值也可以解释为像素大小的比率:一个CSS像素的大小与一个物理像素的大小.简单来说,这告诉浏览器应该使用多少屏幕的实际像素来绘制单个CSS像素.
有关它的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio
你也可以使用CSS resolution
,更多关于这一点:https://developer.mozilla.org/en-US/docs/Web/CSS/@media/resolution
@media (resolution: 150dpi) {
p {
color: red;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
对于任何研究这个问题的人,在 Martin Adamek 的回答上建立一点,你可以在 jQuery 中做到这一点,并使用 CSS 转换来缩放一些东西:
// if the user has display scaling active, scale with CSS transform
if (window.devicePixelRatio !== 1){
let scaleValue = (1/window.devicePixelRatio);
$('#containerToBeScaled').css('transform','scale('+scaleValue+')');
}
Run Code Online (Sandbox Code Playgroud)
例如,如果您有一个弹出窗口,并且无论显示缩放如何,都希望它看起来相同,则此方法效果很好