fieldset背景溢出BUG的解决
2015-07-16 11:24
549 查看
分析:IE让fieldset溢出,并不是没有道理,fieldset是块级元素,IE将它与div等相同处理,fieldset包含legend,既然要讲背景延伸到legend下面。
解决方法一:既然fieldset边界在legend下面,那就让它收缩一下好了。将fieldset的内边距padding-top设置为0,并让legend外边距margin-top设置为负值
这个BUG处理有很大的问题,margin-top的负值设置不当会导致背景与框架的脱机,使IE与其他浏览器显示有区别。
第二个解决方法:让那个狗屎fieldset和legend彻底脱离文档流,fieldset的体积不在受其包含的legend的大小所左右。给legend一个绝对定位,并让其的top一个负值,时期向上浮动。
解决方法一:既然fieldset边界在legend下面,那就让它收缩一下好了。将fieldset的内边距padding-top设置为0,并让legend外边距margin-top设置为负值
fieldset{ margin:20px 0; padding:0px 15px 15px 15px; /*将padding-top设置为0是为了修补IE下fieldset背景溢出的BUG。要和legend的margin-top配合使用*/ border:2px solid #1F408B; background:#B6C2D1; } legend{ font-weight:bold; } *+html legend /*写个hack,让负值边距只出现在IE下*/ { margin:-8px 0 0 0; /*-8这个值要根据legen的体积来定,而legend体积又和包含的内容字号有关,每个浏览器是有区别的,多瞅瞅就好*/ }
这个BUG处理有很大的问题,margin-top的负值设置不当会导致背景与框架的脱机,使IE与其他浏览器显示有区别。
第二个解决方法:让那个狗屎fieldset和legend彻底脱离文档流,fieldset的体积不在受其包含的legend的大小所左右。给legend一个绝对定位,并让其的top一个负值,时期向上浮动。
fieldset{ position:reletive; margin:20px 0; padding:15px; border:2px solid #1F408B; background:#B6C2D1; } legend{ position:position; top:-3px; /*top的负值,要正好合适才好*/ font-weight:bold; }这个方法的最大好处就是兼容所有浏览器,显示无差别,不用写hack。
相关文章推荐
- Web布局连载——两栏固定布局(五)
- [div+css]晒晒最新制作专题推广页模板
- 纯CSS制作的新闻网站中的文章列表
- 10条影响CSS渲染速度的写法与使用建议第1/3页
- BS项目中的CSS架构_仅加载自己需要的CSS
- 很不错的 CSS Hack 又学了一招
- 发一个css比较清爽的写法
- CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
- css布局网页水平居中常用方法
- CSS经典技巧十则第1/2页
- css 兼容性问题this.style.cursor=''hand''
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- 欲练CSS ,必先解决IE的一些细节分析
- CSS文字截取功能实现代码
- 支持IE6 IE7 Firefox 的纯CSS的下拉菜单
- 不同版本IE使用不同css(css条件注释语句用法)
- css类选择器的使用方法详解
- css文本框与按钮美化效果代码
- 解决ie动态修改link样式,import css不刷新的问题
- 用css filter做鼠标滑过图片效果