移动端1px 边框完整方案(四个方向)
使用stylus(预处理)
需要一个函数接收两个参数 第一个需要在哪个方向出现边框 第二个边框颜色
$border1px(face,$color)
根据传入的方向属性,调整其他参数
l 左右方向
t 垂直方向
w 上下出现边框则为width反之为height(边框在方向上的长度)
b 上出现边框则为bottom
x 为哪个方向上的缩放
具体对应关系如下
face==top && (l=left t=top b=bottom w=width x=scaleY)
face==bottom && (l=left b=top t=bottom w=width x=scaleY)
face==left && (l=left t=top b=right w=height x=scaleX)
face==right && (l=right t=top b=left w=height x=scaleX)
下面是边框
.border-1px {
position relative
}
.border-1px::after {
display block
position absolute
{l}
{t}
{w} %
border-{b} 1px solid $color
content ' '
}
媒体查询
这里需要使用字符串拼接 写成x(0.7) x将不会赋值
@media (-webkit-min-device-pixel-ratio 1.5),(min-device-pixel-ratio1.) {
.border-1px::after {
-webkit-transform x+'(0.7)'
transform x+'(0.7)'
}
}
@media (-webkit-min-device-pixel-ratio ),(min-device-pixel-ratio ) {
.border-1px::after {
-webkit-transform x+'(0.5)'
transform x+'(0.5)'
}
}
html
<div class="product">
<div class="border-1px">
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</div>
css
<style scoped lang="stylus">
@import '../common/css/index'
.product
$border1px(top,red)
border-bottom 1px solid red
</style>
效果图

完整代码
$border1px(face,$color)
face==top && (l=left t=top b=bottom w=width x=scaleY)
face==bottom && (l=left b=top t=bottom w=width x=scaleY)
face==left && (l=left t=top b=right w=height x=scaleX)
face==right && (l=right t=top b=left w=height x=scaleX)
.border-1px {
position relative
}
.border-1px::after {
display block
position absolute
{l} 0
{t} 0
{w} 100%
border-{b} 1px solid $color
content ' '
}
@media (-webkit-min-device-pixel-ratio 1.5),(min-device-pixel-ratio1.5) {
.border-1px::after {
-webkit-transform x(0.7)
transform x+'(0.7)'
}
}
@media (-webkit-min-device-pixel-ratio 2),(min-device-pixel-ratio 2) {
.border-1px::after {
-webkit-transform x+'(0.5)'
transform x+'(0.5)'
}
}
移动端1px 边框完整方案(四个方向)的更多相关文章
- 移动端1px边框
问题:移动端1px边框,看起来总是2倍的边框大小,为了解决这个问题试用过很多方法,用图片,用js判断dpr等,都不太满意, 最后找到一个还算好用的方法:伪类 + transform 原理是把原先元素的 ...
- 移动端1px边框伪类宽高计算
移动端1px边框在手机上看显得比较粗,于是我们用伪类结合css3缩放的方法去设置线条,但是如果设置div的一条边,水平线就设置宽度100%,垂直线就设置高度100%,那么如果是div的四条边呢?宽高1 ...
- 目前解决移动端1px边框最好的方法
在移动端开发时,经常会遇到在视网膜屏幕中元素边框变粗的问题.本文将带你探讨边框变粗问题的产生原因及介绍目前市面上最好的解决方法. 1px 边框问题的由来 苹果 iPhone4 首次提出了 Retina ...
- 移动端1px边框实现
问题描述:移动端iPhone上的1px边框看起来像2px那么粗.问题分析:不同的手机有不同的像素密度,在window对象中有一个devicePixelRatio属性,它可以反应设备的像素与css中的像 ...
- 解决CSS移动端1px边框问题
移动项目开发中,安卓或者IOS等高分辨率屏幕会把1px的border渲染成2px来显示,网上搜了一下,解决方法如下: 一.利用css中的transform的缩放属性解决,推荐这个.如下面代码. < ...
- 移动端1px边框问题
用于手机端受dpr的影响,实际开发中,PC端和移动端展示的效果不太一样,往往在PC端显示的是1px,移动端常常是偏粗一些. 解决办法: 主要是用到伪类及缩放.在需要画边框的元素上,设置一个伪类,它的伪 ...
- 移动端1px边框解决方案
在retina屏中,像素比为2(iPhone6/7/8)或3(iPhone6Plus/7Plus/8Plus),1px的边框看起来比真的1px更宽. 使用伪类加transform的方式 元素本身不定义 ...
- 解决移动端1px边框问题的几种方法
1.边框粗细原因 在移动端下设置border为1px,在某些设备上看比1px粗. 这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixelRatio属性,他可以反应css中 ...
- 关于移动端1px边框问题
<div class="z_nei_list"> <div class="z_name_left font-size3">身份证号:&l ...
随机推荐
- OpenCV探索之路(二十六):如何去除票据上的印章
最近在做票据的识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此, ...
- 第9期Unity User Group Beijing图文报道:《Unity实战经验分享》
时间来到了金秋九月,北京UUG活动也来到了第九期.本次活动的主题为<Unity实战经验分享>,为此我们邀请了3位资深的行业大神.这次我们仍然在北京市海淀区丹棱街5号微软大厦举行活动,在这里 ...
- Python二维数据分析
一.numpy二维数组 1.声明 import numpy as np #每一个[]代表一行 ridership = np.array([ [ 0, 0, 2, 5, 0], [1478, 3877, ...
- ubuntu mount u盘以及cp拷贝文件夹
如果是ubuntu桌面环境的话,不用mount,接入的U盘就可以直接被系统识别,访问起来非常方便,但如果没有桌面环境呢,比如在ubuntu server端,如何访问U盘呢? 第一步:查看U盘信息sud ...
- js 浏览器上调试方法多样
1.alert(111) 直接打印出 111 2.debugger 写在代码要调试的地方 3.直接在控制台 source 里找到要调试的代码打断点 4.console 常用的 ...
- 关于width与padding
http://blog.csdn.net/yaoyuan_difang/article/details/24735529
- nodejs+express-实现文件上传下载管理的网站
Nodejs+Express-实现文件上传下载管理的网站 项目Github地址(对你有帮助记得给星哟):https://github.com/qcer/updo 后端:基于nodejs的express ...
- java类加载小记
java类只有当创建实体或被调用时才会加载,加载时按 编码顺序 先加载static后加载普通的.static模块和static变量都是同一等级的,谁写前面就先加载谁. 在调用某个静态类的方法时,会按编 ...
- 第九章 MySQL中LIMIT和NOT IN案例
第九章 MySQL中LIMIT和NOT IN案例 一.案例的项目 1.创建数据库语句: #创建数据库 CREATE DATABASE `schoolDB`; USE `schoolDB`; #创建学生 ...
- win10 uwp 获得焦点改变
本文讲的是当我们应用失去焦点时,我们获得事件,当我们应用获得焦点,同样获得事件.同时,在应用不可以见时,我们也可以获得. 上面一张图,开始是应用启动,获得焦点,应用显示.然后我们打开另一个应用,切换, ...