Mobile Web Development: 针对webkit的HTML, CSS和Javascript

纯CSS移动端网站:零JS、强制手机访问、Flex+Grid+变量实战 HTML和CSS是构建网页的基石技术,其核心价值在于轻量、可控与极致性能。在移动优先场景下,纯CSS方案通过Flex布局实现一维弹性排布,Grid完成二维结构划分,CSS自定义变量统一管理颜色、间距与动效参数,使样式真正成为可配置的数据。这种技术路径规避了JavaScript带来的首屏延迟、兼容性风险与状态复杂度,特别适用于扫码即用、快闪活动、展会落地页等强时效性场景。结合viewport锁定、设备级媒体查询与优雅降级策略,能确保在iPhone SE至华为P30等中低端机型上稳定运行。本文聚焦于真实项目中高 阅读详情


前面有一篇文章介绍了HTML5的一些新特性以及技巧, 现再来总结一些更多的针对webkit的 HTML, CSS和Javascript方面的特性.

HTML

  1. 让内容的宽度自适应为设备的宽度, 在做Mobile Web时必须加的一条

    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  2. 禁用手机号码链接(for iPhone)

    <meta name="format-detection" content="telephone=no">
  3. 设置你网页的图标, 尺寸为57px * 57px

    <link rel="apple-touch-icon" href="icon.png"/>
  4. iOS 2.0+: tell iOS not to apply any glare effects to the icon

    <link rel="apple-touch-icon-precomposed" href="icon.png"/>
  5. iOS 4.2+ icons for different resolutions

    <link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" />
    <link rel="apple-touch-icon" sizes="114×114" href="touch-icon-iphone4.png" />
  6. 全屏启动时候的启动画面图像, 尺寸320X460 px

    <link rel="apple-touch-startup-image" href="startup.png">
  7. 是否允许全屏显示, 只有在桌面启动时可用

    <meta name="apple-mobile-web-app-capable" content="yes" />
  8. 控制全屏时顶部状态栏的外观, 默认白色

    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  9. 取消自动完成, 自动大写单词字母(适用于Mobile上)

    <input autocorrect="off" autocomplete="off" autocapitalize="off">
  10. 语音输入

    <input type="text" x-webkit-speech />
  11. 文件上传, 从相机捕获媒体

    <input type="file" accept = "image/*; capture=camera" />
    <input type="file" accept = "video/*; capture=camcorder" />
    <input type="file" accept = "audio/*; capture=microphone" />
  12. 发送短信给多个人的链接

    <a href="sms:18005555555,18005555556">
  13. 发送短信附带内容的链接

    <a href="sms:18005555555?body=Text%20goes%20here">
  14. 拨打电话的链接

    <a href="tel:18005555555">Call us at 1-800-555-5555</a>

CSS

  1. Mobile上点击链接高亮的时候设置颜色为透明

    -webkit-tap-highlight-color: transparent;
  2. 设置为无法选择文本

    -webkit-user-select: none;
  3. 长按时不触发系统的菜单, 可用在图片上加这个属性禁止下载图片

    -webkit-touch-callout: none;
  4. 全屏模式时的样式(for Desktop)

    :-webkit-full-screen canvas {}
  5. 使用mathes来匹配多个选择器

    div p :matches(em, b, strong) {}
  6. 指定Mobile设备或者小屏幕桌面屏幕

    @media only screen and (max-width: 480px) {}
  7. 指定高分辨率屏幕设备

    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 300dpi) {
     header { background-image: url(header-highres.png); }
    }
  8. 指定低分辨率屏幕设备

    @media (-webkit-max-device-pixel-ratio: 1.5),(max-resolution: 299dpi) {
     header { background-image: url(header-lowres.png); }
    }
  9. CSS3的背景属性

    background-repeat: space;
    background-repeat: round;
  10. 计算宽度

    width: calc(100%-40px);
  11. 波浪型链接

    text-decoration: #FF8800  wavy ine-through;
  12. 收紧字符间的距离

    text-rendering: optimizeLegibility;
  13. 设置CSS连字

    font-variant-ligatures: common-ligatures;
  14. 旋转90度

    transform: rotate(90);
  15. transform-origin可以改变变换的位置

    transform-origin: center center;
  16. -webkit-appearance可以改变按钮或者其它控件看起来类似本地的控件

    -webkit-appearance: none;
  17. 美化表单校验时的提示样式, 当提示出现时类似于下面的结构

    /* html
    <div -webkit-validation-bubble>
    <div -webkit-validation-bubble-arrow></div>
    <div -webkit-validation-bubble-arrow-clipper></div>
    <div -webkit-validation-bubble-message>Error Message</div>
    </div>
    */
    ::-webkit-validation-bubble {}
    ::-webkit-validation-bubble-message {}
    ::-webkit-validation-bubble-arrow {}
    ::-webkit-validation-bubble-arrow-clipper {}
  18. 自定义webkit浏览器的滚动条, 见Google Reader等在Chrome/Safari下的效果, 下面 是一个实例, 这个滚动条的样式代码如下

    ::-webkit-scrollbar {
    width: 12px;
    }
    /* Track */
    ::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    -webkit-border-radius: 10px;
    border-radius: 10px;
    }
    /* Handle */
    ::-webkit-scrollbar-thumb {
    -webkit-border-radius: 10px;
    border-radius: 10px;
    background: rgba(255,0,0,0.8);
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
    }
    ::-webkit-scrollbar-thumb:window-inactive {
    background: rgba(255,0,0,0.4);
    }
  19. 设置一个元素的背景或颜色的组合样式

    -webkit-background-composite: plus-darker;
  20. 文字添加描边

    -webkit-text-stroke:  1px rgba(0,0,0,0.5);
  21. 定义一个图片用来遮罩元素

    -webkit-mask-image:  url(/path/to/mask.png);
  22. 定义了一个元素的反射

    -webkit-box-reflect:  below 5px;
  23. 定义相对地址的链接样式

    :local-link {font-weight: normal;}

