1px渲染成2px的场景及解决方案

1、场景一:

IE6 下默认div最小高度为2px,如何创建高为1px的容器?

.minContainer{font-size:0px;overflow:hidden}

2、场景二:

移动端高分辨率下,将1px border 渲染成2px

解决方案(1)
<meta name="viewport" content="width=device-width,initial-scale=0.5,user-scalable=no"/>
然后通过rem进行布局
解决方案(2)
利用伪元素scale, 模拟边框:
eg:

<!DOCTYPE html>
 <html>
  <head>
   <meta charset="UTF-8">
   <title>解决1px边框问题</title>
   <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"/>
      <style>
      .line {position:relative;}
      .line:after {width:200%;height:200%;position:absolute;top:0;left:0;z-index:0;content:"";-webkit-transform:scale(0.5);-webkit-transform-origin:0 0;transform:scale(0.5);transform-origin:0 0;}

      .list {width:100%;margin:auto;list-style:none;padding:0;}
      .list:after {border:1px solid #ccc;border-radius:10px;}
      .item {padding:10px;}
      .item:after {border-bottom:1px solid #ccc;}
      .item:last-child:after {display:none;}
     </style>
  </head>
<body>

<ul class="list line">
  <li class="item line">item001<br/>sdfdsfsdfds</li>
  <li class="item line">item002</li>
  <li class="item line">item003</li>
  <li class="item line">item004</li>
  <li class="item line">item005</li>
  <li class="item line">item006</li>
  <li class="item line">item007</li>
  <li class="item line">item008</li>
  <li class="item line">item009</li>
  <li class="item line">item010</li>
</ul>

</body>
</html>
解决方案(3)
.shadow{box-shadow:0 1px 1px -1px rgba(0, 0, 0, 0.5);}
box-shadow andriod会出现一些异常显示
解决方案(4)
渐变
.border{position:relative;top:40px;height:1px;background: -webkit-gradient(linear, left top, left bottom, color-stop(.5, transparent), color-stop(.5, #ccc), to(#ccc)) left bottom repeat-x; background-size: 100% 1px; margin-top:20px}
解决方案(5)
 ios7以上版本支持0.5px,可通过js判断是否支持0.5px做降级处理

 if (window.devicePixelRatio && devicePixelRatio >= 2) {
    var testElem = document.createElement(‘div‘);
    testElem.style.border = ‘.5px solid transparent‘;
    document.body.appendChild(testElem);
  if (testElem.offsetHeight == 1)
  {
    document.querySelector(‘html‘).classList.add(‘hairlines‘);
  }
  document.body.removeChild(testElem);
}
解决方案(6)

background-image linear-gradient

.border {
         background-image:linear-gradient(180deg, red, red 50%, transparent 50%),
         linear-gradient(270deg, red, red 50%, transparent 50%),
         linear-gradient(0deg, red, red 50%, transparent 50%),
         linear-gradient(90deg, red, red 50%, transparent 50%);
         background-size: 100% 1px,1px 100% ,100% 1px, 1px 100%;
         background-repeat: no-repeat;
         background-position: top, right top,  bottom, left top;
         padding: 10px;
     }
解决方案(7)

border-image

.border3 {
          border-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB5JREFUeNpiPnH8zH/G////MzAxAAHTyRNn/wMEGABpvQm9g9TJ1QAAAABJRU5ErkJggg==") 2 0 stretch;
          border-width: 0px 0px 1px;
      }

iphone6 plus渲染成3px 通过@media 进行相应设置

时间: 2024-12-20 13:37:11

1px渲染成2px的场景及解决方案的相关文章

PHP如何自动识别第三方Restful API的内容,自动渲染成 json、xml、html、serialize、csv、php等数据

如题,PHP如何自动识别第三方Restful API的内容,自动渲染成 json.xml.html.serialize.csv.php等数据? 其实这也不难,因为Rest API也是基于http协议的,只要我们按照协议走,就能做到自动化识别 API 的内容,方法如下: 1.API服务端要返回明确的 http Content-Type头信息,如 Content-Type: application/json; charset=utf-8 Content-Type: application/xml;

了解场景以及解决方案来学习技术

目前对于一个开发人员来说,没有几年的项目开发经验,对于技术的理解可能不是很深.工作2年了,接触的都是针对某一行业的系统开发,可能使用的技术基本固定,比较好项目可能就是后期对代码框架的优化,对其进行二次封装,对系统进行拆分多个模块,抽象构建代码框架,最后使得项目适合多人快速开发,最后就是对业务进行运营监控. 但是到后期可以参与这些的员工,多数都是老员工,当然了要求也比较高,技术业务都得了解,但是也可能导致最后项目失败,最后重新开发. 作为一个开发经验不足的员工,了解一些业务场景,看看人家的解决方案

高并发、高负载解决方案之----------数据库分库分表的应用场景及解决方案

数据库分库分表的应用场景及解决方案  现实业务场景中,为了保障客户体验并满足业务的线性增长.会对数据量巨大,且业务会始终进行的产品进行分表分库策略.但是如何合理的根据业务采取争取的分表分库策略至关重要.下面以具体实例来进行分析. • 场景一:用户中心,单key业务如何进行数据库切分 • 场景二:订单中心,多key业务如何进行数据库切分 场景一:用户中心数据库切分架构实践|场景介绍 用户中心是一个十分常见的业务系统,涵盖用户登录.注册.信息查询与修改等服务. 用户的核心元数据为: User(uid

微服务架构的分布式事务场景及解决方案分析

分布式系统架构中,分布式事务问题是一个绕不过去的挑战.而微服务架构的流行,让分布式事问题日益突出! 下面我们以电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析! 如上图所示,假设三大参与平台(电商平台.支付平台.银行)的系统都做了分布式系统架构拆分,按上数中的流程步骤进行分析: 1.电商平台中创建订单:预留库存.预扣减积分.锁定优惠券,此时电商平台内各服务间会有分布式事务问题,因为此时已经要跨多个内部服务修改数据: 2.支付平台中创建支付订单(选银行卡支付):查

架构师细谈:什么是缓存雪崩?服务器雪崩的场景与解决方案

什么是应用服务雪崩? 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的.当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应. 缓存雪崩 当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力,造成数据库后端故障,从而引起应用服务器雪崩. 雪崩效应产生的几种场景 流量激增:比如异常流量.用户重试导致系统负载升高: 缓存刷新:假设A为cli

轻流五大「业务场景」解决方案,助您解决企业管理难题

亲爱的轻流用户们,今天给大家带来一份轻流的业务场景解决方案大合集,看看在进销存管理.客户关系管理.工程项目管理.售后管理.外包服务管理等场景下,轻流是如何解决令您头疼的业务管理难题的吧! 一:轻流 × 进销存管理 轻流进销存管理方案,可以通过完全的自定义流程实现采购.库存.项目.客户.内部管理的流程化.数据化及智能化,轻松解决了传统标准化的ERP软件难以适用于每家公司实际业务场景的问题. 实时的在线Excel,权限更明晰的进销存 通过业务流程自动化实现库存实时汇总,每一笔消耗均可溯源,从根源节省

大话业务场景与解决方案-做任务

背景 多数的移动端APP都会有做任务领取奖励的功能模块,这类需求的目的是培养用户使用习惯,提升用户活跃性,用户完成任务获得积分奖励,通过积分兑换商品或者充值话费,微信体现等. 拟定需求场景(如图↓),概要:APP底部导航中新增小任务Tab,点击Tab可查看任务完成进度和领取情况,点击去完成跳转到做任务的业务界面,当用户完成任务并且满足领取条件的时候,任务Tab需要红点提醒用户当前有奖励可领取,用户领取后并且当前没有待领取奖励小红点消失,任务完成进度和领取状态仅保持当天,隔天刷新. 业务分析 在开

容易导致循环引用的场景的解决方案

一.Block block的内部引用了对象的属性或者方法,导致block保留了对象,同时对象又保留了block,形成循环引用. 解决方案是,在ARC中采用__weak对对象进行弱化,在非ARC中采用__block对对象进行弱化.如下: @property(nonatomic, readwrite, copy) completionBlock completionBlock; //======================================== __weak typeof(self

如何将Html内容渲染成Image

从Nuget中安装HtmlRenderer.WinForms (这个包就有 HtmlRenderer dll) private void ConvertHtmlContentToImage() {   string html = "<h1>Welcome </h1><div><img src='https://www.google.com.sg/images/branding/googlelogo/2x/googlelogo_color_272x92dp