日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

解决CSS移动端1px边框问题

發(fā)布時間:2025/3/17 CSS 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决CSS移动端1px边框问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

移動項目開發(fā)中,安卓或者IOS等高分辨率屏幕會把1px的border渲染成2px來顯示,網(wǎng)上搜了一下,解決方法如下:

一、利用css中的transform的縮放屬性解決,推薦這個。如下面代碼。

?

<!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</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>

這個主要利用after偽類進行縮放。調(diào)用公共class,還是很方便的。

?

二、JS判斷是否支持0.5px邊框,是的話,則輸出類名hairlines ?

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); }

.hairlines .box {}

目前在用這個方法,使用很方便,無須多余的class,可惜支持的不是很好,IOS8+以上才可以。

?

三、box-shadow 陰影

-webkit-box-shadow:0 1px 1px -1px rgba(0, 0, 0, 0.5);

最先用的就是這個方法,IOS沒問題。很多安卓機顯示就是坨翔,黑乎乎的描邊。。

?

四、background-image

.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;}

也能實現(xiàn)效果,使用很不方便

?

五、圖片

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

顯示效果有點模糊,而且萬一以后要修改個顏色,那不坑爹了。

?

所以,目前推薦第一種方法。

?

總結(jié)

以上是生活随笔為你收集整理的解决CSS移动端1px边框问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。