html5页面布局总结

先写点题外话吧,算是对最近经历的一个总结。2017年,貌似是个多事之秋啊,工作中遇到些不顺,本来是很美好的愿景,可是现在貌似破灭了,抱着“山重水复疑无路,柳暗花明又一村”的希冀,目前可能也希望渺茫了,没事,工作的事情总能解决的,还是有自身优势的,我相信自己,OK,给自己打气的话就写到这吧。

以前做移动端webapp开发,屏幕比较小,手机都是一个版本一个版本的固定产品,界面布局随便布布,修修改改也就OK了。后来接触PC大屏幕开发,界面元素顿时增加很多,不注重布局就会很慌乱和被动,其实想好好总结布局方面已经很长时间了,但总是没有一个很好的去总结一下,在加之之前的项目对自适应要求也不是很高,最近做了一个界面,界面元素各种不规则布局,并且还有动画,网联网产品还要求能够适应各种屏幕,各种浏览器版本,之前做项目最讨厌IE浏览器,觉得它总是那么个性,各种不兼容,做这个产品竟然发现了IE浏览器的优点,IE浏览器版本少,方便浏览器各种版本的兼容性测试,对于不支持的h5属性,有各路大神开发的各种查件,这些插件可以解决IE低版本中的h5特性的不支持问题。

言归正转,下面开始总结h5界面布局问题。

1. 首先,拿到一个界面UI设计,需要先对界面进行分块,分成几部分开发。h5有个特性,就是语义化布局,我的布局中也使用到了,可能受以前做firefox os项目的影响,这个项目对h5的语义化还是使用听充分的,这种语义化使用有的好处我就不说了(结构明了),但是,这种布局在IE9以下,IE8 IE7中,就不怎么好了,它们不认这些标签,在这些版本中就深深的体会了一把什么是div+css布局,这种布局就不会带来标签不识别的问题了。

2.块分好了,如果要兼容IE地版本,选择div+css布局,开始具体布局。在布局中,position属性就显得很重要,div元素位置如果不需要进行调整,按照盒模型顺排下来可以,就不用进行设置,取默认值static,如果要进行偏移,设置为relative,元素不会脱离文档流。在一个元素上,还有其他的元素也在它的占位上的某个位置,那么外层的div设置为relative,它的位置上的元素就用absolute来定位,并且给top:0;left:0来进行偏移; 这里,元素进行偏移时,使用怎么的单位很重要,对于相对于界面,要在界面某个位置的元素,界面宽度width,left和top使用%来偏移,这样,在任何分辨率的屏幕上,元素都在相对于界面相同的位置上,使得元素在任何显示器上都能正常显示。但是,如果对于一个元素快,里面有其他的元素组成,他们组成了一个一体的布局,并且位置不规整,那么内部的元素请使用absolute进行布局,并且top和left请使用rem进行布局,这样在任何分辨率下,元素块虽然显示大小不同,但是元素块的相对位置不变,元素块一直是一个整体。另外,如果一个元素是absolute元素,它里面还有元素,请使用relative,并且使用rem为单位,这样,这个元素 就是一体的,是个整体,在任何分辨率下都是那样的布局整体。

3.同一行的元素块,如果分成几个部分,那么最外层元素使用relative布局,里面的使用position:relative;display:inline-block;width:20%的比例式布局(这里也可以考虑使用flex布局),通过left。top来调整子元素块的位置,在不同分辨率时,调整left,top实现自适应。如果分块的元素里面还有子元素,接着进行分块,并且元素宽度使用%来定义。

4.关于自适应,不同尺寸的显示器,分辨率不同,找出不同分辨率下位置变化的元素,根据@media screen进行位置的微调,其实需要微调的元素,很多是top为rem为单位的元素,left为百分比的,在每种分辨率下位置左偏移位置不变,为了做好自适应,布局界面时让尽可能少的元素相对于界面的位置不稳定。在做自适应的时候,注意各种分辨率的写法,如果用到了max-width,那么顺序应该重大往小的写,这样界面就能使用到最合适的尺寸。

5.自适应的调试通过调整分辨率实现,做为互联网产品,浏览器兼容性的测试很重要,这时候IE就很有优势,IE11浏览器,有IE5 IE7 IE8 IE9的模式,可以直接测试,还有IE tester工具。但是chrome和firefox就惨了,目前只有在线工具,收费的,免费也是有限的,并且国外网站,国内哪个慢啊。 Spoon Browser Sandbox总得来说,这个工具还可以,通过安装插件,插件模拟器允许安装各种版本浏览器,进行测试,这里有个坑,就是他的插件在windows7上可以安装使用,在windows10上安装不了。

BrowserShots这个工具需要你能把你的网页发布到公网上,在远端服务器上运行了,发送截图给你,但是每天发布的截图数量有限,并且只能免费一个月。

IE NetRenderer这个是对IE浏览器进行测试,有了IE11,意义不是特别大,有的浏览器还是测试不出来。

