所谓自适应网页,通过屏幕的宽度实现加载对应的CSS样式表,提高移动终端的访问体验。
自适应网页主要用于解决,PC网页在移动端显示出现字体过小、模块错位、浮动遮挡等不良体验。
实际上网页无论是否进行了自适应,通过手机/平板等移动终端都是可以访问的。
但是对网页做移动端自适应适配,在如今是非常有必要的。
自适应网页开发简单归纳为以下三大要素:
实际上自适应开发是一件非常简单的事情。
其麻烦并不在于技术,而是对整个网页的CSS样式进行重新编写,这是一个比较浩大的工作。
那么如何进行自适应开发呢?
首先网页的head区域要标注一个这样的viewport元标签。
<!DOCTYPE html>
<html lang="zh_CN">
<head>
<!-- 网页的宽度自动适应手机屏幕的宽度 -->
<!-- width=device-width :表示宽度是设备屏幕的宽度 -->
<!-- initial-scale=1.0:表示初始的缩放比例,1.0就是占网页的100% -->
<!-- minimum-scale=1.0:表示最小的缩放比例 -->
<!-- maximum-scale=1.0:表示最大的缩放比例 -->
<!-- user-scalable=no:表示用户不可以调整缩放比例 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
</head>
</html>
在原来的CSS文件中增加覆写,举例说明。
案例已经完全包括了自适应开发中应用到的所有方法,比较简单。
/*原始的网页样式*/
.container {
width: 1200px;
margin-right: auto;
margin-left: auto;
padding-left: 15px;
padding-right: 15px
}
/*当屏幕宽度小于等于991px时,一般多为手机*/
/*className为container的元素宽度为100%*/
@media (max-width: 991px) {
.container {
width: 100%
}
}
/*当屏幕宽度大于等于992px且小于等于1099px时,一般多为平板*/
/*className为container的元素宽度为90%*/
@media (min-width: 992px) and (max-width: 1099px) {
.container {
width: 90%
}
}
/*当屏幕宽度大于等于1100px时,常规电脑*/
/*className为container的元素宽度为1100px*/
/*此处用于举例,实际这个样式是多余了,默认就是>1100px*/
@media (min-width: 1100px) {
.container {
width: 1100px
}
}
我们将根据CSS样式渲染生效原则,在这里简单提一下
浏览器缺省 < 外部样式表 < 外部样式表类选择器 < 外部样式表类派生选择器 < 外部样式表ID选择器 < 外部样式表ID派生选择器 < 内部样式表 < 内部样式表类选择器 < 内部样式表类派生选择器 < 内部样式表ID选择器 < 内部样式表ID派生选择器 < 内联样式
关于这么多种样式生效类型,就不一一介绍了,这属于CSS的基础。
定义一个全新的文件,与原来的CSS样式文件互不干扰。
值得注意的是,自适应的样式表一定要放在原始样式表的下面。
CSS样式渲染生效还有一个基本原则就是,后者覆写前者(或者又称为距离元素最近的样式生效) 。
这种方式与传统方式的差异在于不需要指定大量的@media标签在CSS文件中,与源CSS样式表分开,易读性高。
在开发的时候就和正常编写CSS样式一致,更为高效。
<!DOCTYPE html>
<html lang="zh_CN">
<head>
<!-- 原始的样式表 -->
<link rel="stylesheet" href="/static/css/index.css">
<!-- 当屏幕宽度低于768px时会加载这个CSS文件 -->
<link rel="stylesheet" href="/static/css/mobile.css" media="screen and (max-width:768px)">
</head>
</html>
实际开发中更加推荐使用第二种开发模式:
当前还没有观点发布,欢迎您留下足迹!
在业务中我们会出现不同的项目依赖与不同版本的 node.js,总不能每次跑项目的时候都去重新安装对应版本的 node.js 和依赖,使用 nvm 可以让多个版本的 node.js 共存,并提供管理和切换
自Jquery1.7起,on()方法是 bind()、live()、delegate() 方法的新的替代品,我们推荐使用on()来处理业务中的事件绑定,通过理解这些方法的差异能够更加清晰明白使用on()方法的优势所在
严谨的页面开发需要着重关注前台校验相关的内容,确保请求参数的合法以保证服务器安全,界面参数众多需要建立一个公共方法,公共校验器的核心方法是Jquery.bind()
绝大多数网站都会有个顶部导航,对于手机端而言为了便于访问导航常常会做固顶操作,通过CSS样式配合Jquery的scroll()方法或原生JS监听滑动事件方法,可以轻松实现下滑隐藏,上滑显示的效果
跨站脚本攻击是比较严重的一种攻击行为,恶意脚本注入到相关页面字段中轻易获取敏感信息和向后端发起请求,前端应用应当对请求数据进行编码
HTML 中加载 SVG 有很多种方式,但如果需要在 HTML 中通过 CSS 样式自由控制 SVG 样式就必须将 svg 标签插入网页找那个成为 DOM 的一部分,本文借助 SVGInject 插件可以快速完成这一操作