`

border-radius IE8兼容处理

    博客分类:
  • CSS
CSS 
阅读更多

    css3 border-radius用于设置HTML元素的圆角效果,但只有IE9、chorme及firefox浏览器支持该属性,IE8及以下浏览器不兼容也不支持border-radius属性,本文章向大家介绍如何解决IE8兼容border-radius属性的方法,需要的朋友可以参考一下。

    border-radius是css3的属性,因此比较早的浏览器是不会支持该属性的,如何才能实现border-radius兼容老版本的浏览器呢?

    【第一种方法:PIE.HTC或者ie-css3.htc】

【拓展下,.htc可以使ie支持许多css3属性,具体在后面文章里做了总结】

我们可以使用网上提供的一个插件来解决这个问题。

第一步:下载PIE.HTC文件:下载链接http://css3pie.com/download/

第二步:使用behavior通知浏览器调用脚本,代码如下:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>圆角兼容</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        #header {
            width: 400px;
            height: 400px;
            margin: 10px;
            border: 1px solid red;
            /* Firefox */
            -moz-border-radius: 15px; 
            /* Safari 和 Chrome 
            -webkit-border-radius: 15px; 
            /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */
            border-radius: 15px; 
            /*关键属性设置 需要把路径设置好,通知IE浏览器调用脚本作用于'box'类*/
            behavior: url(PIE.htc);
        }
    </style>
</head>
<body>
<div id="header">
</div>
</body>
</html>

 IE8浏览器下效果:

 

 

第二种方法:DD_roundies实现圆角

DD_roundies下载地址:

DD_roundies.js:http://pan.baidu.com/s/1o68wluE

DD_roundies.min.js:http://pan.baidu.com/s/1jGqTwI6

<!DOCTYPE HTML>
<html>
<head>
<title>http://www.manongjc.com/article/1214.html</title>
<script src="DD_roundies.js"></script>
</head>
<body>
<div class="test" style="background-image:url(2.jpg);width:88px;height:106px;">
</div>
<img src="2.jpg" alt="" class="test"/>
<script type="text/javascript">
        DD_roundies.addRule('.test', '10px 10px', true);
</script>
</body>
</html>

 

第三种方法:SVG实现图片圆角效果

本处的实现原理适用于各种SVG规则的或不规则的图形。

SVG实现图片圆角关键是借助元素<pattern>.

举个例子,如果实现名为test.jpg的图片圆形效果,大小100px * 100px, 则SVG代码如下:

<svg width="100" height="100">
    <desc>SVG圆角效果</desc>
    <defs>
        <pattern id="raduisImage" patternUnits="userSpaceOnUse" width="100" height="100">
            <image xlink:href="test.jpg" x="0" y="0" width="625" height="605" />
        </pattern>
    </defs>
    <circle cx="50" cy="50" r="50" fill="url(#raduisImage)"></circle>
</svg>

 图形元素都有一个fill属性,让其值url锚向<pattern>的id就可以了

 

第四种方法:Canvas实现图片圆角效果

本规则适用于各种Canvas绘制的规则或不规则图形。

Canvas实现图片圆角的关键是使用“纹理填充”。

Canvas中有个名为createPattern的方法,可以让已知尺寸的图片元素转换成纹理对象,作填充用。

举个例子,如果实现名为test.jpg的图片圆形效果,大小100px * 100px, 则主要JS代码如下:

// canvas元素, 图片元素
var canvas = document.querySelector("#canvas"), image = new Image();
var context = canvas.getContext("2d");
image.onload = function() {
    // 创建图片纹理 http://www.manongjc.com/article/1214.html
    var pattern = context.createPattern(image, "no-repeat");
    // 绘制一个圆
    context.arc(50, 50, 50, 0, 2 * Math.PI);
    // 填充绘制的圆
    context.fillStyle = pattern;
    context.fill();    
};
image.src = "test.jpg";

 让Canvas上下文的fillStyle属性值等于这个纹理对象就可以了。

 

 

 

 

 

 

 

 

.

 

分享到:
评论

相关推荐

    border-radius IE8兼容处理的方法

    根据canisue(http://caniuse.com/#search=border-radius),border-radius兼容性如下图所示: 测试代码: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta ...

    border-radius兼容ie78

    css3的 border-radius 为了兼容ie8浏览器所用到的插件以及实例。为什么要50个字节啊,竟然不能设置成免费。。

    IE实现CSS3中的border-radius(圆角)

    让IE实现CSS3中的border-radius(圆角)

    浅析border-radius如何兼容IE

    border-radius如何兼容IE呢?下面小编就为大家介绍一下border-radius兼容IE的方法。一起跟随小编过来看看吧,祝大家游戏愉快哦

    IE兼容CSS3圆角border-radius的方法(同时兼容box-shadow,text-shadow)

    NULL 博文链接:https://jm1999.iteye.com/blog/2218022

    纯CSS3实现圆角效果(含IE兼容解决方法)

    下面让我们来看看border-radius的语法,解释,以及IE是如何支持它的。 语法和说明 在CSS3中用来生成圆角效果的属性是border-radius.这个属性跟大家熟知的width等属性的用法相似: 复制代码代码如下:.roundElement {...

    兼容所有浏览器的CSS3圆角

    前一段时间,我经常收到一个关于如何在IE浏览器中使用CSS3的border-radius属性实现圆角HTML元素的...你或许知道CSS3的border-radius 属性被Safari、Firefox和Chrome等浏览器原生支持,但是由于某些原因IE并不支持它。

    PIE-1.0兼容包.zip

    解决IE低版本兼容模式下border-radius等CSS样式不生效的组件

    PIE-2.0beta1解决ie8以下兼容性插件

    border-radius 圆角 box-shadow 块阴影 border-image 图片边框 multiple background images 多背景 linear-gradient as background image 线性渐变背景图片 CSS3 Pie是一个/PIE-2.0beta1/PIE.htc文件

    PIE.htc在IE8实现一些css3效果

    要注意的是它并不能实现所有CSS3效果,其兼容的属性有:box-radius,线性渐变( linear-gradient),rgba,box-shadow,border-image。使用时直接引入PIE.htc文件即可(但要注意都是以html文档位置与该文件相对位置来引入...

    ie-css3.htc

    ie各个版本浏览器兼容圆角样式属性:border-radius,具体使用方法可参考:https://blog.csdn.net/Bibabu135766/article/details/79522496

    PIE.htc让IE 6,7,8支持CSS3的部分属性

    让IE 6,7,8支持CSS3的部分属性。它可以让低版本IE浏览器支持CSS3的border-radius、box-shadow、border-image、CSS3 Backgrounds (-pie-background)、Gradients、RGBA属性。

    css3实现圆角矩形

    css3实现圆角矩形 使用border-radius实现圆角,兼容到IE6

    CSS教程:CSS3圆角属性

    IE 和 Opera 就没有私有的圆角属性了,如果有的话,那制作圆角应该就简单多了,把各自的私有属性全部写上,让各个浏览器对号入座,就达到了兼容的效果。 随着网络的发展,CSS 也在不断的完善,充分吸取多年来 Web ...

    HTML圆角插件-curvycorners

    解决CSS3圆角兼容所有浏览器的方法,该脚本的最大优势是可以在Safari/Chrome/Firefox中使用原生的CSS3属性(通过-webkit-border-radius和-moz-border-radius私有属性分别支持)而在IE和Opera中使用JavaScript。...

    对常见的css属性进行浏览器兼容性总结(推荐)

    为什么要对css属性进行浏览器兼容性总结呢?用的时候,直接去 Can I Use ... border-radius: 最低兼容至 IE9,其它浏览器兼容情况优良。 box-shadow: 最低兼容至IE9, 其它浏览器兼容情况优良。 背景: background-size

    HTML几个特殊的属性标签的使用介绍

    1.transform:rotate(45deg) 2.border-top-left-radius 该属性允许您向元素添加圆角边框 3.border-radius 该属性允许您向元素添加圆角边框 4.box-shadow 属性向框添加一个或多个阴影 5.text-shadow 属性向文本设置...

    常用的HTML+CSS标签480个(带中文解释说明)

    &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge"&gt;浏览器兼容 leftmargin="0" topmargin="0" marginheight="0" marginwidth="0"去除页面边框 list-style-type:none;去除li点 "color:red;text-decoration:none...

Global site tag (gtag.js) - Google Analytics