IE7,IE8浏览器CSS实现正圆角效果代码

一、关于IE7, IE8不支持CSS3 border-radius

CSS3 border-radius可以轻易实现圆还有圆角效果,然而,需要IE9+浏览器才行。移动端自然不成问题,但是众多(尤其面向C侧)PC页面是至少需要兼容IE8的,那有没有什么办法可以让IE7, IE8也支持圆角呢?

很久很久以前介绍过一个名为PIE的东西可以实现IE7,IE8的圆角,是10年7月份写的一篇“PIE使IE支持CSS3圆角盒阴影与渐变渲染”(本文还有其他很多圆角方法介绍)。

其原理是利用的IE私有的behavior,本质上还是JS代码。

这里,给大家介绍一个使用纯CSS实现IE7,IE8浏览器正圆角的例子。

二、纯CSS实现IE7,IE8圆角

我们直接看demo,您可以狠狠地点击这里:IE7/IE8浏览器纯CSS实现圆角demo

结果,IE7浏览器下:

IE8浏览器下:


补充于2016-07-13
有小伙伴评论反映IE8下不是正圆,然后,今天我特意打开10年前还是XP系统的笔记本,使用原生的IE8浏览器看了下,除了边缘糙了点以外,还是正圆,如下截图:

 


因此,反映IE8圆角不是正圆的小伙伴,可否提供更多的信息。例如,比方说操作系统,或者是否在IEtester类似软件中测试的等。

IE11下:

 


IE9浏览器下圆角

全兼容,效果棒棒哒!

实现原理:
IE9+使用border-radius:50%, IE7,IE8使用border模拟。

我们平常使用border-style一般都是solid实线,其他常用的还有dashed以及dotted,我们这里的主角就是dotted点,在IE浏览器下,dotted点是被渲染成正圆的,Chrome浏览器则是正方形。

上面demo,如果我们去掉父级的overflow,IE浏览器下就会这样:


同等条件下的Chrome则是方点:

 


于是,我们就可以利用这个圆实现我们想要的圆角效果。我们给一个父级元素,同尺寸,overflow:hidden,只看见左上角那个圆,就可以实现我们想要的正圆效果了。

相关CSS代码如下:

.box {
    width: 150px; height: 150px;
    position: relative;
    /* 值显示左上角那个圆点 */
    overflow: hidden;
}
.radius {
    position: absolute;
    width: 100%; height: 100%;
    border: 149px dotted;
    /* IE7,IE8圆尺寸要小1像素同时有1像素偏移 */
    margin: 0 0 1px 1px;
    color: #cd0000;
}

是不是很好理解。完整CSS和HTML代码参见demo。

其他说明

此方法并不适用于IE6浏览器,因为IE6浏览器下dotted会按照dashed虚线进行渲染,不是个圆。

三、此方法的不足

本文介绍的方法可以轻松实现一个圆效果,而且可以无缝全兼容。但是,不足在于只能实现个圆,如果你想实现任意大小的圆角效果,怎么说呢?理论上也是可以实现的,但是,需要很多个元素进行拼接。就是dotted边框模拟小圆角,直线部分需要矩形进行拼接。但是,显然成本就很高了,在我看来,为了注定要淘汰的IE7,IE8浏览器这么折腾,是不划算的

时间: 2024-11-10 01:18:36

IE7,IE8浏览器CSS实现正圆角效果代码的相关文章

css实现图片圆角效果代码

 代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

纯css实现蓝色圆角效果水平导航菜单代码

         本文实例讲述了纯css实现蓝色圆角效果水平导航菜单代码.分享给大家供大家参考.具体如下:          这是一款可爱的蓝色圆角水平导航菜单,用到几张背景图片,我觉得这款菜单挺实用,特别是用在个人博客中非常合适.在兼容性方面做的也很好,几乎兼容所有的浏览器. 运行效果截图如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org

css 圆角效果代码

提示:您可以先修改部分代码再运行 css 圆角效果代码 圆角效果 本代码由网页特效网提供 提示:您可以先修改部分代码再运行

让IE6/IE7/IE8浏览器支持CSS3属性方法

大家都知道IE 6,IE7,IE8不支持css3中新加属性,老外写了一个ie-css3.htc,主要利用的是VML原理,可以让IE 6,7,8支持部分的CSS3属性,包括:border-radius(圆角),box-shadow(阴影),text-shadow(文本阴影). 使用是很容易的,看下面的示例代码:  代码如下 复制代码 .box {   -moz-border-radius: 15px; /* Firefox */   -webkit-border-radius: 15px; /*

CSS实现简单圆角效果

目前,我们要在网页中使用圆角效果,总是通过切图然后嵌套很多div,用背景来实现圆角效果.对于前端开发工程师来说,圆角的确是一个让人又爱又恨的东西,一方面顾及设计师追求的美观效果,另一方面又不得不增添很多工作投入.无意中看到别人写的一个用纯粹css来实现的圆角效果,研究了一下发现对于那些需求比较简单的圆角效果还是一种很好的方法.总结了一下,可以实现自适应的纯css圆角效果. 首先,我们看一下一般圆角的结构: 从下图可以明显看出圆角和直边的关系,其实把圆角放大之后可以看到圆角是由像素化的直边组成的:

JS+CSS实现闪烁字体效果代码_javascript技巧

本文实例讲述了JS+CSS实现闪烁字体效果的方法.分享给大家供大家参考,具体如下: <div id="blink">闪烁的文字</div> <script language="javascript"> function changeColor(){ var color="#f00|#0f0|#00f|#880|#808|#088|yellow|green|blue|gray"; color=color.spli

CSS制作圆角效果代码

不用图片圆角边框的实现 以下是HTML网页特效代码,点击运行按钮可查看效果: [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]

http://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx   At-rules CSS 2.1:   IE 5.0 IE 5.5 IE 6.0 IE 7.0 IE8 Beta 1 IE8 Beta 2 IE 8.0 @charset No Yes Yes Yes Yes Yes Yes @import Yes Yes Yes Yes Yes Yes Yes @media No Yes Yes Yes Yes Yes Yes @pag

CSS实现光滑圆角效果_CSS/HTML

这个效果非常独特,以前我所见过的这种特效实现过程非常复杂,但这里的源代码却非常简单,推荐收藏. <html xmlns:v><head><style>v\:*{behavior: url(#default#VML);}</style></head><body><v:roundRect style="position:absolute;left:20px;top:50px;width:200px;height:140px