html - Android 浏览器中错误的边框宽度

标签 html css google-chrome android-webview android-browser

在具有高密度屏幕(devicePixelRatio 为 1.5)的 android 设备上,html 元素的边框有错误的边框宽度。

这里的两个框:jsbin sample , 正确显示在桌面上

但是在 android 上——在 chrome 和堆栈浏览器中——它们看起来像这样:

enter image description here

现在我明白为什么它们看起来像这样了,但我找不到任何 CSS 解决方案 - 只有 js。

js 解决方案是将元素的宽度和高度以及顶部/左侧属性更改为奇数。

最佳答案

没有标准的解决方案,太糟糕了。
您可以使用下一个技巧来避免宽度为 1px 的边框显示不一致。

  • 使边框的颜色稍微透明,即 alpha <= 0.5。例如 border-color: rgba(169, 0, 52, 0.5) 我在 Android 4.4.2 Chrome 和 Yabrowser 浏览器上测试了这个。工作正常!;
  • 使边框元素的宽度/高度为奇数,并移动元素位置。这里需要自己试验和使用JS,比如:

    $('div.elemWithBadBorders').each(function(){
        var $el = $(this);
        var width = $el.width();
        if(width % 2 == 0){
            $el.css('width', (width+1)+'px');
        }
    });
    


  • 如果显示在 Retina 显示屏或其他雇用屏幕上,请禁用边框。您需要像这样在 css 中使用媒体查询:

     @media (-webkit-min-device-pixel-ratio: 1.5) {
        div.elemWithBadBorders {
            border: none;
        }
     }
    

    1.5 是像素密度。在 Retina 显示屏上显示为 2

关于html - Android 浏览器中错误的边框宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20050743/

相关文章:

html - HTML 中的面板是否只允许一定数量的文本/内容

html - 按比例缩放背景图像 CSS HTML jQuery

html - 无法移动显示 block 中的图像?

javascript - 简单的 JavaScript 在 Chrome 中不起作用

javascript - 在 Google Chrome 中使用 javascript 访问另一个框架( Uncaught ReferenceError )

html - 在移动设备上制作表格显示堆栈

html - 如何防止动态文本框在增长时移动其他字段

css - 如何使宽度灵活的 ul (nav) 居中

css - Chrome 及其对 %s 的处理

android - 跨浏览器垂直居中的终极解决方案?