Javascript

  1. 隐藏地址栏 window.scrollTo(0,0);
  2. 匹配媒体 window.matchMedia();
  3. 决定手机是否运行在WiFi/3G等网络 navigator.connection;
  4. 决定屏幕分辨率(iPhone 4值为2, 而Nexus One值为1.5) window.devicePixelRatio;
  5. 取得网络连接状态 window.navigator.onLine
  6. 决定iPhone是否处于全屏状态 window.navigator.standalone;
  7. touch事件 (iOS, Android 2.2+)
    • touchstart
    • touchmove
    • touchend
    • touchcancel
  8. gesture事件 (Apple only, iOS 2+) - give access to predefined gestures (rotation, scale, position)

    • gesturestart
    • gesturechange
    • gesturend
  9. window.orientation属性和orientationchange 事件

    • window.orientation: 0 is portrait, 90 and -90 are landscape
  10. devicemotion 事件

    window.addEventListener("deviceorientation", function(e){
     //e.alpha
     //e.beta
     //e.gamma
    }, false);
  11. devicemotion 事件

    window.addEventListener("devicemotion", function(e){
     //e.accelerationIncludingGravity.x
     //e.accelerationIncludingGravity.y
     //e.accelerationIncludingGravity.z
    }, false);
  12. requestAnimationFrame() 新的动画函数

  13. element.webkitRequestFullScreen() 调用全屏函数

扩展阅读

Webkit优先开发范式:一场前端心智模型的革命 Webkit引擎不仅是浏览器内核,更代表一种可预期、可验证、可演进的标准执行环境。其核心价值在于打破IE6时代‘向下兼容’的思维枷锁,推动开发者从还原主义、折中主义跃迁至能力主义——以功能需求驱动设计,用CSS3/HTML5原生特性直抒胸臆,再通过分层降级保障基础体验。这种‘Webkit优先’工作流,本质是构建确定性开发闭环:真机验证、私有前缀封装、Modernizr特性检测、@supports渐进增强,最终实现跨终端一致的工程可控性。它不解决所有兼容问题,却重塑了前端开发的认知坐标与技术主权。 阅读详情

相关推荐

大疆M3508电机使用CAN通信进行速度PID闭环控制详解

目录一. 简介二. 电机通信协议三. 电机PID控制原理四. 官方代码移植-中断接收五. 官方代码移植-查询接收 一. 简介 之前写过一篇文章STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法,其中是以大疆的M3508电机为例进行讲解的(没错,就是RoboMaster机器人同款电机,不过Robomaster上的电机好像是小一号的M2006)。不少小伙伴私信问我要代码,我都回复说不是有官方demo么。后来问的人多了我大概明白了,看来官方的Demo还是有点门槛。可能是带FreeRTOS操作系统看

qq_30267617的博客 7万+

Docker 部署 Windows X Lite 完整教程:3 步拉起轻量 Windows 容器,附避坑清单

想在几行配置里用 Docker 部署一台即用即弃、可批量复制的轻量 Windows 容器?开源项目 wi/windows 让 Windows X Lite 在容器内自动下载镜像、完成无人值守安装,装好后直接通过网页或远程桌面使用。Windows X Lite 是在 Windows 核心组件之上深度精简的系统:保留运行必需的内核模块,裁掉大部分预装应用与非必要后台服务,由 QEMU/KVM 以独立系

gitblog_00398的博客 1061

