使用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 边框完整方案(四个方向)的更多相关文章

  1. 移动端1px边框

    问题:移动端1px边框,看起来总是2倍的边框大小,为了解决这个问题试用过很多方法,用图片,用js判断dpr等,都不太满意, 最后找到一个还算好用的方法:伪类 + transform 原理是把原先元素的 ...

  2. 移动端1px边框伪类宽高计算

    移动端1px边框在手机上看显得比较粗,于是我们用伪类结合css3缩放的方法去设置线条,但是如果设置div的一条边,水平线就设置宽度100%,垂直线就设置高度100%,那么如果是div的四条边呢?宽高1 ...

  3. 目前解决移动端1px边框最好的方法

    在移动端开发时,经常会遇到在视网膜屏幕中元素边框变粗的问题.本文将带你探讨边框变粗问题的产生原因及介绍目前市面上最好的解决方法. 1px 边框问题的由来 苹果 iPhone4 首次提出了 Retina ...

  4. 移动端1px边框实现

    问题描述:移动端iPhone上的1px边框看起来像2px那么粗.问题分析:不同的手机有不同的像素密度,在window对象中有一个devicePixelRatio属性,它可以反应设备的像素与css中的像 ...

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

    移动项目开发中,安卓或者IOS等高分辨率屏幕会把1px的border渲染成2px来显示,网上搜了一下,解决方法如下: 一.利用css中的transform的缩放属性解决,推荐这个.如下面代码. < ...

  6. 移动端1px边框问题

    用于手机端受dpr的影响,实际开发中,PC端和移动端展示的效果不太一样,往往在PC端显示的是1px,移动端常常是偏粗一些. 解决办法: 主要是用到伪类及缩放.在需要画边框的元素上,设置一个伪类,它的伪 ...

  7. 移动端1px边框解决方案

    在retina屏中,像素比为2(iPhone6/7/8)或3(iPhone6Plus/7Plus/8Plus),1px的边框看起来比真的1px更宽. 使用伪类加transform的方式 元素本身不定义 ...

  8. 解决移动端1px边框问题的几种方法

    1.边框粗细原因 在移动端下设置border为1px,在某些设备上看比1px粗. 这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixelRatio属性,他可以反应css中 ...

  9. 关于移动端1px边框问题

    <div class="z_nei_list"> <div class="z_name_left font-size3">身份证号:&l ...

随机推荐

  1. hdu1556树状数组的区间更新单点查询

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  2. SQL语句表名或者字段名和保留字冲突解决方法

    最近开发遇到一个很奇葩的问题,简单做一下笔记 select * from Add ... 以上SQL语句会报错. 原因Add是表名,SQL语句保留字中又有Add 解决方法: select * from ...

  3. javascript中的DOM介绍(一)

    一.基础知识点 1.DOM是文档对象模型,是针对HTML和XML文档的一个API(应用程序接口) 2.DOM描绘了一个层次化的节点数,允许开发人员进行添加,移除个修改等操作 3.IE浏览器中所有的DO ...

  4. Ubuntu访问window下的磁盘分区出现“Error mounting /dev/sda5 at/media”错误的解决方法

    我装ubuntu之前,电脑上安装了windows 10,为了装ubuntu,在window 10下的磁盘工具分配了30G的磁盘空间.安装完Ubuntu之后,访问window 10的磁盘分区出现“Err ...

  5. Python GUI - Tkinter tkMessageBox

    Python GUI - Tkinter tkMessageBox: tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息     tkMess ...

  6. Python中wx.FlexGridSizer

    FlexGridSizer是GridSizer的一个更灵活的版本.它与标准的GridSizer几乎相同,除了下面3点例外: 1.每行和每列可以有各自的尺寸.2.默认情况下,当尺寸调整时,它行和列整体改 ...

  7. The Twelve-Factor App 实践

    The Twelve-Factor App <The Twelve-Factor App>定义了一个优雅的互联网应用在设计过程中,尤其是在设计SAAS服务时,需要遵循的一些基本原则.本文为 ...

  8. 初学者易上手的SSH-struts2 04值栈与ognl表达式

    什么是值栈?struts2里面本身提供的一种存储机制,类似于域对象,值栈,可以存值和取值.,特点:先进后出.如果将它当做一个容器的话,而这个容器有两个元素,那么最上面的元素叫做栈顶元素,也就是所说的压 ...

  9. UITextView实现限制100字

    placeHoderLable = [[UILabel alloc]initWithFrame:CGRectMake(3, 3, DeviceWidth-6, 40)]; //根据情况调节位置 pla ...

  10. Node Inspector 代理实现

    本文首发于 https://github.com/whxaxes/blog/issues/9 背景 平时做 node 开发的时候,通过 node inspector 来进行断点调试是一个很常用的 de ...