IE和其他浏览器的表现差异:盒子间的空隙,p标签宽度,justify-content 等等

1. 因为想用 border-collapse 合并边框,就想到用table来做某个段落的布局。

结果发现要给td设置圆角border-radius,它天然跟  border-collapse 冲突。

再发现左右两边的td盒子中间,IE和FF都产生了1px的空隙。而CSS初始化中,明明已经都写了margin:0 padding:0,为什么会这样。

先试试给table标签设置  cellspacing="0" cellpadding="0",问题依旧存在。

于是开始把所有的CSS属性都勾选掉试试看,发现问题出在display:inline-flex 上。原因在于给盒子设置了 display: inline-flex, 或者 display: inline-block。

解决办法就是把html里,td间的换行或者空格删掉或者注释掉。

     <td></td><!-------

---><td></td>

2. DIV,或者P标签,或者随便什么块状元素,如果忘记加固定宽度或者相对比例的宽度,那么,在IE和FF下, 给父容器设置了 display:flex 后,子项目的图片有可能会产生变形,子项目包裹文字的块状元素,文字跑位。

这个文字跑位,是因为刚好给它写了标签切换事件,在IE11下测试,发现文字方向变成竖排,位置就像是设定了绝对定位一样,移动到页面左侧。解决办法就是给它设定宽度。

这个问题只发生在IE,不知道算不算IE的bug。也许IE是不苟言笑的标准浏览器,不像Chrome那么贴心...自动补全你偷的懒、你疏忽掉的细节...

3. 设置flex-direction: column,容器高度如果小于子项目(比如文字内容撑起的高度),设置 justify-content 在IE下无效。

找到了原因,那么开始想解决办法。给子容器再包一层容器,这个新晋的爸爸容器不设定高度,原来的容器变成祖父辈的容器。在祖父容器设定比较小的高度,但不设置 justify-content 和  flex-direction: column;

而是在喜当爹的父容器里设置这些属性。具体看代码:

    <style type="text/css">

        .xytfd_title{
            display: flex;
            align-items: center;
            justify-content: center;
            width: 1000px;
            margin: 50px auto 0;
            height: 50px;
            box-sizing: border-box;
        }
        .title_01{
            border-top: 1px solid #bab8b8;
            flex: auto;
            display: block;
        }
        .title_02{
            font-size: 40px;
            color: #2380cc;
            padding: 0 30px;
            text-align: center;
            display: flex;
            /*flex-direction: column;*/
            /*justify-content: center;*/
            align-items: center;
            line-height: 36px;
            height: 36px;
            border-left: 1px solid #bab8b8;
            border-right: 1px solid #bab8b8;
        }
        .xytfd_title h3 {
            font-size: 40px;
            color: #2380cc;
            padding: 0 30px;
            text-align: center;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            /*line-height: 36px;*/
            /*height: 36px;*/
            /*border-left: 1px solid #bab8b8;*/
            /*border-right: 1px solid #bab8b8;*/
        }
        .xytfd_title h3 span{
            font-size: 14px;
            color: #bab8b8;
            display: block;
        }
        .xytfd_icon {
            margin-top: 20px;
        }
        .xytfd_icon img{
            width: 16px;
            display: block;
            margin: 0 auto;
        }
    </style>
    <script src="js/jquery-1.9.1.min.js"></script>
</head>
<body>
<section class="xytfd_banner">
    <div class="xytfd_title">
        <span class="title_01"></span>
        <div class="title_02">
            <h3>
                <b>埋下一座城,关了所有灯</b>
                <span>Buried city, to shut all lights</span>
            </h3>
        </div>
        <span class="title_01"></span>
    </div>
    <div class="xytfd_icon">
        <img src="images/icon_banner.jpg" alt="">
    </div>
</section>
</body>

在IE和FF和Chrome下,总算都正常了...如图:

时间: 2024-12-12 23:18:06

IE和其他浏览器的表现差异:盒子间的空隙,p标签宽度,justify-content 等等的相关文章

jQuery 工具类函数-检测浏览器是否属于W3C盒子模型

浏览器的盒子模型分为两类,一类为标准的w3c盒子模型,另一类为IE盒子模型,两者区别为在Width和Height这两个属性值中是否包含padding和border的值,w3c盒子模型不包含,IE盒子模型则包含,而在jQuery 中,可以通过$.support.boxModel对象返回的值,检测浏览器是否属于标准的w3c盒子模型. <body> <div id="divtest"> <div class="title"> <s