(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图

保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。

shayuxing的博客 2万+

电子书下载:Beginning iPhone and iPad Web Apps: Scripting with HTML5, CSS3, and JavaScript

DescriptionThis book will help you join the thousands of successful iPhone App developers without needing to learn Objective-C or the Cocoa touch APIs. If you want to apply your existing web deve...

weixin_30767835的博客 125

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 285

本地部署llama3Chinese

这通常意味着你的构建环境可能不完整或者没有正确配置。通常是由 Visual Studio 的 C++ 工具提供的。(大模型对错误的解析)错误信息表明在尝试构建一个项目时,在 Windows 上,

m0_49343639的博客 1432

HTML5相关开源JS插件

excanvas.js ExplorerCanvas是一个让旧版IE浏览器支持HTML5 canvas标签的开源项目。使用非常简单,只需要在页面引入excanvas.js这个脚本。 主页:http://excanvas.sourceforge.net/ 下载:http://code.google.com/p/explorercanvas/downloads/list 示例:http:/...

果子 290

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+

7个实用的Mobile移动相关HTML、CSS、JavaScript代码片段

文章源自:http://www.gbtags.com/gb/share/2046.htm 7个实用的Mobile移动相关HTML、CSS、JavaScript代码片段 移动HTML,CSS和JavaScript开发兴起若干年,如果你是这方面的开发者,肯定积攒了一些很棒的代码片段。可能有些已应用到程序开发中,有些可能可以保存到未来实用。在下面的文章中我将推荐7段非常实用的代码片段,或许可以...

weistar103的专栏 241

OpenCV教程:超详细的OpenCV入门教程,值得收藏

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。 OpenCV 使用 C/C++ 开发,同时也提供了 Python、Java、MATLAB 等其他语言的接口。 OpenCV 是跨平台的,可以在Windows、Linux、Mac OS、Android、iOS 等操作系统上运行。 OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、..

pythonandaiot的博客 14万+

Vue3 - Vite运行打包时Uncaught ReferenceError: process is not defined(解决vue3+vite报错process is not defined)

vue3,vite,vue3+vite报错,process,UncaughtReferenceError:processisnotdefined,浏览器控制台报错processisnotdefined解决方法,vue3如何解决报错,vite报错怎么办,前端打包UncaughtReferenceError:processisnotdefined,npmrunbuild打包报错,vite打包时出现错误,vue3打包运行找不到process,热更新会报错UncaughtRefer

🏆 前端领域优质创作者 7737

Cherry Studio API Gateway 不再自动启动:显式开关说停就停,Agent 桥接许可一次讲透

你在 Cherry Studio 的设置页把本地 API Gateway 的开关拨到"关",重启应用,端口 23333 又在听了——这个"关了又自己开"的毛病对应 issue #18521,已由 PR #18523 修复。本文拆开这次 API Gateway 行为变更:显式开关如何让关闭跨重启生效,Agent 桥接模型时又为何要先弹窗征得同意。 ## 一、结论先行:API Gateway 显式开

gitblog_00749的博客 796

【信息系统项目管理师】高分论文:论信息系统项目的整合管理(绩效考核系统)

我们将项目管理计划中的子计划包括项目范围、进度、成本、质量管理计划,过程改进计划,人力资源管理计划,风险、采购管理计划,干系人管理计划,项目范围、成本、进度基准作为依据,查看项目的各个方面,通过组织全体团体成员会议来解读由各监控过程提供的信息,之后我与项目管理团队一起制订所需措施,确保项目绩效达到预期要求。在一个项目中,变更是必然的,也是不可避免的,进度拖延,成本失控,客户有新的需求等都会引起项目的变更。在本项目中,我要求有处于工作状态的产品,开发人员才可以对其任意修改,修改完成后,重新入库即可。

数据知道的博客 6887

新的起点!Mobile WEB前端开发

随着通信业、移动设备产业、互联网产业的快速发展,如今我们已经可以明显地感受到,我们身边的移动设备越来越多,越来越智能,价格越来越低,也越来越与我们的生活密不可分。去年底在支付宝做分享时,我曾说过一句“Mobile WEB风暴,即将席卷中国”,现在看来,我们似乎已经开始接受风暴的洗礼了吧。 Mobile WEB,曾经或者现在,我们或许习惯性地称之为“WAP”,其实叫什么不重要,充其量只是个名...

weixin_34232617的博客 150

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Mobile web app 开发总结

http://www.cnblogs.com/pifoo/archive/2011/05/28/webkit-webapp.html

东名夜雨 的专栏 813

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

(转)Sencha Touch和jQuery Mobile的比较

原文:http://extjs.org.cn/node/664 Sencha Touch和jQuery Mobile的比较 Posted 周三, 08/07/2013 - 10:07 byadmin 很多人问我Sencha Touch 和jQuery Mobile哪个更好。事实上,它两的区别就像是Web后台编程,PHP和Java。它们都能完成同样的功能,但其实它们是为...

dianxinxi3996的博客 188

mobile web开发遇到的问题

移动web开发之道(Android与Iphone) 1、javascript篇 (1)使用querySelector和querySelectorAll这两个方法获取文档对象中DOM节点的引用 由于这两个方法都是本地方法,因此在执行效率上比较理想//获得一个id为masthead的对象的引用: var masthead = document.querySelector( "#masthead ")

wangqiuchen_Study的专栏 968

mobile开发中常用的css

1. viewport:也就是可视区域。对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏、状态栏、滚动条等等之后用于看网页的区域,这是真正有效的区域。由于移动设备屏幕宽度不同于传统web,因此我们需要改变viewport;实际上我们可以操作的属性有4 个:?width -             //  viewport 的宽度 (范围从200 到10,000,默认为980

不是程序员 2259

构建基于 Sencha Touch 框架的 Mobile web 应用

Sencha Touch 特性 Sencha Touch 的出现是 Mobile web 开发人员的福音,它提供的众多吸引人的特性让它成为目前业界最炙手可热的框架。 基于最新的 web 标准——HTML5,CSS3,JavaScript。整个库压缩和 gzip 后大约 120KB,通过禁用一些组件还会使它更小。支持目前世界上最好的移动设备。Sencha Touch 目前支持 Apple i

精彩人生 684

jQuery Mobile中文手册:开发入门

jQuery Mobile 以“Write Less, Do More”作为目标,为所有的主流移动操作系统平台提供了高度统一的 UI 框架:jQuery 的移动框架可以让你为所有流行的移动平台设计一个高度定制和品牌化的 Web 应用程序,而不必为每个移动设备编写独特的应用程序或操作系统。   框架特性    jQuery Mobile 目前支持的移动平台有苹果公司的 iOS(iPhone,ipa...

huidaoli 1648

JavaScript---- 移动Web开发

选择正确的 JavaScript 框架,对于开发移动 Web 应用程序是至关重要的,也是移动应用程序开发的一项重要任务。开发人员可以使用框架实现的功能高效地达到他们的开发目标。这些预实现的组件采用优秀的设计模式和最佳实践,促进应用程序以标准化的方式开发。最重要的是,它让开人员在开发过程中得心应手。   这里集合了移动 Web 开发中的顶级 JavaScript 框架,支持多种平台,如 A

Damys 1174

mobile开发技巧

1、隐藏地址栏 很多文档介绍通过调用 window.scrollTo(0, 1); 就可以隐藏地址栏,但是通过实践发现隐藏地址栏还是真够坑爹的啊,只调用这一句话一般不会起作用,我们需要 function hideBar() { setTimeout( function() { window.scrollTo(0, 1); }, 0); }; 但是有时候我们发现还...

denglangcheng82460的博客 175

10分钟读懂EfficientNetV2架构:tf_efficientnetv2_b3.in21k_ft_in1k 图像分类模型完全指南

**tf_efficientnetv2_b3.in21k_ft_in1k** 是一个基于 EfficientNetV2 架构的图像分类模型,由论文作者在 ImageNet-21k 上预训练、再在 ImageNet-1k 上微调,并被移植为 PyTorch(timm)版本。它只有 **14.4M 参数**、**1.9 GMACs** 计算量,却拥有出色的分类精度,是"小模型、高速度"的典型代表。本文

gitblog_00535的博客 648

Mobile web开发之道

移动web开发之道(Android与Iphone) 1、javascript篇 (1)使用querySelector和querySelectorAll这两个方法获取文档对象中DOM节点的引用 由于这两个方法都是本地方法,因此在执行效率上比较理想 //获得一个id为masthead的对象的引用: var masthead = document.querySelec...

weixin_30770495的博客 127

Sencha Touch 和 jQuery Mobile 的比较

很多人问我Sencha Touch (百度百科Sencha Touch译者加) 和jQuery Mobile哪个更好。事实上,它两的区别就像是Web后台编程,PHP和Java。它们都能完成同样的功能,但其实它们是为不同的目的而创造的。 Sencha Touch基于web-kit浏览器并做了优化,而jQuery Mobile适用于一般浏览器。因为Sencha Touch做了优化,很多人觉得它比

程序员入门进阶 1356
上一篇: ios5的safari浏览器的电话号码识别功能的禁用
下一篇: How to Reset Mac OS File Associations - 如何重设mac系统的文件关联
FuDesign2008
博客等级 码龄18年 44粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值