总结一下一些知识。

1.利用CSS穿透

常见发生场景:假如我们需要通过input,type=‘file’来上传文件,而这个input的默认样式,可以说是非常地“不人道”。所以我们希望通过一张图片,与这个input大小一样,位置一致地盖在上面。这个时候,显然,这个时候点击图片,input是不会起作用的。就是因为img隔绝了click的穿透,而我们希望的是,这个img只是视觉上遮挡了input的样式,但是点击的时候还是点击到input。所以,只要让img可穿透即可。

css代码如下:


1

img{pointer-events: none;}

2.实现自定义原生select控件的样式

由于select移动端原生样式很丑,但是原生弹出效果是符合我们设计的原则。直接修改select的样式的时候,一个奇怪的现象出现了,在chrome上调试的时候,自己定义的样式起了作用,在Android手机上也起了作用,但是到了ios手机上就不行了,典型的不兼容问题,这个时候禁用原生的样式即可。

css代码如下:


1

select{-webkit-appearance: none;}

3.文本溢出处理

移动设备相对来说页面较小,很多时候显示的一些信息都需要省略部分。最常见的是单行标题溢出省略,多行详情介绍溢出省略。

css代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//单行

.single{

   overflow:hidden;

   white-space:nowrap;

   text-overflow:ellipsis;

}

//多行

.more{

    display:-webkit-box !important;

    overflow:hidden;

    text-overflow:ellipsis;

    work-break;break-all;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:2; //指定行数

}

4.300毫秒的故事

移动设备访问的web页面都是pc上的页面。在默认的viewport(980px)的页面往往都是需要“双击”或“捏开”放大页面来看清页面。而正是为了确认用户是“双击”还是“单击”。safari需要个300ms的延迟来判断。而后来的iphone也一直沿用这样的设计,再后来android也沿用了这样的设计。于是,“300ms的延迟”就成了一道规范。

处理方法:

使用自定义Tap事件代替click事件。 原理:在touchstart、touchend时记录时间、手指位置,在touchend时进行比较,如果手指位置为同一位置(或允许移动一个非常小的位移值)且时间间隔较短(一般认为是200ms),且过程中未曾触发过touchmove,即可认为触发了手持设备上的click,一般称它为“tap”。  

5.Tag透传的解决方案

①.使用缓动动画,过渡300ms的延迟。

②.中间层dom元素加入,让中间层接受这个“穿透”事件,稍后隐藏。

③.“上下”都使用tap事件,原理上解决tap透传事件(但不可避免原生标签的click事件)。

④.改用Fastclick的库。

6.开启弹性滚动

css代码如下:


1

2

3

4

body{

   overflow:scroll;

   -webkit-overflow-scrolling:touch;

}

注意:Android不支持原生的弹性滚动,但可以借助第三方库iScroll来实现。

7.点击不灵敏

起因:由于使用touch触发自定义tap事件,提速约200ms,但是touch事件对点击区域要求更大,偶有不触发。

解决方案:

①同时使用touchend和click触发tap事件,如果touchend已经处理,则click不处理。

②全局捕获click事件,如果click事件和tap事件的点击坐标一致,且相差不到1s。则在捕获阶段阻止事件默认行为的同时取消冒泡。

8.chrome调试快捷键

①ctrl+shift+f  全文查找

②ctrl+o  查找文件名

③ctrl+shift+o 查找js函数名  

9.弹性图片

主要用在百分比布局中,用一个父标签包裹img标签,父元素的宽度用媒体查询来改变。

css代码如下:


1

2

3

img{

  max-width:100%;

}

10.一像素边框设置

很多时候,想保持边框的大小在任何设置上都是1px,但是因为1px使用2dp渲染,也就是说会显示为2px大小。所以,要采用css3缩放一下。

css代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

.folder li{

   position:relative;

    padding:5px;

}

.folder li+li:before{

    position:absolute;

    top:-1px;

    left:0;

    content:‘ ‘;

    width:100%;

    height:1px;

    border-top:1px solid #ccc;

    -webkit-transform:scaleY(0.5);

}