JavaScript在IE浏览器和Firefox浏览器中的差异总结

window.event对象差异 IE:有window.event对象 FF:没有window.event对象.可以通过给函数的参数传递event对象.如onmousemove=doMouseMove(event) 获取鼠标当前坐标 IE:event.x和event.y. FF:event.pageX和event.pageY. 通用:两者都有event.clientX和event.clientY属性. 鼠标当前坐标(加上滚动条滚过的距离) IE:event.offsetX和event.offse

如何修复在移动动表现差异很大的选择框---中级程序员研究

在移动端开发中,我们往往需要按照设计稿去高度还原效果图,并且实现交互方式,下面看一下一个标签的表现形式: select 在iOS中的表现: 但是在安卓上并不是这样的效果 交互表现得差异性需要优化,那么问题来了,怎么优化.如何去保持同一标签可以表现相同得样式和交互方式.其实这也是前端的重要工作之一:兼容性和适配,也对应着招聘的要求之一:高度还原设计稿:言归正传,看到select不同的表现.我们如何实现这个替换呢?用过element-ui,iview等框架的小伙伴都知道,他们为了保持统一的表现,放弃

javascript scrollTop在浏览器中的差异

相信有很多新手朋友经常会遇到document.body.scrollTop 一直为0的情况,今天刨根问底,找到问题所在: 火狐和其它标准浏览器 1. 在没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度 ; 2. 在有doctype声明的页面里可以使用  document.documentElement.scrollTop 来获取 scrollTop高度. 苹果浏览器 1. 无论有没有doctype声明 都只能document

不同浏览器下js的字符串split方法的差异

嘛,最近在各种直接拿代码调试,发现的问题可能稍微多了一点,姑且都记下来,这个随笔以后可能会不定期更新,因为相信不同浏览器之间各种差异还是很多的. 直接上代码 1 <html> 2 <head> 3 </head> 4 5 <body> 6 <script> 7 var str = "/part1/part2"; 8 var _list = str.split(/[\\/]/); 9 for(var i = 0; i <

placeholder在不同浏览器下的表现及兼容方法

1.什么是placeholder? placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失. 写法如下: 2.placeholder的浏览器兼容性和在不同浏览器下的表现 由于placeholder是html5的新属性,可想而知,仅支持html5的浏览器才支持placeholder,目前最新的firefox.chrome.safari以及ie10都支持,ie6到ie9都

各浏览器下使用 OBJECT 元素和 EMBED 元素嵌入 Flash 存在差异

标准参考 OBJECT 元素定义了一个嵌入的对象.其引入的初衷是取代 IMG 和 APPLET 元素.不过由于安全等各方面原因以及缺乏浏览器支持,这一初衷并未实现.浏览器的对象支持依赖于对象类型.然而,即便是相同的对象类型,各主流浏览器也都 使用了不同的代码来加载. classid 属性用于指定对象实现的 URI 地址.它可能用来替代或者配合 data 属性,这由引入的对象决定.codebase 属性指定了一个为 classid.data.archive 属性的相对 URI 提供基本路径.缺省情

【转】Web前端浏览器兼容初探

原文地址:http://blog.jobbole.com/38638/ 前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易选择忽略,而形成两个极端: 1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端一起搞的同学,小生2年前就这种状态,鼓励人家用ie6....) 2 我要遵循标准,我只要ff就好,IE就是坑爹的玩意,我不必去理他(小生一年前的心态...) 现在看来,之前的想法都是不对的,我们诚然应该追求最新的浏览器使用

文档类型DTD,DOCTYPE和浏览器模式

出处:http://blog.csdn.net/freshlover/article/details/11616563 浏览器从服务端获取网页后会根据文档的DOCTYPE定义显示网页,如果文档正确定义了DOCTYPE浏览器则会进入标准模式(Standards Mode),否则浏览器会进入怪异模式或混杂模式(Quirks mode). 浏览器开发初期W3C倡导的网页标准并不流行,因此浏览器有独特的对网页标签或属性的解析模式,随着日后网页标准的流行,浏览器增加了对新标准的支持(Standards M