相信大家昨天打开某 404 搜索引擎的时候应该都看到这张图片了,不得不说,后人会以这么一种方式来纪念前人,而且还是一个伟大的公司,挺感动的。
前言
在开发 H5 页面的时候发现,部分安卓机的原生浏览器不兼容 0.5px 的 border ,这时候就很闹心了,如下所示代码:
input { border-bottom: 0.5px solid #DCDCDC; }
使用 rem 改进
后面想到了用 rem 的方式,因为 H5 页面借鉴了手淘的响应式像素,根据移动设备的 dpi 设定了根元素的 font-size 大小,所以几乎所有的 px 都改成了 rem 作为单位,这样可以更好地去实现移动端的响应式像素以及 Retina 屏幕上的表现。代码如下:
input { /* 47 是页面根元素的 font-size 大小 */ border-bottom: calc(1rem/47) solid #DCDCDC; }
测试中有部分机型完美展示了,但是有部分还是不显示,网上有帖子说可以利用伪元素 :before 和 :after 进行 1px 的表现,然后利用 transform: scaleY(0.5); 进行高度上的调整,思路很好,但奶奶个熊 input 元素不支持伪元素。
最后,物色到了一个很妙的方法:在 CSS 中使用 svg!
css 中引入 svg 来改进
具体思路是为元素加上 background-image ,然后把 svg 置为图片类型,因为 svg 上的 1px 就是实实在在的只占 1 个物理像素。
实现很简单,代码如下:
input { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><line x1='0' y1='100%' x2='100%' y2='100%' stroke='#dcdcdc' stroke-width='1'/></svg>") ; }
倒腾不止于此,利用 php 代码把 svg 的 xml 代码转成 base64 格式再试试:
<?php echo base64_encode("<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><line x1='0' y1='100%' x2='100%' y2='100%' stroke='#dcdcdc' stroke-width='1'/></svg>"); ?>
输出如下:
PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnPjxsaW5lIHgxPScwJyB5MT0nMTAwJScgeDI9JzEwMCUnIHkyPScxMDAlJyBzdHJva2U9JyNkY2RjZGMnIHN0cm9rZS13aWR0aD0nMScvPjwvc3ZnPg==
再引入到 css 的 background-image 中:(注意原 utf8 要改成 base64 )
input { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnPjxsaW5lIHgxPScwJyB5MT0nMTAwJScgeDI9JzEwMCUnIHkyPScxMDAlJyBzdHJva2U9JyNkY2RjZGMnIHN0cm9rZS13aWR0aD0nMScvPjwvc3ZnPg==") ; }
结语
其实还有很多方法可以来解决这个问题,大家尽情发挥一下脑洞吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
一、作用 离线浏览 - 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联...
Dreamweaver中如何使用Flash影片 1、首先需要我们准备的是一个Flash文件,其次最...
行高line-height实现单行文本垂直居中 以前一直认为单行文本垂直居中要将高度和...
CSS3实现酷炫的3D旋转透视 3D动画效果现在越来越普及,已经被广泛的应用到了各个...
打开软件,我们按快捷键ctrl+n,建立一个新的文件。 点击常用,选择布局。 点击...
在ie下设置 css 样式 style="cursor:hand;" 可以正常显示 但是在firefox下就不行...
作者 / Krish Vitaldevara,Google Play 信任与安全产品管理总监 多年来,向数十...
最近在做项目时,发现CSS3中关于动画的技术,自己很少运用在项目中,平时一些列...
背景 京东购物小程序作为京东小程序业务流量的主要入口,承载着许多的活动和页面...
在讲CSS优先级之前,我们得要了解什么是CSS,CSS是用来做什么的。 首先,我们对C...