在说个测试中遇到的坑。firefox浏览器21.0版本,对绝对定位的元素,box-align:end和通常的使用方式有差异,解决方法是在原本的div结构中,在添加一层div,使用relative定位,再使用这个box-align:end属性,但是父级div的高度需要进行调整,总之,这个版本很不同,根据实际情况进行处理吧。

6.说说h5的canvas和css的animation,深深的体会了一把动画,如果是几个元素的联动,还是乖乖使用div和 css的linear的animation吧,如果是线性的动画,使用canvas,其实canvas就是在一个容器上,调用接口定时的去重绘,canvas中还不支持skew属性,没法实现形变。animation中的

transform-origin: 50% 50%我原本以为只是在0%的时候设置就全部生效,如果动画位置变换了,不在是默认的中心点位置,要在每个进度进行设置。jQuery的animation()接口,貌似都可以用css的animation实现,animation-fill-mode: forwards;属性很重要,对于一些动画效果。如果想要更多动画效果,好好了解下贝塞尔曲线很有必要。如果要实现自适应,canvas的width和height也使用%进行设置。插入部分做的效果。


				
时间: 2024-10-24 01:36:31

html5页面布局总结的相关文章

移动设备HTML5页面布局

在HTML5标准添加的新元素中,用于常见页面结 构的包括header footer footer nav aside aside article section hgroup . 下面简单介绍一下这个元素: 1.header header>元素定义文档的页面组合,通 常是一些引导和导航信息,标签内通常包含 secti- on的头部信息,如h1~h6 或 hgroup等. <header> <h1>HTML5布局学习</h1> <P>勤学苦练</p

HTML5+CSS3学习笔记(二) 页面布局:HTML5新元素及其特性

HTML5新元素及其特性 HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. 本次学习HTML5的新标签元素有: <header>定义页面或区段的头部: <footer>定义页面或区段的尾部: <nav>定义页面或区段的导航区域: <section>页面的逻辑区域或内容组合: <article>定义正文或一篇完整的内容: <aside>定义

html5 移动端单页面布局

序     移动端的web网页使用的是响应式设计,但一般我们看到的网站页面都是跳转刷新得到的,比如通过点击一个menu后进入到另一个页面 今天来说下是移动端的单页面的布局.单页面就是一切操作和布局都是在一个页面下进行 不需要页面跳转 ,再通俗的说就是类似于平常的选项卡 但是他又比选项卡要复杂一点 因为他是在手机端 并且当做是一个页面 单页面的作用以及优势:    1.嵌套到native里实现app的混合开发    2.数据量小的页面用单页面便于开发    3.无需跳转页面响应更快 Demo效果

HTML5新结构标签和移动端页面布局

--------------------HTML5新结构标签--------------------1.h5新增的主要语义化标签如下: 1.header 页面头部.页眉 2.nav 页面导航 3.article 一篇文章 4.section 文章中的章节 5.aside 侧边栏 6.footer 页面底部.页脚pc端兼容需要引用对应的js脚本<script type="text/javascript" src="//cdn.bootcss.com/html5shiv/r

CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位

CSS3与页面布局学习总结(一)--概要.选择器.特殊性与刻度单位 目录 一.CSS3概要 1.1.特点 1.2.效果演示 1.3.帮助文档与学习 二.选择器 1.1.基础的选择器 1.2.组合选择器 1.3.属性选择器 1.4.伪类 1.5.伪元素 三.特殊性(优先级) 3.2.计算特殊性值 四.刻度 4.1.绝对长度单位 4.2.文本相对长度单位 4.3.Web App与Rem 五.示例与帮助下载 web前端开发者最最注的内容是三个:HTML.CSS与JavaScript,他们分别在不同方面

HTML5页面开发的基础性模板

分享一个HTML5页面开发的基础性模板,包含了两个版本: 开发版本 注释版本 开发版本 <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <title></title> <meta name=&q

写给“有钱大爷”、”美工殿下”、“前端文艺青年”的微信HTML5页面设计建议

我保证你一分钟就能看完这篇文章! 真的.. 角色解释: 需求方:有钱大爷 设计人员:美工殿下 前端工程师:前端文艺青年 一个HTML5页面从提出到完成上线的流程: 1.需求方.设计人员.H5实现人员三方共同讨论实现方案 2.设计人员出设计图 3.H5人员按设计图出H5页面 4.需求方评估已实现的H5页面后给予反馈 5.设计人员与H5人员根据反馈进行适当调整 6.发布推广 如何提出一个合理的微信HTML5页面设计诉求? 合理分析诉求与公司团队拥有的资源: 1.需求完成时间: 时间给的越多,项目做的

CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要可以分类为: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机—内核. 多年前我们一直为IE6兼容烦恼,为它没少加

移动端页面布局

移动端页面布局 一.移动端app分类 1.Native App原生app手机应用程序 使用原生的语言开发的手机应用,Android系统用的是java,ios系统用的是object-C 2.Hybrid App 混合型app手机应用程序 混合使用原生的程序和html5页面开发的手机应用 3.Web App 基于Web的app手机应用程序 完全使用html5页面加前端js框架开发的手机应用 二.Viewport视口 视口是移动设备上用来显示网页的区域,一般会比移动设备可视区域大,宽度可能是980px