您现在的位置是:网站首页> 编程资料编程资料
解决移动端1px边框最好的方法(推荐)解决移动端1px边框问题的几种方法(5种)详解移动端Html5页面中1px边框的几种解决方法reset.css引入以及1px边框问题的解决方法
                     2021-09-03
                849人已围观
                
                2021-09-03
                849人已围观
            
简介 这篇文章主要介绍了解决移动端1px边框最好的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在移动端开发时,经常会遇到在视网膜屏幕中元素边框变粗的问题。本文将带你探讨边框变粗问题的产生原因及介绍目前市面上最好的解决方法。
1px 边框问题的由来
苹果 iPhone4 首次提出了 Retina Display(视网膜屏幕)的概念,在 iPhone4 使用的视网膜屏幕中,把 2x2 个像素当 1 个物理像素使用,即使用 2x2 个像素显示原来 1 个物理像素显示的内容,从而让 UI 显示更精致清晰,这 2x2 个像素叫做逻辑像素。像这种像素比(像素比(即dpr)= 物理像素 / 逻辑像素)为 2 的视网膜屏幕也被称为二倍屏,目前市面上还有像素比更高的三倍屏、四倍屏。而 CSS 中 1px 指的是物理像素,因此,设置为 1px 的边框在 dpr = 2 的视网膜屏幕中实际占用了 2 个逻辑像素的宽度,这就导致了界面边框变粗的视觉体验。
使用 transform 解决
通过设置元素的 box-sizing 为 border-box,然后构建伪元素,再使用 CSS3 的 transform 缩放,这是目前市面上最受推崇的解决方法。这种方法可以满足所有的场景,而且修改灵活,唯一的缺陷是,对于已使用伪元素的元素要多嵌套一个无用元素。具体的实现如下:
 .one-pixel-border { position: relative; box-sizing: border-box; } .one-pixel-border::before { display: block; content: ""; position: absolute; top: 50%; left: 50%; width: 200%; height: 200%; border: 1px solid red; transform: translate(-50%, -50%) scale(0.5, 0.5); }这样就可以得到 0.5px 的边框。
还可以结合媒体查询(@media)解决不同 dpr 值屏幕的边框问题,如下:
 @media screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { ... } @media screen and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { ... }注意:IOS 系统的 safari 浏览器不支持标准的 min-resolution,使用非标准的 min-device-pixel-ratio。
使用 pixel-border.css 解决
pixel-border.css是一个解决移动端 1px 边框的通用 CSS 工具。使用 transform 的解决方法,仅有几行的源码,使用起来非常方便,是目前发现最好的解决方法。
安装
npm安装:
npm install pixel-border --save
yarn安装:
yarn add pixel-border
浏览器安装,建议安装压缩后的版本:
使用
pixel-border 通过元素的 ::before 伪元素使用 transform 缩放为元素设置边框。因此,你可以使用原生的 CSS 边框属性为原素设置边框,只需要在元素上添加一个 pixel-border 或 pixel-border="true" 的属性,并设置元素的 border-style 值即可。如下会创建一个单像素边框:
单像素边框
注意:pixel-border已为元素的边框设置为固定值 1px,因此不要为元素再设置 border-width,并且元素的 box-sizing 值被设置为 border-box,请不要重置为其他类型的值。
设置任意边框:
设置元素某一边的边框时,只需为元素设置 border-top-style、border-bottom-style、border-left-style、border-right-style 其中一项的值,并设置元素 border-color 的值即可。如下设置上边边框:
上边框
设置圆角边框:
当需要圆角边框时,始终为 border-radius 设置百分比值。如下:
圆角边框
到此这篇关于解决移动端1px边框最好的方法的文章就介绍到这了,更多相关解决移动端1px边框内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- CSS中的四种定位区别详解CSS之定位布局(position,定位布局技巧)关于CSS中定位的小结css3 transform导致子元素固定定位变成绝对定位的方法css定位position引发的层级关系问题详解深入学习CSS中如何使用定位(小结)详解css粘性定位position:sticky问题采坑
- CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法使用CSS计数器美化数字有序列表的实现方法
- css3 flex布局实现平均分配元素的示例代码使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)flex布局实现上下固定中间滑动的布局方式flex是什么及flex布局语法教程详解
- flex布局实现上下固定中间滑动的布局方式使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)css3 flex布局实现平均分配元素的示例代码flex是什么及flex布局语法教程详解
- flex布局换行空白间隙之align-content的使用flex布局实现无缝滚动的示例代码解决flex布局space-between最后一行左对齐的方法Flex移动布局中单行和双行布局的区别及使用详解CSS3新增布局之: flex详解flex布局实现每行固定数量+自适应布局浅谈Flex布局与缩放比例计算Flex布局做出自适应页面(语法和案例)深入浅析CSS3中的Flex布局整理详解CSS中的flex布局css用Flex布局制作简易柱状图的实现
- css 命名:BEM, scoped css, css modules 与 css-in-js详解CSS使用BEM命名规范实践CSS样式书写顺序和命名规范及注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则 好的 CSS 命名规范可以节约 Debug 时间CSS规范BEM CSS和OOCSS的示例代码详解详解css BEM书写规范 从QQtabBar看css命名规范BEM的详细介绍
- 纯CSS实现图片百叶窗展示效果示例非常漂亮的CSS3百叶窗焦点图动画
- 详解中文字体在CSS样式中font-family对应的英文名称
- 深入浅析CSS 的多种背景及使用场景和技巧CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
 
                                
                                                         
                                
                                                         
                                
                                                         
 
    