1px边框问题和retina屏下的background-image

项目经理必看:如何建立高效的相关方沟通机制? 你是否遇到过这样的场景?客户突然说“这不是我要的”,开发团队抱怨“需求总变”,高层追问“进度滞后为什么不早说”?这些问题的根源往往是——相关方沟通机制失效。本文聚焦“如何建立高效沟通机制”,覆盖从识别相关方到持续优化的全流程,适用于IT、产品、工程等各类项目。本文将按“理解问题→拆解核心概念→掌握工具方法→实战落地→未来趋势”的逻辑展开,重点讲解“相关方分析矩阵”“沟通计划表”等实用工具,并用“组织生日派对”的案例贯穿全文,让抽象概念变得可感知。相关方识别:用“权力/利益矩阵”找对人(像派对邀请关键客人) 阅读详情

1px边框在lib-flexible下如何处理

web app有时候会设计出一些特别细的线条或者边框,如果我们直接通过css设置边框为1px:

border: 1px solid #ccc;

结果会发现这种边框在手机里看起来的效果,显得特别地粗,之所以会有这个效果,原因很简单,因为现在大部分手机的分辨率很高,一个css像素,比如上面代码中的1px,可能相当于2个甚至3个物理分辨率像素,而不像pc,一个css像素始终等于1个物理分辨率像素,所以手机里看到的1px会比实际的粗。

为了解决这个问题,你可能会想到用0.5px来代替1px,不过这个是解决不了问题的,而且带小数的像素在不同的浏览器下绝对是一个坑,千万要尽量避免。

那么通常在web app下显示1px的做法是怎样的呢,前阵子在weui的源码中看到了一个很好的办法,值得分享:

//这是一个mixin,用来设置顶部的边框,其它方向的代码没有贴出
.setTopLine(@c: #C7C7C7) {
    content: " ";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 1px;
    border-top: 1px solid @c;
    transform-origin: 0 0;
    transform: scaleY(0.5);
}

//应用举例
.weui_cell {
    // onepx
    position: relative;
    &:before {
        .setTopLine(@weuiCellBorderColor);
    }
}

这个办法并不是利用border属性来显示边框,而是利用了伪类和transform,最妙的是这个transform,0.5px办不到的事情,它却办得到。

由于lib-flexible在适配的时候,会缩放网页,导致css代码中的1px等于物理分辨率的1px,这样子这个1px边框的问题在经过lib-flexible适配的设备下就很好解决了,直接应用border: 1px solid;即可。但是lib-flexible现在只适配了iphone设备,安卓设备压根没适配:

image

导致在安卓设备下,1px的边框问题依然存在。所以为了在lib-flexible的项目里解决1px的问题,就得综合两种做法了:

.setTopLine(@c: #C7C7C7) {
  & {
    position: relative;
  }

  &:before {
    content: " ";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 1px;
    border-top: 1px solid @c;
  }

  [data-dpr="1"] &:before {
    transform-origin: 0 0;
    transform: scaleY(0.5);
  }
}
/*照着这个可以再写setBottomLine等相关mixin*/

这个做法,我做过测试,在我devicePixelRatio为3的meilan note上,显示出的线条非常细腻,看起来很舒服,iphone的效果也不错,借别人的机子测试过,所以有兴趣的人可以借鉴使用,有问题尽管提出,看看能不能有更好的办法解决。这是我用魅蓝note做测试的截图:

S60109-111103

第1根线是上面的mixin效果;第二根线是直接使用border: 1px solid的效果。

注:以上提到的这个1px边框的做法有三个缺点,在使用的时候需要注意:

1)它会占用掉before伪类

2)没法做圆角

3)很难实现多条边框,除非嵌套,或者再利用上after伪类。

尽管如此,以上这个做法还是非常有用的做法,因为这种细线边框属于比较特殊的设计要求,并不是每处边框都得做成这样,在开发webapp的时候用这个方法保证特殊线条的设计要求,其它的边线,我觉得直接用border并没有关系,你可以直接用你的手机打开bootstrap的官方页面,看它里面的按钮边框,效果都还不错。

3. lib-flexible如何处理retina屏下的background-image

几年之前,retina屏,也就是所谓的高清屏,还不像现在这么普遍,12年我买的第一个安卓机是华为u8825d,分辨率只有480*800,而且当时市面上大部分安卓机基本上都是这个分辨率,像iphone4 那种640*960级别的机子很少,为了解决普通背景图片在iphone4下显示模糊的问题,基本都是采用这种做法:

.css{/* 普通显示屏(设备像素比例小于等于1.3)使用1倍的图 */ 
    background-image: url(img_1x.png);
}
@media only screen and (-webkit-min-device-pixel-ratio:1.5){
.css{/* 高清显示屏(设备像素比例大于等于1.5)使用2倍图  */
    background-image: url(img_2x.png);
  }
}

估计当时应该是320的设计稿,img_1x.png是在320设计稿下切出的图,然后img_2x.png是在320设计稿矢量放大2倍后切出的图,高清屏显示img_2x.png,这样就能解决当时iphone4背景图片模糊的问题。

时至今日,手机都是走高配置,低价格的发展路线,480*800这种级别的机子,市面上越来越少,大部分手机的分辨率级别都达到了iphone4的标准,比iphone4的清晰级别更高的手机也越来越多,一个800块的魅蓝note,它的devicePixelRatio都已经达到了3,原先解决background-image问题的方法,需要调整一下才能适用于现在:

.css{/* 普通显示屏(设备像素比例小于等于2)使用2倍的图 */ 
    background-image: url(img_2x.png);
}
@media only screen and (-webkit-min-device-pixel-ratio:2.1){
.css{/* 高清显示屏(设备像素比例大于等于2.1)使用3倍图  */
    background-image: url(img_3x.png);
  }
}

代码中的2x和3x是相当于320的设计稿而言的,2x代替了原先的1x,3x代替了原先的2x。现在的设计稿也不再是320,而是640,2x就是在640下切出的图,3x是在640基础上矢量放大1.5切出的图。在这个代码的作用下,分辨率在640以下的设备都会显示2x的图,由于2x的图本身是在640的设计稿切出的,所以这些设备下不会有模糊的现象,在640以上的分辨率,会显示3x的图,由于3x的图是在960的分辨率下切出的,所以这种图在分辨率小于960的设备下都不会模糊。以前1x的情况根本不用再考虑了,以后不会再有需要1x图的设备,说不定过几年,市面上的手机全是devicePixelRatio在2.5以上的标准时,连2x的情况也不用考虑了。

lib-flexible在iphone6推出之后,把设计稿的尺寸提高到了750,切图时还是按2x和3x的方法来切,这样的话,经过lib-flexible适配的设备,分辨率在750以下都会显示2x的图,肯定不会模糊;分辨率在750以上的设备,会显示3x的图,也不会出现模糊。不过由于lib-flexible只适配了iphone的问题,所以我上篇博客中提到的用data-dpr来显示不同的图片的做法是错误的,因为有些安卓机,比如我的魅族node,devicePixelRatio是3,打开app页面,看到的图片却仍然还是2x的,显然达不到适配的要求,所以不能用data-dpr去适配,而应该采用下面这个做法:

.retina-image(@background-image) {
  background-image: url("../img/@2x/@{background-image}?v=@@version");
  background-size: 100% 100%;
  background-position:left top;

  @media only screen and (-webkit-min-device-pixel-ratio: 2.5),
  only screen and (min--moz-device-pixel-ratio: 2.5), /* 注意这里的写法比较特殊 */
  only screen and (-o-min-device-pixel-ratio: 5/2),
  only screen and (min-device-pixel-ratio: 2.5),
  only screen and (min-resolution: 240dpi),
  only screen and (min-resolution: 2.5dppx) {
    & {
      background-image: url("../img/@3x/@{background-image}?v=@@version") !important;
    }
  }
  //1dppx = 1devicePixelRatio, 1dppx = 96dpi.
}

这个代码的最终效果是:

1)devicePixelRatio大于等于2.5的设备都会应用到3x图

2)其它设备都会应用到2x的图。

这个方法,在chrome的模拟器里测试过很多机型,效果不错,不过它只适用于不使用雪碧图的背景图片,如果要在lib-flexible的项目里使用雪碧图作背景图片,同时又要考虑retina屏的话,需要将上面这个方法稍微改动一下。

首先看下不使用lib-flexible时,雪碧图背景在retina下是怎么做的,以腾讯的一个活动页面来说明http://qzs.qq.com/qzone/qzact/act/qzapp/qzone5.0/mobile/index.html,这是它在使用1x的雪碧图时某个元素的background的样式:

image

这是它在使用2x的雪碧图时某个元素的background的样式:

image

总结下它这个做法:

1)先把设计稿切出的图,合并成一张雪碧图,腾讯这个例子的设计稿是320的,所以它的切图都是1x的,这张雪碧图也就是1x的,大小为643 * 152

2)设计稿放大2倍,切图合并成一张2x的雪碧图,大小为1286 * 304

3)普清屏下只应用background-image和background-position属性,设置1x雪碧图作为背景,代码参考截图

