所有分类
  • 所有分类
  • 后端开发
前端开发必知:CSS 在 IE 浏览器中的兼容性问题及常见写法

前端开发必知:CSS 在 IE 浏览器中的兼容性问题及常见写法

本文将分享一些常见的css兼容ie的写法,帮助开发者克服这个难题。宽度百分比兼容问题绝对定位兼容问题常见的方式是在父元素尾部添加一个空元素,并将其设置为“clear:both”,但这种写法在IE中并不总是有效。边框模型兼容问题链接背景颜色兼

实话跟您说,做前端的,得懂点儿CSS不是?可问题是,有些浏览器(比如说IE)看CSS就像看天书似的,导致我们设计的网页在这些浏览器里表现得七零八落。所以,想让网页在IE上跑顺溜了,必须先把CSS在IE里的那点兼容性问题化解掉。接下来,我就告诉你们几个简单好用的CSS编写妙招,帮你们轻松应对这个大难题。

IE对CSS选择器的支持问题

IE在接纳某些CSS选择器这块儿真是有点力不从心,像是CSS3里的那个nth-child()伪类选择器,IE7以下都不支持。甚至IE6及其早期版本也不能愉悦地玩转”+”和”~”这两种同级元素选择器。那么问题来了,我们该怎么办?要不试着用JavaScript耍点花样模仿它们,又或者给CSS加些备胎方案。

听过没,IE6这浏览器有些小毛病,像一些元素的宽度设置是百分比,但它的”source”也是用百分比设定的,这时候那宽度就开始乱挤。别慌,解决这个挺简单的——在”source”的那部分代码里面加个”display:inline-block”,然后把宽度改成100%就搞定了。还有就是,让”source”的属性变过来成”position:relative”,这样问题也能解决~

/* IE6以及以下版本中是无法识别"+"和"~"选择器的 */
ul li + li {
  margin-left: 20px; /* 应用于选择器后方的li元素 */
}
ul li ~ li {
  padding-left: 10px; /* 应用于紧接着选择器后方的所有li元素 */
}
/* IE6及以下版本中的回退选择器 */
ul li { margin: 0; }
ul li:first-child { margin-left: 20px; }
ul li:last-child { margin-right: 20px; }

浮动元素的布局问题

说起那个麻烦的IE浏览器跳出来的悬浮框,总是要您给出个高,搞得页面乱七八糟。我们会在父元素后面加点空格再设个”clear:both”给他搞定,但到IE那儿,就没那么好使了。这时候咋办?给悬浮框上头的父元素添上”overflow:hidden”的特性试试看,这样不就强行霸占子元素的空间了!

/* 在IE6中,当父元素宽度为百分比时,子元素百分比宽度会出现问题 */
.parent {
  width: 50%;
}
.child {
  width: 50%;
  /* 在IE6中,需要在父元素上设置display:inline-block */
  display:inline-block;
}
/* 为了在其他浏览器中保持和IE同样的效果 */
.parent {
  width: 50%;
}
.child {
  width: 50%;
}

背景和透明度的兼容问题

ie上网页时,好像某个元素被你设置成带背景和透视效果~不过这样做的话,下头的字啊、图啊也可能变得忽明忽暗。别怕,这儿有个小窍门,给它添上个ie专属的滤镜就没问题了

/* 在IE中,绝对定位元素可能会相对于body元素定位 */
.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50px;
  left: 50px;
  z-index: 1;
}

前端开发必知:CSS 在 IE 浏览器中的兼容性问题及常见写法

边框宽度的处理问题

IE浏览网页时,有时候会发现页面的大小跟实际不太对劲。别担心,咱有办法。调整下CSS边框或者用JavaScript算一算就搞定了。不论是IE还是其他浏览器,展示出的页面都准没错~

/* 在IE中,浮动元素不强制父元素占有高度 */
.parent {
  overflow: hidden;
  zoom: 1; /* 用于激活IE6和IE7中的hasLayout */
}
.child {
  float: left;
  width: 50%;
}

链接背景颜色的兼容问题

你用IE浏览器设链接背景颜色时,发现点进去没反应呀?没事儿,只需要加点儿简单的代码就好。这样就能让过去点过和最近点的链接都有好看的背景颜色

实际应用中的更多问题

/* 在IE中,设置背景透明度会影响元素文本和子元素 */
.parent {
  background-color: #000;
  opacity: 0.5;
  /* 在IE中,使用滤镜来添加透明度 */
  filter: alpha(opacity=50);
}

可能会碰到一些兼容问题,别急慢慢研究哈~虽然IE有点儿麻烦,但是我们得学,毕竟有些地方还是需要用到的,尤其在老电脑上。

兄弟,我跟你说,IE这东西太费劲了,老是出这那的问题让人抓狂。不过,咱们解决了那些常见的毛病后,IE的网页就能顺利地弹出来咯。加油别纠结了!

/* 在IE6及以下版本中,应该将width宽度设置成.content的宽度 */
.box {
  width: 400px;
  height: 300px;
  padding: 10px;
  /* 在IE6及以下版本中,边框和内边距会导致元素实际宽度增加 */
  border: 1px solid #000;
  background-color: #fff;
}
/* 在其他浏览器中,边框和内边距不会导致元素实际宽度增加 */
.box {
  width: 422px;
  height: 322px;
  padding: 10px;
  border: 1px solid #000;
  background-color: #fff;
}

原文链接:https://www.icz.com/technicalinformation/web/vue2/2024/07/18929.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?