刚开始学css+div布局的同学们,都比较困惑和难写的就是兼容性的问题了,特别是ie6等低版本的浏览器,随意国内逐步慢慢消失取代,但是现阶段还是会有点考虑因素再里面。我们写的网页布局怎么样才是合理的,完整的,兼容性好的呢?
因此再这里,小强老师给大家列出网页布局标准性、合理性和兼容性的一些方法,希望对刚开始学习css的同学有所帮助。

一、<!DOCTYPE> 标记的重要性。

位 于文档的最前面,用于向浏览器说明当前文档使用哪种 HTML 或 XHTML 标准
规范,我们必需在开头处使用<!DOCTYPE>标记为 所有的XHTML文档指定XHTML版本和类型,只有这样浏览器才能将该网页作为有
效的XHTML文档,并按指定的文档类型进行解析。
<!DOCTYPE> 标记和浏览器的兼容性相关,删除<!DOCTYPE>,就是把如何展示HTML页面的权利交给浏览器,
这 时,IE6,IE7,IE8,Firefox2,Firefox3,Chrome,有多少种浏览器,页面就有可能有多少中显示效果,这是不被允许的。

二、合适地方用到合适的标签

物尽其用人尽其才。 再合适的地方用到合理的标签,对网页布局和优化都有很多的好处,比如logo ,一般我们都用h1 标签包括。 还有理解行内元素和块级元素的区别。

一个页面不要只用div,太多反而太泛滥了。table虽然用的少,但是,再做一些数据处理的时候,还是比较好用的。比如下面的,肯定用列表ul了。

三、站在标准流的角度看padding 和 maring 、width等属性稳定性

我们知道页面布局的时候,控制盒子位置距离等,有盒子本身大小,padding和margin来做。
先看如下图,再火狐的firebug中看他们三者的显示。

因此,再这里我们会根据稳定性来看这三者的先后顺序:
其中稳定性最好的就是盒子本身的高度和宽度了,我们优先考虑这个。 因此,很多情况下,我们会考虑利用高度剩余法,宽度剩余法来做,而不是padding和margin。
比如下图:

这个评论和 下面的文本域框有个小距离, 此时,我们给这个评论一个h2标签,高度正好从评论上方,到文本域上的高度就好了,如图黄色部分所示。

h2 里面文字内容默认是靠左上对齐的,高度用不了,就剩下了,这就是高度剩余法。

其次,我们才考虑padding ,因为padding也可以看做特殊的盒子高度和宽度,最后我们再用margin来做。因为margin会有边距合并的问题。

四、标准流、浮动流和定位的稳定性

标准流再里面是最稳定的,就是块级元素上下显示,行内一行显示,都是最稳定的。
浮动和定位都“脱标”了,稳定性没那么稳定,所以,我们应该遵循如下原则:
页面布局,能用标准流去做的不用浮动去做,如果要用浮动做的,就不用定位去做。

五、知己知彼百战百胜

总会有特殊的浏览器,比如ie6
,这些奇葩浏览器总是有自己独到的地方,那我们怎办? 兵法云,知己知彼百战百胜,因此,需要我们详细的了解这些浏览器自己独特的特性,或者掌握他们IE6常常出现的bug,以及对于css 的理解,那么我们根据他们的不同解析,写出合理的布局。

六、不要让清除内外边距带来麻烦

html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; }

这句话,大家都知道,清除浏览器样式的。但是如果你不加,不同浏览器肯定显示不太一样。所以,css的第一句话就是它。还有就是要使用大部分浏览
支持的css属性不至于引起不必要的麻烦。

以上几点,是小强老师,给大家总结的几点,希望对新学习的同学有所帮助。

小强零零壹和大家一起分享

