第二章 css选择器和良好的结构体( 五 )


当你重置浏览器大小的过程中 , 页面也会根据浏览器的宽度和高度重新渲染页面 。
第七章 bug相关
css是一门语法简单的语言 , 而其难点更多在于老式浏览器带去的显示差异 。很多情况下 , 编写css时bug并不是那么多 , 很多来源于编程人员对css规范认识不够深刻和正确 。而如何判断bug产生的正确来源和如何去正确的解决bug , 便成了一个要点…
一、常见的css问题 1.输入错误及语法错误
顾名思义 , 多发生在程序员自己敲错了代码或者语法
2.特殊性和分类次序 比如选择器过多的嵌套(这里指嵌套层数>3的 , 一般不超过三层是合适的做法)造成了更特殊的覆盖了原有的导致的效果异常 。书写顺序错误 , 比如典型的:link和:顺序解决方法:或者谷歌等浏览器的调试工具 。这些工具可以看出来是那些规则导致现在样式的 , 又是有哪些规则被覆盖了 。3.外边距叠加
具体的可以参考第三章
二、捕捉bug 1. 初步判断bug 检查html , css语法(这个现代ide都会有的 , 相对容易做到)通过浏览器自带调试工具使用更符合w3c标准的浏览器开发(谷歌就不错 , 不过现在个人更青睐火狐)从开始就避免bug(少用花哨的技术 , 不要写多余没用的嵌套结构) 2. 精确追踪bug 隔离问题
单独测试bug所在区域 , 可以尝试大幅修改一些属性 , 看看反应 。
提取bug
用少量html , css重现bug , 然后进行对症分析 , 判断是整体结构其他属性影响 , 还是本身问题 , 还是不同浏览器内核造成的问题 。
要实际解决问题 , 而不是解决表面现象 。(比如位置计算不对 , 然后一直负达到效果一致 , 但事实上这种做法可能只是在你这个特有的电脑分辨率上 , 你这个品牌浏览器的这个版本的中效果ok)
如果经过很多筛查 , 还是没办法找到问题 , 可以去相关社区 , 论坛等寻求帮助 。
三、了解“布局”
定义:ie6为什么有那么多bug?这是因为ie显示引擎使用一个称为布局的内部概念 。ie通过使用布局控制元素的尺寸和位置 。如果一个元素没有布局 , 那么它的大小和位置由最近的 , 具有布局的祖父类元素决定 。
默认拥有布局的元素 。
设置下面属性会自动拥有布局 。
ie7中 , 下面的属性也会触发拥有布局
第八章 详细探究文档流模型
算是比较深入的理解页面的三维排序
一、7阶层叠水平 假设有两个div , 一个设置-block , 另一个设置float:left 。那么谁会在上面呢?浮动会脱离默认文档流 , 它应该在上面吧!?
公布答案:来看下图 。。。(做的有点糙)
没错 , -block的在上面 。why?
7阶层叠水平模型
解答:其实这些都是已经规定好的 , 它们遵守7阶层叠水平模型 , 按照这个去看 , 问题就解决了 。认识:还是看我的图来认识一下吧 。。。
看了我这个图 , 估计就知道-block为什么在float元素之上了 。
但是 , 层叠上下文又是什么呢?接着看 。
二、z-index和层叠上下文
认识z-index
定义:用来决定同一个层叠上下文中元素的高低;条件:需要是定位元素;(除去)
认识层叠上下文
定义:层叠上下文是HTML元素的三维概念 , 这些HTML元素在一条假想的相对于面向(电脑屏幕的)视窗或者网页的用户的z轴上延伸 , HTML元素依据其自身属性按照优先级顺序占用层叠上下文的空间 。如何触发产生层叠上下文?满足下列条件之一即可 。