我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何解决移动端1px边框

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何解决移动端1px边框

这篇文章主要介绍了如何解决移动端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

浏览器安装,建议安装压缩后的版本:

<link rel="stylesheet" href="path/to/pixel-border.min.css"><link>

使用

pixel-border 通过元素的 ::before 伪元素使用 transform 缩放为元素设置边框。因此,你可以使用原生的 CSS 边框属性为原素设置边框,只需要在元素上添加一个 pixel-border 或 pixel-border="true" 的属性,并设置元素的 border-style 值即可。如下会创建一个单像素边框:

<div pixel-border style="border-style: solid;">单像素边框</div>

注意:pixel-border已为元素的边框设置为固定值 1px,因此不要为元素再设置 border-width,并且元素的 box-sizing 值被设置为 border-box,请不要重置为其他类型的值。

设置任意边框:

设置元素某一边的边框时,只需为元素设置 border-top-style、border-bottom-style、border-left-style、border-right-style 其中一项的值,并设置元素 border-color 的值即可。如下设置上边边框:

<style>  .border-top {    border-top-style: solid;    border-top-color: red;  }</style><div class="border-top" pixel-border>上边框</div>

设置圆角边框:

当需要圆角边框时,始终为 border-radius 设置百分比值。如下:

<style>  .border-radius {    width: 100px;    height: 100px;    border-style: solid;    border-color: red;    border-radius: 10%;  }</style><div class="border-radius" pixel-border>圆角边框</div>

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决移动端1px边框”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何解决移动端1px边框

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何解决移动端1px边框

这篇文章主要介绍了如何解决移动端1px边框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在移动端开发时,经常会遇到在视网膜屏幕中元素边框变粗的问题。1px 边框问题的由来苹果
2023-06-08

如何解决移动端Html5页面中1px边框的问题

这篇文章将为大家详细讲解有关如何解决移动端Html5页面中1px边框的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题提出这是一个比较老的问题了,我第一次注意到的时候,是UI设计师来找我麻烦,emm
2023-06-09

PyQt5项目中无边框后窗口出现移动问题如何解决

这篇文章将为大家详细讲解有关PyQt5项目中无边框后窗口出现移动问题如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:判断鼠标左键是否被按下,如果按下则将flag设为True并获
2023-06-08

如何解决PC端和移动端自适应问题

这篇文章主要介绍了如何解决PC端和移动端自适应问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决
2023-06-08

css3如何解决移动端卡顿的问题

这篇文章主要介绍css3如何解决移动端卡顿的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、使用css,jquery,canvas制作动画1.Canvas优点:性能好,强大,支持多数浏览器(除了IE6、IE7、
2023-06-08

如何解决移动端小图标模糊的问题

这篇文章将为大家详细讲解有关如何解决移动端小图标模糊的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言之前给大家讲到图片和文字垂直方向不对齐的问题,其中举的小例子中用到了一个小图标,这个小图标我用的
2023-06-08

JSBridge框架如何解决通信问题以及实现移动端跨平台开发

这期内容当中小编将会给大家带来有关JSBridge框架如何解决通信问题以及实现移动端跨平台开发,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、跨平台开发是趋势目前主流的移动端平台主要是Android和i
2023-06-05

如何解决canvas在移动端绘制模糊的问题

小编给大家分享一下如何解决canvas在移动端绘制模糊的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!由于一些移动端的兼容性原因,我们某个项目需要前端将pdf
2023-06-09

如何解决移动端HTML5音频与视频的问题

小编给大家分享一下如何解决移动端HTML5音频与视频的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在研究用视频代替动画,用视频代替精灵动画,我们称这种视
2023-06-09

win10不满屏两边有黑框如何解决

如果您的Windows 10显示器屏幕不满屏,两边出现黑框,可能是因为显示器分辨率或显示设置不正确。以下是一些解决方法:1. 调整显示器分辨率:右键单击桌面上的空白区域,选择“显示设置”。在“分辨率”下拉菜单中选择最高分辨率。如果黑框仍然存
2023-09-11

css如何使用:not() 解决lists边框的问题

小编给大家分享一下css如何使用:not() 解决lists边框的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用:not() 解决lists边框的问题在w
2023-06-27

win11鼠标自动漂移如何解决

本篇内容主要讲解“win11鼠标自动漂移如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win11鼠标自动漂移如何解决”吧!win11鼠标自动漂移解决方法:方法一:1、首先我们右键“此电脑
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录