retina屏幕1像素边框问题

Retina屏问世蛮长时间了,想必不少前端人员被“像素眼”设计师提到过这个问题,下面直接是我常用到的解决方案:

/*1像素边框处理*/
@media(-webkit-min-device-pixel-ratio:2) {
	.box{
		border: none;
		background-size: 100% 1px;
		background-repeat: no-repeat;
	}

	/*上下边框*/
	.box-bd_top-bottom{
		padding-top: 1px;
		padding-bottom: 1px;
		background-position: left top, left bottom;
		background-image: linear-gradient(to top, transparent 50%, #dbdbdb 50%), linear-gradient(to bottom, transparent 50%, #dbdbdb 50%);
	}

	/*上边框*/
	.box-bd_top {
		padding-top: 1px;
		background-position: left top;
		background-image: linear-gradient(to top, transparent 50%, #dbdbdb 50%);
	}

	/*右边框*/
	.box-bd_right{
		background-size: 1px 100%;
		padding-right: 1px;
		background-position: right top;
		background-image: linear-gradient(to right, transparent 50%, #ffffff 50%);
	}
	.sales-activity .col:nth-of-type(1)>p {
		background-size: 1px 100%;
		padding-right: 1px;
		background-position: right top;
		background-image: linear-gradient(to right, transparent 50%, #dbdbdb 50%);
	}
     
      
     /*下边框*/
	.box-bd_bottom{
		padding-bottom: 1px;
		background-position: left bottom;
		background-image: linear-gradient(to bottom, transparent 50%, #dbdbdb 50%);
	}
    /*四边框*/
	.box{position:relative;padding:1px;border:none;}
	.box:before{
		content:"";position:absolute;top:0;left:0;width:200%;height:200%;border-radius: 8px;
		border:1px solid #099FDE;
		transform:scale(0.5);
		transform-origin:0 0;
		box-sizing:border-box;
		border-radius: 4px;
	}	
}

四边框都有的话,用scale;一个或两个边框用渐变!

 

附上前辈总结的各种方法:https://www.cnblogs.com/surfaces/p/5158582.html

 

posted @ 2018-05-11 14:39  qnlz  阅读(182)  评论(0编辑  收藏  举报