4)高清屏下除了应用background-image和background-position属性,还要应用background-size属性,并且这个background-size的大小要设置为1x雪碧图的大小,background-position的值要与(3)里配置的值相同,代码参考截图。

如果把它做成一个mixin的话应该是类似这样的:

.retina-image(@background-image,@background-pos-x,@background-pos-y,@background-size-x,@background-size-y) {
  background-image: url("../img/@1x/@{background-image}?v=@@version");
  background-position:@background-pos-x @background-pos-y;

  @media only screen and (-webkit-min-device-pixel-ratio: 1.25),
  only screen and (min-resolution: 120dpi),
  only screen and (min-resolution: 1.25dppx) {
    & {
      background-size: @background-size-x @background-size-y;
      background-image: url("../img/@2x/@{background-image}?v=@@version") !important;
    }
  }
  //1dppx = 1devicePixelRatio, 1dppx = 96dpi.
}

考虑到1x不会再有的情况,上面这个mixin可以再调整一下:

.retina-image(@background-image,@background-size-x,@background-size-y,@background-pos-x,@background-pos-y) {
  background-image: url("../img/@2x/@{background-image}?v=@@version");
  background-size: @background-size-x @background-size-y;
  background-position:@background-pos-x @background-pos-y;

  @media only screen and (-webkit-min-device-pixel-ratio: 2.5),
  only screen and (min--moz-device-pixel-ratio: 2.5), /* 注意这里的写法比较特殊 */
  only screen and (-o-min-device-pixel-ratio: 5/2),
  only screen and (min-device-pixel-ratio: 2.5),
  only screen and (min-resolution: 240dpi),
  only screen and (min-resolution: 2.5dppx) {
    & {
      background-image: url("../img/@3x/@{background-image}?v=@@version") !important;
    }
  }
  //1dppx = 1devicePixelRatio, 1dppx = 96dpi.
}

默认用2x的图,devicePixelRatio大于等于2.5的设备用3x的图。这个调整后的mixin就是lib-flexible下,使用雪碧图背景的方法,应用举例:

@font-size-base: 75;
.btn-android {
  .retina-image("sprite.png", 414rem/@font-size-base, 232rem/@font-size-base, 0, -64rem/@font-size-base);
}

sprite.png用750设计稿的切图合并后的大小是414 * 232,.btn-android这个按钮的position为0 –64px。

尽管这个方法看起来完美,但是不建议使用,因为它的适配效果不好,这是iphone6下的效果:

image看起来不错,那是当然的,因为这就是它默认没有任何缩放的效果。然后看iphone6 plus的效果:

image有点差异,但好像还能接受。再看看nexus6的效果:

image这就不能忍了,样式差的离谱。造成这个差异的原因也很简单,就是rem的副作用,腾讯的页面里所有position,size都是不带小数的数值,而且2x跟1x之间是整数的翻倍,而不是3x跟2x之间的1.5倍,lib-flexible会导致大部分的设备下position和size都是小数数值,所以很难保证背景图片缩放后还能通过position显示到正确的位置:

image

从网页优化的角度来说,减少请求数,减少请求数据大小是两个基本的思路,雪碧图就是一个减少请求数但是不能减少请求数据量的方法。lib-flexible不能使用兼容3x屏的雪碧图的情况看起来是它一个大的缺陷,但实际上也并非如此:雪碧图如果用不了,就采用别的思路来优化,我能想到的更好的就是图片的延迟加载和懒加载,在app页面里控制好默认只加载首屏的图片,并且采用延迟和懒加载的方式,避免阻塞页面的加载,也能有极好的用户体验,打开手机淘宝的页面给人的感觉就是如此,而且你去看看手机淘宝的应用会发现它根本就没有用雪碧图,但是速度还是很快。

4. 结束语

本文主要研究了lib-flexible与响应式布局,1px边框和retina屏里背景图片适配的问题,希望能对你使用lib-flexible有所帮助,文中提出的方法不一定是最好的办法,而且可能还有遗漏的情况未考虑到,尤其是最后的背景图片问题,仅仅是webapp里图片处理的一个细小分支,有不对的地方,请您多多指正!



手把手教你学SOC芯片架构--NoC(片上网络,Network on Chip)全方位解析 ​、​。 阅读详情

相关推荐

基于ADS1299的8通道脑电采集系统硬件设计实战

生物电信号采集是医疗电子与可穿戴设备中的关键环节,微弱信号的高保真放大与数字化处理直接影响系统性能。高精度模数转换器与低噪声模拟前端设计成为工程实践的核心。ADS1299作为专用生物电测量芯片,集成多通道低噪声放大器与24位Δ-Σ ADC,广泛应用于脑电、心电等生理信号检测。本文基于ADS1299构建8通道脑电采集系统,详细阐述硬件架构、电源与参考设计、输入保护、PCB布局布线、固件SPI配置及数据读取,并结合实测数据分享噪声抑制与调试经验,为EEG采集设备开发提供完整参考。