转自自::http://www.cnblogs.com/LuckyWinty/

时间: 2024-08-04 00:40:47

总结一下一些知识。的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

前端里移动端到底比pc端多哪些知识?

前端里移动端到底比pc端多哪些知识,为啥面试时好多公司都问h5水平如何? 我做过几年的web前端开发,就简单谈谈自己的感受吧. 首先来看看PC端和移动端在前端开发上的一些区别: (1)PC考虑的是浏览器兼容性,移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器用的都是webkit内核,所以做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化: (2)在部分事件的处理上,移动端自然是偏向于触屏的,所以触屏事件的一些规律要多摸索一下,

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

认知,构建个人的知识体系(上)

1.前言 本文将聊聊我对构建个人知识体系的一些想法,主要是为了提升自我认知.从个人经历开始,谈谈对知识的划分,也就是一个是什么,为什么的过程. 2.缘起 把时间回到一年前,那时候我工作快一年了,得益于前面的一些努力,工作比较顺利.特别是技术上,没有遇到太多过无法解决的问题.同时也开始迷茫,工作难道就是这个轻松的样子?三五年之后那不是很无趣,该怎么办? 想找到这个问题的答案,而最好的方式莫过于,亲自去了解那些三五年工作经验的人是怎么的样子. 因此从那时候起,关注了不少来公司面试的人的简历,也有过几

知识汇总都在这里了,赶紧点开看看吧!

微信公众号:Web前端精髓 Web前端技术由html.css和JavaScript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构. Web前端精髓是一个分享前端知识的平台,内容包括HTML.CSS.javascript 等和前端技术相关的一切,如果您想对前端有更多的了解,那就持续关注我们,目的是帮助大家审查自己的知识结构是否完善,希望我的文章对你们有

学习虚拟化技术需要掌握的知识与能力(未完成版)

我从1993年学习计算机,有过短期的C语言开发经历,现在主要从事网络与系统集成的工作.我可以算是学习计算机比较"早"的一批人了. 1993年的时候,我是从MS-DOS 3.30开始,直到最后的MS-DOS 6.22.Windows系统是从Windows 3.1(中文版)开始,再到Windows 3.11.Windows 95.98一直到现在的Windows 10. 组建Windows网络是在1996年河北省国税局全省联网,是从Windows NT 3.51开始,到后来的Windows

CentOS下的路由知识及配置路由

博文目录 简介 上一篇博文已经讲解了IP地址的配置,那么有IP,就准备开始进行通信吧,网络之间的通信主要是依靠路由器,当然生成环境中是拥有路由器的,但是系统中的路由配置也是需要了解一下地,今天讲解一下软路由的显现,与一个路由的小实验 linux下需要启用ip_forword 启用路由功能 echo 1 > /proc/sys/net/ipv4/ip_forword 一.路由表中的接口 到达目标网段从本路由器的那个接口能到达,这个借口就本路由的记录接口 1.如果目标网络和路由器直接相连,网关即是路

javascript必须知道的知识要点(二)

该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象,如下. 数据封装类对象: Number对象 String对象 Boolean对象 Array对象 Object Function 工具类对象: Math对象 Date对象 RegExp对象 错误类对象: Error对象  Number对象 JavaScript 只有一种数字类型.Number,包括

关于H5框架之Bootstrap的小知识

浏览器支持 旧的浏览器可能无法很好的支持 Bootstrap 支持 Internet Explorer 8 及更高版本的 IE 浏览器 CSS源码研究 我们不是在head里面引入了下面这些文件么 <!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css"> &l

031医疗项目-模块三:药品供应商目录模块——sql补充知识

这个补充知识有一个点很有必要,视屏上的老师提出一点: 内链接关联查询: 如果表A和表B有一个外键关联 ,可以通过外键进行内链接查询 select dictinfo.*, dicttype.typename from dictinfo, dicttype where dictinfo.typecode = dicttype.typecode --不通过外键,通过groupid查询用户类型的代码结果集,只能查询出一条记录,可以使用内链接 select sysuser.*, dictinfo.info