Web前端绘制0.5像素的几种方法


Posted in HTML / CSS onAugust 11, 2017

最近完成了公司安排的移动web触屏开发,期间涉及到在移动设备上显示线条,最开始采用PC常用的css board属性来显示1个像素的线条,但是发现在移动设备上并不美观,参考淘宝、京东的触屏发现它们均是采用浅细的线条来显示在移动设备上。

以下纪录了比较方便的4种绘制0.5像素线条方式

一、采用meta viewport的方式,这个也是淘宝触屏采用的方式

常用的移动html viewport的设置如下

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
具体意思就不多提,它就是让页面的高宽度即为设备的高宽像素,而为了方便绘制0.5像素的viewport的设置如下

<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no" />
这样html的宽高就是设备的2倍,此时依然使用css board为1像素的话,肉眼看到页面线条就相当于transform:scale(0.5)的效果,即为0.5像素

但是这种方式涉及到页面整体布局规划以及图片大小的制作,所以若采用这个方式还是事先确定为好

二、采用 border-image的方式

这个其实就比较简单了,直接制作一个0.5像素的线条和其搭配使用的背景色的图片即可

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>boardTest</title>
    <style>
            p{
                margin: 50px auto;
                padding: 5px 10px 5px 10px;
                color: red;
                text-align: center;
                width: 60px;
            }
            p:first-child{
                border-bottom: 1px solid red;
            }
            p:last-child{
                border-width: 0 0 1px 0; border-image: url("img/line_h.gif") 2 0 round;
            }
    </style>
<body>
    <div>
        <p>点击1</p>
        <p>点击2</p>
    </div>
</html>

三、采用background-image的方式

我这里采用的是渐变色linear-gradient的方式,代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>boardTest</title>
    <style>
            p{
                margin: 50px auto;
                padding: 5px 10px 5px 10px;
                color: red;
                text-align: center;
                width: 60px;
            }
            p:first-child{
                border-bottom: 1px solid red;
            }
            p:last-child{
                background-image: -webkit-linear-gradient(bottom,red 50%,transparent 50%);
                background-image: linear-gradient(bottom,red 50%,transparent 50%);
                background-size:  100% 1px;
                background-repeat: no-repeat;
                background-position: bottom right;     
    </style>
</head>
<body>
    <div>
        <p>点击1</p>
        <p>点击2</p>
    </div>
</body>
</html>

linear-gradient(bottom,red 50%,transparent 50%);的意思是从底部绘制一个渐变色,颜色为红色,占比为50%,而总宽度已经设置为100%而总高度为一个像素background-size:  100% 1px;

这样显示出来就是0.5像素的线条

四、采用transform: scale()的方式

就是将绘制出来的线条的高度进行半倍的缩放,代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>boardTest</title>
    <style>
            p{
                margin: 50px auto;
                padding: 5px 10px 5px 10px;
                color: red;
                text-align: center;
                width: 60px;
            }
            p:first-child{
                border-bottom: 1px solid red;
            }
            p:last-child{
                position: relative;
            }
            p:last-child:after {
                position: absolute;
                content: '';
                width: 100%;
                left: 0;
                bottom: 0;
                height: 1px;
                background-color: red;
                -webkit-transform: scale(1,0.5);
                transform: scale(1,0.5);
                -webkit-transform-origin: center bottom;
                transform-origin: center bottom
            }
        
    </style>
</head>
<body>
    <div>
        <p>点击1</p>
        <p>点击2</p>
    </div>
</body>
</html>

 以上就是小编为大家整理出来的Web前端绘制0.5像素的几种方法,希望对大家的学习能够起到帮助~

HTML / CSS 相关文章推荐
css3 条纹化和透明化表格Firefox下测试成功
Apr 15 HTML / CSS
CSS3制作轮播图的一种方法
Nov 11 HTML / CSS
HTML5 File接口在web页面上使用文件下载
Feb 27 HTML / CSS
HTML5 语音搜索只需一句代码
Jan 03 HTML / CSS
Html5 Geolocation获取地理位置信息实例
Dec 09 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
Nov 02 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
Html5饼图绘制实现统计图的方法
Aug 05 HTML / CSS
六种css3实现的边框过渡效果
Apr 22 HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
Jun 21 HTML / CSS
纯CSS3实现div按照顺序出入效果
Jul 15 HTML / CSS
使用CSS实现百叶窗效果示例代码
May 07 HTML / CSS
css3 box-shadow阴影(外阴影与外发光)图示讲解
Aug 11 #HTML / CSS
css3之UI元素状态伪类选择器实例演示
Aug 11 #HTML / CSS
CSS3系列之3D制作方法案例
Aug 14 #HTML / CSS
全面解析CSS Media媒体查询使用操作(推荐)
Aug 15 #HTML / CSS
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
Aug 18 #HTML / CSS
详解CSS3开启硬件加速的使用和坑
Aug 21 #HTML / CSS
前端面试必备之CSS3的新特性
Sep 05 #HTML / CSS
You might like
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
transform python环境快速配置方法
2018/09/27 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
Django中FilePathField字段的用法
2020/05/21 Python
python 实现Harris角点检测算法
2020/12/11 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
财务经理岗位职责
2013/11/09 职场文书
心理学专业求职信
2014/06/16 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
2016新年年会主持词
2015/07/06 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
Spring实现内置监听器
2021/07/09 Java/Android