weixin_29169505的博客 224

CSS-常用样式-–-背景属性(1),成功收获美团,小米offer

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。

2401_83974117的博客 783

论文阅读——Bayesian Knowledge Fusion(贝叶斯知识融合)

该篇论文解决了不确定环境中的信息融合问题。想象一下,有多位专家针对同一情况构建概率模型,我们希望汇总他们提供的信息。直接合并每个信息可能会遇到几个问题。例如,专家们可能不同意某个事件发生的概率,或者他们可能不同意两个事件之间因果关系的方向(例如,一个人认为 A 导致 B,而另一个人认为 B 导致 A)。他们甚至可能不同意概率网络中一组变量之间的整个依赖结构。

qq_64164071的博客 1496

【CSS】1 像素(0.5 像素)问题

造成这个问题的原因是由于⾼分辨率屏幕的像素密度⽐传统的屏幕要⾼,所以在屏幕上显示的⼀个 CSS 像素对应的物理像素个数也会相应地增多,当使⽤ CSS 中的 1px 来设置边框或者细线时,实际上渲染出来的线条在屏幕上会被拆分为多个物理像素,从⽽导致看上去更粗。CSS 中的 1 像素问题指的是在⾼分辨率屏幕上显示的 1 像素边框或者细线在实际显示时会⽐ 1 个物理像素更宽或更粗,从⽽导致边框或者细线看上去⽐预期的更粗或者更宽。背景图 background-image。按照比例呈现 1px。

小秀的博客 779

MFC停靠窗口实战:CDockablePane从创建到控件布局的完整指南(附残影问题排查)

本文提供了MFC中CDockablePane停靠窗口的完整实战指南,涵盖从自定义窗格类创建、主框架集成、内部控件布局到高级功能定制的全过程。针对开发中常见的“残影”视觉问题,文章深入剖析了其根源,并给出了系统性的排查步骤与解决方案,帮助开发者构建稳定、专业的可停靠用户界面。

sun99的博客 613

G2O (General Graph Optimization)入门及简单使用

g2o全称是General Graph Optimization,也就是图优化,我们在做SLAM后端或者更加常见的任何优化问题(曲线拟合)都可以使用G2O进行处理。

晓晨的博客 1万+

(礼拜四log)前端开发,使用jq的.css函数添加属性时!important要注意的问题

jq.css函数需要注意的问题

YuqiRealm.com 4181

【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据

使用 LCZ 替换 WRF 运行中的 LUCC 数据

WW、forever的博客 988

CSS给背景图片设置模糊样式

背景图片模糊: 、 代码: height:250px; background-image:url('../assets/1.png'); background-repeat:no-repeat; background-size:100%; -webkit-filter:blur(35px); -moz-filter:blur(35px); -...

dqzd12345的博客 1522

基于ADMM的TV正则化最小化稀疏实现图像重建

ADMM算法是一种求解带有约束条件的优化问题的有效方法,它可以将原问题分解成两个子问题,然后交替求解这两个子问题,直到收敛。为了解决这些问题,研究人员提出了许多图像重建方法,其中一种常用的方法是基于正则化的方法。在图像重建中,TV正则化是一种比较常用的正则化方法,可以有效地降低图像的噪声,并保持图像细节特征。通过本文的介绍和源代码的演示,我们可以看出基于ADMM的TV正则化最小化稀疏实现图像重建的方法是一种简单、高效、有效的图像重建方法,能够在一定程度上提高图像质量,对于实际应用具有一定的参考意义。

学习使你进步。 1762

【论文硬核拆解】Ctx2Skill:让大模型自己跟自己玩,从上下文里「进化」出可复用技能

论文选择自然语言技能可解释性:技能是人类可读的 Markdown 文件,可以审查、编辑、调试可迁移性:即插即用,从一个模型到另一个模型无需参数访问:对闭源模型友好这比 SKILL0/SkillRL 等参数内化方法更实用,尤其是在商业 API 场景。

步子哥的博客 152

设置背景图片模糊,内容不模糊

设置背景图片模糊,内容不模糊 需求:一个div设置了background-image,现在需要使背景模糊,div内的文字清晰显示。 解决方法:内容和图片分别置于一个div,通过css设置背景div模糊度,设置内容div绝对位置。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type="text/css"> .conten

lj1530562965的博客 3139

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

7种方法解决移动端Retina屏幕1px边框问题

