移动端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 ...
随机推荐
- JavaScript 实现发布消息后,距离当前时间的实现
某条消息发布后,距离当前时间多久的时间显示 //显示发布时间的函数 function pastTime(_createTime) { //var createTime = _createTime.su ...
- C#进阶之AOP
一.AOP概念(转自) AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技 ...
- C-一行或多行文章垂直居中
1 样式效果 2 table布局 li span
- Java爬虫
作为一位Java爬虫的初学者,分享一下自己的心得.所用到的jar包 org.codehaus.jettison.jar jsoup-1.7.3.jar个人认为爬虫的实现机制:获取Docume对象-&g ...
- win10 uwp 隐藏实时可视化
新的vs有个功能,实时可视化 但是他会挡我们界面,想要隐藏 点击转到实时可视化,就是点击横线看到,接着就可以看到下面的选项 点击在应用程序中显示运行时,就是不选中 很简单就看到,没有那个 本作品采用知 ...
- win10 uwp 从StorageFile获取文件大小
本文主要:获取文件大小 private async Task<ulong> FileSize(Windows.Storage.StorageFile file) { var size = ...
- sphinx安装
相关命令及步骤 创建主索引: /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all ...
- 结对编程之<GoldPointGame>
我们结对项目的名称是GoldPointGame,这是一个非常经典的老游戏,其规则大致是:N个同学每个人依次报一个(1-100)的有理数,交给裁判算出其平均值,然后乘以黄金点数0.618,最后得到G值. ...
- C#导出.csv格式的excel表
.cs文件直接贴代码: using System; using System.Collections.Generic; using System.Data; using System.IO; usin ...
- JAVA基础知识总结:十
一.抽象类 1.定义 当多个类中出现相同功能,但是功能主体是不同的,这是可以进行向上抽取的,只抽取功能的定义部分,使用抽象类实现 抽象类的存在就是为了被继承 2.使用 abstract 3.抽象类的特 ...