css知识点整理-八仙过海各显神通之IE8圆角

IE系列浏览器的诟病就不一一细说了。
比较折磨前端的是客户对IE8的不离不弃,以及傲娇美工对各种新特性的宠爱。
关于IE8及以下版本浏览器无法显示圆角,各路大神也都有相关的文章介绍,但是众说纷纭,可实现性还是需要结合项目做验证。此篇文章算是作为自己工作中遇到的这个问题的一个解决方案总结汇总。

解决方案1:pie.htc

pie.htc算是解决IE8圆角问题比较常用的插件。国外的工程师们不会安于现状,他们总是能使用一些手段使IE浏览器也能支持CSS3的一些属性。这些都是非常有意义的事情,并且能推动技术文明的发展。
啧啧,起高了...还是回到主题上来。直接上代码吧。

CSS:
.pieDiv {
            height: 200px;
            width: 300px;
            background-color: #5bc0de;
            -moz-border-radius:8px;
            -webkit-border-radius:8px;
            border-radius:8px;
            margin: 40px;
            behavior: url("css/PIE.htc");
        }
html:
<div class="pieDiv"></div>
效果:

如图,能够使图层实现圆角功能。


image

如果不是图层而是图片呢,能不能使图片实现圆角呢。测试是可以的。


image

但是我们需要知道,所有的方法都不是万能的,也会有它的局限性。
需要注意的点:

IE下这些CSS3效果实现是借助于VML,由VML绘制圆角或是投影效果的容器元素,然后这个容器元素作为目标元素的后兄弟节点插入,如果目标元素position:absolute 或是 position:relative,则这个css3-container元素将会设置与之一样的z-index值,在DOM tree中,同级的元素总是后面的覆盖前面的,所以这样就实现了覆盖,又避免了可能有其他元素正好插入其中。所以,问题来了,如果目前元素的position属性为static,也就是默认属性,则z-index属性是没有用的,无覆盖可言,所以此时IE浏览器下CSS3的渲染是不会成功的。要解决也很简单,设置目标元素position:relative或是设置祖先元素position:relative并赋予一个z-index值(不可为-1)。
htc文件路径需要时绝对路径。
会给其他属性埋坑,影响其他属性的正常使用,但是为了实现功能,是坑也要入。

解决方案2:ie-css3.htc

这个脚本文件也是应用比较广泛的解决IE上css3问题的方案。
使用方法同上:

css:
.ieCss3Div {
            height: 100px;
            width: 100px;
            background-color: #5bc0de;
            -moz-border-radius:8px;
            -webkit-border-radius:8px;
            border-radius:8px;
            margin: 40px;
            behavior: url("css/ie-css3.htc");
        }
html:

<div class="ieCss3Div"></div>

效果:

如果是图层,效果如下,是能实现图层圆角的。


image

如果是图片的情况下:经测试在IE8浏览器下ie-css3不能使图片实现圆角功能


image
需要注意的点:

1:同样是借助于VML,由VML绘制圆角或是投影效果,所以还需要一个z-index属性。z-index属性最好设置得比较大,如2。
2:behavior需要绝对路径。
3:需要写到对应的HTML里面才能生效。
4:需要添加position:relative;属性。

解决方案3:

使用带圆角的图片,图层可以直接添加圆角图片,图片可以用定位将圆角图片覆盖到上面。
当然能用代码解决的我们尽量不用这么“高大上”的方法。
这样的方法会增加服务器压力,拖慢网页进程。

解决方案4:

使用纯css实现圆角功能
其实这种圆角框是靠一个个容器堆砌而成的,每一个容器的宽度不同,这个宽度是由margin外边距来实现的,如:margin:0 5px;就是左右两侧的外边距5像素,从上到下有5条线,其外边距分别为5px,3px,2px,1px,依次递减。因此根据这个原理我们可以实现简单的html结构和样式。

css:
#css2 {
            padding: 10px;
            background: #5bc0de;
            color: #fff;
            margin: 0;
        }

        .r_a, .r_b, .r_c, .r_d {
            background: #5bc0de;
            display: block; /*让em显示在不同的行*/
            height: 1px;
            font-size: 18px;
            overflow: hidden; /*防止溢出让em变高*/
        }

        .r_a {
            margin: 0 5px;
        }

        .r_b {
            margin: 0 3px;
        }

        .r_c {
            margin: 0 2px;
        }

        .r_d {
            margin: 0 1px;
            height: 2px;
        }
html:
<div style="width: 400px;margin: 40px">
    <div class="top_r"><em class="r_a"></em><em class="r_b"></em><em class="r_c"></em><em class="r_d"></em></div>
    <p id="css2">
        当我听到那句“想带着你南下·感受四季的变化·。看着窗前的花·,静静发芽·长成了牵挂”时,我的心化了。我也想带着一朵温柔如花的她,走过风风雨雨山川河流,来到温润如水的江南,躲过世俗的嘈杂,与她一起感受四季的变化,看窗台上那朵花慢慢发芽,变成彼此的牵挂。
    </p>
    <div class="bottom_r"><em class="r_d"></em><em class="r_c"></em><em class="r_b"></em><em class="r_a"></em></div>
</div>
效果:
image

image

这个纯css实现圆角的功能能兼容几乎所有浏览器,但是只有我自己能看到毛边吗?

image

以上是本次关于IE8圆角问题自己的解决汇总,希望能帮到大家,欢迎指正和补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,312评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,745评论 0 2
  • “欧文”这个名字,准确来说应该是姓氏,最早给我的印象是专指英格兰那位曾经的追风少年。但在2011年的NBA选秀大会...
    氧气是个地铁阅读 413评论 1 6
  • 两个可能彼此相爱、喜欢的人,彼此不能成为名義上的男女朋友,只能做个特别的朋友…… 也许是为顾及家人意见,不能归位。...
    螃蟹小姐5211阅读 382评论 0 0