关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

时间:2021-02-04 05:30:25

这两天在写页面时,遇到一些IE浏览器显示不正常的问题,主要有两个:

1. 在td 中设置span 元素水平垂直居中,在谷歌浏览器中可以正常显示,但是在IE 中却无法显示出想要的结果,即不能实现垂直水平居中

2.将元素设置成行块元素时,老是显示不对齐,也不能显示想要的效果

3.第一个问题的css 设置如下:

 table.shanye tbody tr td.td1 {
position: relative;
}
table.shanye tbody tr td.td1>span {
position: absolute;
margin: auto;
right: 10px;
top:;
bottom:;
width: 17px;
height: 17px;
}

3.1 在 谷歌下显示效果:

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

3.2  在IE 下显示效果如下:

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

在这里css 采用的是,绝对定位,然后设置定位在外层 td 元素中间。按理论上来说,这样设置对 IE  也是没有问题的,但是不论怎么调,总是调不到中间去

后来,不使用三遍定位(right:10px ;top:0;bottom:0;),改为两边定位(top:21px;right:10px;),在IE 中就能显示正常了  (具体为什么现在也不是很明白,只是把效果做出来了)

变更后的css代码:

 table.shanye tbody tr td.td1 {
position: relative;
} table.shanye tbody tr td.td1>span {
position: absolute;
margin: auto;
top: 21px;
right: 10px;
width: 17px;
height: 17px;
vertical-align: middle;
}

在IE 下显示效果(在谷歌下显示效果也一样了):

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

4. 将span 转化成行块元素,但是IE 下 显示效果有差异:

css 显示代码如下:

   ul.biao ul.tian {
height: 28px;
line-height: 28px;
width: 100%;
}
ul.biao ul.tian span {
display: inline-block;
float: left;
width: 15%;
border: 1px solid #eee;
text-align: center;
}
ul.biao ul.tian span.ming {
width: 325px;
}

4.1 在谷歌下显示效果:

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

在 IE 下显示效果:

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

怎么调整都没有调整好,然后查资料:IE 下行块元素,如果不设置款和高的话,会默认是0;而谷歌下会智能的帮你设置高和宽。另外,在lE 下标签如果没有写结尾标签的话,IE 不会补全,就会出现各种样式乱码。而谷歌会智能的识别,没有收尾标签的话,则会自动补齐。

那我的遇到的这个样式乱码是不是因为长宽的设置问题呢?增加设置高后,就OK了

重新设置了一下span 的高和宽,增加一个高的设置:height:26px;   如下:

 ul.biao ul.tian {
height: 28px;
line-height: 28px;
width: 100%;
}
ul.biao ul.tian span {
display: inline-block;
float: left;
width: 15%;
border: 1px solid #eee;
text-align: center;
height: 26px;
}
ul.biao ul.tian span.ming {
width: 325px;
}

IE 下显示OK 了,在谷歌下显示也OK 了,如下:

关于IE 浏览器的position居中定位的问题和 行块元素的设置问题

以上就是这两天遇到的关于IE 的显示问题