在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了。原谅我的近视眼,为什么我看不出什么差距了,结果UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样!!! 没有办法,只有在后面的版本中去修改了,但是要改的话,需要知道是为什么。所以查了很多资料,终于搞懂了这个问题,并且总结了几种方法。 造成边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由

周搏的博客 2736

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

no target device found怎么解决_6种移动端1px解决方案(完整版)

前言在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在retina屏机型中,1px会比较粗,即是较经典的移动端1px像素问题。本文默认你已经对视口、物理像素、逻辑像素、设备像素比、css像素等移动端基本概念已经了解。产生原因设备像素比:dpr=window.devicePixelRatio,也就是设备的物理像素与逻辑像素的比值。...

weixin_39688636的博客 759

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

no target device found怎么解决_一文学会 6 种移动端 1px 问题解决方案(完整版)

前言在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在retina屏机型中,1px会比较粗,即是较经典的移动端1px像素问题。本文默认你已经对视口、物理像素、逻辑像素、设备像素比、css像素等移动端基本概念已经了解。产生原因设备像素比:dpr=window.devicePixelRatio,也就是设备的物理像素与逻辑像素的比值。...

weixin_39811842的博客 243

移动端1px 问题解决方案

移动端1px 问题产生的原因,以及解决方案

Absurd_people的博客 1554

7种方法实现移动端屏幕1px边框效果

  在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多。在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样。没有办法,只有在后面的版本中去修改了,但是要改的话,需要知道是为什么。所以查了很多资料,终于搞懂了这个问题,并且总结了几种方法。 造成边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度。在window对象中有一个devicePixelR

高先生的猫 2024

移动端1px像素问题及解决办法

        在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在某些机型上,1px会比较粗,即是较经典的移动端1px像素问题。首选先看一下,pc时代和移动端时代对1px的对比。一、像素的理解        像素是网页布局的基础。一个像素就是计算机能够显示一种特定颜色的最小区域。当设备尺寸相同但像素变得更密集时,屏幕能显示的画面的过渡更细...

xuexizhe88的博客 1万+

7 种方法解决移动端 Retina 屏幕 1px 边框问题

7 种方法解决移动端 Retina 屏幕 1px 边框问题 阅读 11949 收藏 251 2016-12-12 原文链接:www.jianshu.com 在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了。原谅我的近视眼,为什么我看不出什么差距了,结果UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样!!! 没有办法,只有在后面的版本中去修改了,但是要改的话,需要知道是为什...

北极熊的博客 239

7种方法实现移动端Retina屏幕1px边框效果

  在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多。在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不...

qq_37555524的博客 377

关于——解决1px的问题(总结版)

解决方案(有以下六种) 0.5px 方案 伪类+transform viewport + rem border-image background-image postcss-write-svg 前言 在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在retina屏机型中,1px会比较粗,即是较经典的移动端1px像素问题。 本文默认你已经对视口、物理像素、逻辑像素、设备像素比、css像素等移动端基本概念已经了解。 产生原因 设备像素比:dpr=w

qq_45955475的博客 1422

移动端视网膜(Retina)屏幕下1px边框线的解决方法

本文主要介绍几种 移动端视网膜(Retina)屏幕下1px边框线的解决方法。 1、通过viewport + rem的方式来兼容。 目前这种兼容方案相对比较完美,适合新项目(老项目改用REM单位成本会比较高)。 淘宝M首页 就是这种方案。 在devicePixelRatio = 2 时,输出viewport meta name="viewport" content="init

u013612686的博客 2129

background图片不显示_一种解决Retina屏幕1px边框显示问题的方案

一、背景介绍:Retina是一种新型高分辨率的显示标准,是把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度;同时CSS样式表中px单位是一个相对值,并不是绝对值,实际在Retina屏幕中渲染元素的时候,会根据实际的dpr渲染对应的物理像素点,导致CSS代码中1px高度的边框,在实际设备浏览器渲染的时候往往不是1个物理像素高度,可能是2个物理像素高度,甚至是3个...

weixin_39720516的博客 125

在移动端画出真正的1px边框

一、问题     写H5的样式时候,设置元素的边框为1px,不幸的事情在IOS设备上发生了,设计师会说,咦,边框怎么那么大,这是2px了吧?改成1px。我明明设置成1px了啊。 二、为什么边框变粗了?   IOS使用的是retina屏,因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在devicePixelRatio=2的retina屏下会显示成2px。所系css设...

diaolanbeng0962的博客 143
上一篇: 基于CSS color属性的静态UI组件重构策略
下一篇: scss常见用法
leadn
博客等级 码龄10年 13粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值