碎碎念: 前端领域在html5定稿以后,又迎来了新一轮热潮.第一次接触HTML5是公司需要做一个移动端网站.HTML5添加了一些新的元素和新的元素属性.结合CSS3能创造出复杂的原来在js下才能实现的效果,更加方便开发者开发出绚丽的效果.目前大部分mobile浏览器基于webkit技术,对HTML5和CSS3的支持也非常好,所以不管是响应式web页面还是安卓和iso开发的内嵌页面,使用html5成为了很多公司的选择.

这里是自己进行响应式开发的一些记录:

第一部分常用配置:

1.在html5中声明更加简单:

<!DOCTYPE html>  #无需声明版本号
<meta charset="UTF-8"> #指定字符
<script src="test.js"></script> #加载js文件
<link rel="stylesheet" href="test.css"> #加载css文件

2.将页面设置为响应式页面推荐meta:

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" />

3.页面字体推荐使用rem

html {font-size: 62.5%; -webkit-text-size-adjust: 100%;} #网页默认字体是16px,所以设定全局字体16*%62.5 = 10px
body {font-size: 1.4rem} #body全局字体是14px

4.响应式开发必须理解的概念:

流式布局, 媒体查询(media query), 视口(viewport).. 流式布局: 即所有参与的div都用float: left;宽度用百分比表示.. 媒体查询: 判断屏幕分辨率并应用对应的CSS,用@media实现媒体查探, 语法为

/* PC宽屏样式*/
默认
/* iPad及以下,所有小于(不等于)960宽度的平板电脑*/
@media only screen and (max-width: 959px) {}
/* 仅iPad竖版,所有小于(不等于)960宽度的平板电脑的竖版*/
@media only screen and (min-width: 768px) and (max-width: 959px) {}
/* iPhone及以下*/
@media only screen and (max-width: 767px) {}
/* 仅iPhone横版,包括某些平板电脑的竖版*/
@media only screen and (min-width: 480px) and (max-width: 767px) {}
/* 仅iphone4 竖版*/
@mediaonly screen and (max-width: 479px) {}

5.全局字体配置(个人常用)

font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", Heiti, "黑体", sans-serif;
其他推荐参考:font-family:tahoma,arial,\5b8b\4f53,sans-serif;

6.如何将html5中新添加的元素如header footer等应用到IE等暂时还不支持html5的浏览器中,一位大牛写过这样一个脚本,供我们使用,这样我们就可以在自己的项目中随意使用html5的元素了.注: 这段代码最好是下载下来放到自己的项目中.

<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">
  </script>
<![endif]-->

7.在html5中提供了data-*属性,我们可以为任何元素添加该属性,并且在jquery中提供了对该值的读取和设置.

html:  <div id="myid" data-myid="product1">
jquery获取值: var myid = $("#myid").data('myid')

8.响应式图片 哪些能缩放(地图等允许用户放大查看的图片),哪些不能缩放(普通图片)? 在不同的视口条件下加载不同尺寸的图片,这个可以在服务器端的上传图片过程中实现. 也可对同一张图进行不同的定位,如pc端显示全部,移动端显示局部.如:

#手机端
.image {
  width: 100px; height:100px;
  background-position: x y;
}
#移动端
@media only screen and /*tablet or mobile*/ {
  .image{
    width:20px;height:20px;
    background-position:xy;
  }
}

全局样式配置代码段:

html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary,time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

css中link的a标签的四种状态:

a:link, a:visited, a:hover, a:active {
  text-decoration: none;
}

safari中的mailto样式强制覆盖:

a[href^=tel] { color: inherit; text-decoration: none; }

第三部分常见bug:

1.当一个div设置宽度为100%时, 若为其添加边框效果会出现出现横向滚动,解决方法是设置box-sizing的值. 2.修复手机版submit按钮在safari下面的bug: -webkit-appearance: none;

修复手机版text input在safari默认带圆角: border-radius: 0;