记录IE67下常见的问题浏览器
H5的新加入的标签在IE67下无用
解决办法:检测是否有这个标签, 如没有则本身定义一个标签,但要注意自定义标签默认是内联元素,没有宽和高
如今有成熟的js插件能够解决这个兼容性问题布局
<script> document.createElement("header"); document.createElement("section"); document.createElement("footer"); </script> <style> header{ width: 200px; height: 200px; display: block; background-color: red; } section{ width: 150px; height: 150px; display: block; background-color: yellow; } footer{ width: 100px; height: 100px; display: block; background-color: blue; } </style> <body> <header>header</header> <section>section</section> <footer>footer</footer> </body>
能设置宽度的话就给元素加宽度,若是须要宽度把内容撑开,就给它里面的块元素加上浮动,外层元素清除浮动(overflow:hidden;)清除浮动后外层元素就会有高度
在IE中:浮动元素中增长块元素,两个元素会变成两行
缘由:浮动和块元素的display:block冲突
解决方案:块元素中加入float属性,使其浮动插件
IE6中会有间隙问题
解决方案:第二块也用浮动进行布局code
其余浏览器中,父级会包不住子元素
解决方案:不建议子元素的宽高超过父级orm
在其余浏览器中,不容许p包含div元素
p、td、h1~n 标签不能嵌套块元素ip
margin-top会传递
上下margin叠压
margin-top解决方案:触发BFC和haslayout(overflow:hidden;zoom:1;)
上下margin叠压:触发条件:同级元素有margin时,上下元素的margin-bottom和margin-top会叠压。
解决方案:避免触发条件,改用同一方向的margin,如都设置margin-bottom。io
BFC:块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是布局过程当中生成块级盒子的区域,也是浮动元素与其余元素的交互限定区域。 块格式化上下文对浮动定位(参见 float)与清除浮动(参见 clear)都很重要。浮动定位和清除浮动时只会应用于同一个BFC内的元素。浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。外边距折叠(Margin collapsing)也只会发生在属于同一BFC的块级元素之间。