web前端如何让网页布局稳定性和标准性?的更多相关文章

  1. web前端教程:CSS 布局十八般武艺都在这里了

      CSS布局 布局是CSS中一个重要部分,本文总结了CSS布局中的常用技巧,包括常用的水平居中.垂直居中方法,以及单列布局.多列布局的多种实现方式(包括传统的盒模型布局和比较新的flex布局实现), ...

  2. Web前端_流式布局(百分比布局)

    移动Web_流式布局(百分比布局) writer:late at night codepeasant 1(百分比布局) ☞核心知识点 1.流式布局(百分比布局) 2.视口设置 ☞今日目标 1. 能够使 ...

  3. 前端学习_01_css网页布局

    引子 之前也自己陆陆续续地学了一些web方面的知识,包括前段和后端都有涉及到,自己也比较感兴趣,感谢peter老师,愿意无偿提供从零开始的教学,之前也看过peter老师的一些视频,节奏非常适合我,决心 ...

  4. 整理六百篇web前端知识混总

    9个有用的和免费的工具来支持动态网页开发 8个基本的引导工具的网页设计师 11款CSS3动画工具的开发 2016年某前端群题目答案参考 9最好的JavaScript压缩工具 创建响应式布局的10款优秀 ...

  5. 前端学习笔记之CSS网页布局

    CSS网页布局   阅读目录 一 网页布局方式 二 标准流 三 浮动流 四 定位流 一 网页布局方式 #1.什么是网页布局方式 布局可以理解为排版,我们所熟知的文本编辑类工具都有自己的排版方式,比如w ...

  6. 通往成功的钥匙--Web前端开发技术

    互联网是一个服务性行业,用户对网站良好的体验度,直接影响到网站的效果.无论你做了多少广告推广,没有用户体验度等于零.Web前端技术是为了解决用户体验度而诞生的.无论是百度.新浪.阿里巴巴等大型网站,还 ...

  7. web前端基础学习路线

    1.HTML和CSS的基础知识,完成网页的初步设计 2.JavaScript基础知识和DOM.BOM的学习 3.前端基础框架:CSS框架Bootstrap.JavaScript框架jquery的熟悉使 ...

  8. web前端知识总结

    前言: 一直想着整理一下关于前端的知识体系和资料,工作忙了些,挤挤总会有的,资料很多,就看你能不能耐下心坚持去学了,要多学多敲多想,祝你进步~ 学习之前首先要大概了解什么是HTML ,CSS , JS ...

  9. web前端开发浅析

    原文地址:http://www.cnblogs.com/babyzone2004/articles/1807381.html 摘 要:前端开发作为一项新的领域,经历的时间随然较短,却显示了强大的生命里 ...

随机推荐

  1. Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)

    在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IO ...

  2. Noip2008提高组总结

    Noip2008前三题是基础题,仔细一些都是可以AC的,第四题的证明很巧妙,但是看懂后代码其实很简单,感觉在这些大家都不屑去做的简单题中又学到了不少,四道题代码基本都是十几二十行就够了,渐渐感觉到,比 ...

  3. 74HC595的中文资料

    74HC595--具有三态输出锁存功能的8位串行输入.串行/并行输出移位寄存器 本文翻译自NXP的74HC595的datasheet 74HC595和74HCT595是带有存储寄存器和三态输出的8位串 ...

  4. STL之string插入

    #include <iostream> #include <string> using namespace std; int main() { string s("h ...

  5. STL之string

    string构造函数,很多重载函数: #include <iostream> #include <string> using namespace std; int main() ...

  6. innerText和innerHTML的区别

    innerhtml用法 innertext用法 以及innerHTML与innertext的区别,看完这个大家以后在实际应用中,就可以选择合适的方法.尽可能的考虑到兼容性. test.innerHTM ...

  7. Arduino101 中使用 Mirf 库的问题(2016-04-04)

    Mirf 库在使用 NRF24L01 的时候接触到,感觉很好用.但在用 Arduino101 的时候遇到一些问题,记录一下,对于底层不了解,希望有熟悉的同学能给点指点: 编译会提示 MirfHardw ...

  8. 我常用的iphone开发学习网站[原创]

    引用地址:http://www.cnblogs.com/fuleying/archive/2011/08/13/2137032.html Google 翻译 Box2d 托德的Box2D的教程! Bo ...

  9. [置顶] android 心跳包的分析

    android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接.或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的 ...

  10. 我的Python成长之路---第六天---Python基础(18)---2016年2月20日(晴)

    os模块 提供对操作系统进行调用的接口 >>> import os >>> os.getcwd() # 获取当前工作目录,类似linux的pwd命令 '/data/ ...