border-radius,box-shadow兼容性解决办法

css3 border-radius不支持IE8/IE7的四种解决方法

标签: cssborder-radius兼容性   时间:2016-07-18

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

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

第一种方法:ie-css3.htc

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

第一步:下载.htc文件:下载

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

box {
  -moz-border-radius: 15px; /* Firefox */
  -webkit-border-radius: 15px; /* Safari 和 Chrome http://www.manongjc.com/article/1214.html */
  border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */
  behavior: url(ie-css3.htc); /* 通知IE浏览器调用脚本作用于‘box‘类 */
}

第二种方法: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属性值等于这个纹理对象就可以了。

原文地址:http://www.manongjc.com/article/1214.html

时间: 2024-11-07 07:08:33

border-radius,box-shadow兼容性解决办法的相关文章

WCF不支持 ASP.NET 兼容性 解决办法

错 误提示:无法激活服务,因为它不支持 ASP.NET 兼容性.已为此应用程序启用了 ASP.NET 兼容性.请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibilityRequirements 属性添加到服务类型且同时将 RequirementsMode 设置为“Allowed”或“Required”. 解决办法: 修改相应   服务.svc.cs using System.ServiceModel.Activation ; [AspNetComp

IE浏览器常见CSS兼容性问题及解决办法

对于前端开发者来讲,世界上存在着一个神奇的东西——IE浏览器,尤其是低版本的IE浏览器,惨不忍睹的兼容性使其臭名昭著.前端工作者很多的时间都花在了和它打交道上,所以大家纷纷吐槽IE浏览器如何的渣,简直是万恶之源.但是IE浏览器市场份额有非常大,喷完还要接着搞兼容.对于IE浏览器来讲,我们应该有一个客观的评价.首先其兼容性差,原因可想而知,更新速度太慢,要几年才出一个版本,而市场上的FireFox.chrome等浏览器几个月就有一个版本上市.中间那么长的时间足以将其bug充分的暴露出来,其他浏览器

子元素的margin-top影响父元素原因和解决办法

这个问题会出现在所有浏览器当中,原因是css2.1盒子模型中规定, In this specification, the expression collapsing margins means that adjoining margins (no non-empty content, padding or border areas or clearance separate them) of two or more boxes (which may be next to one another

个人整理的兼容性问题和解决办法

1 ie6.0横向margin加倍 产生因素:块属性.float.有横向margin.解决方法:display:inline:2 ie6.0下默认有行高 解决方法:overflow:hidden;或font-size:0;或line-height:xx px:3 在各个浏览器下img有空隙(原因是:回车.) 解决方法:让图片浮动.4 一个父标签与几个子标签嵌套,父标签不浮动,子标签float,子标签不撑开父的高度. 解决方法:a 在子标签最后清浮动{<div style="height:0

win8下安装VC6出现兼容性问题的解决办法

重装系统之后(win8的系统),发现VC6安装出现兼容性问题,花了一些时间解决,有出现的问题都差不多在下面链接的总结中,写的很详细: http://www.docin.com/p-1126120829.html 这里面安装补丁的过程还会出现以下问题: "模块FileTool.dll已加载,但对DLLRegisterServer调用失败" 解决办法就是: 在cmd下手动注册该dll文件:regsvr32 "C:\Program Files\Microsoft Visual St

IE6-IE11兼容性问题列表及解决办法总结

相比IE6-IE9那版,主要添加IE10和IE11的新变化. 以下是目录及下载链接: 目录 概述 2 第一章:HTML 3 第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TABLE.FORM.NOFRAMES 或 NOSCRIPT 元素,会自动添加结束标记. 3 2. 支持格式正确的有效标记,不再支持格式错误的 HTML. 4 3. Button标签的默认type类型从button改为submit. 5 4. 不再支持 COL 及 COLGROUP 元素的部分属性及为其

关于IE和Firefox兼容性问题及解决办法

1.//window.eventIE:有window.event对象FF:没有window.event对象.可以通过给函数的参数传递event对象.如onmousemove=doMouseMove(event)解决方法:var event = event || window.event;一个示例: <script> function test(event) { var event = event || window.event; //do Something } </script>

IE6-IE11兼容性问题列表及解决办法

IE6-IE11兼容性问题列表及解决办法总结 相比IE6-IE9那版,主要添加IE10和IE11的新变化. 以下是目录及下载链接: 目录概述 2第一章:HTML 3第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TABLE.FORM.NOFRAMES 或 NOSCRIPT 元素,会自动添加结束标记. 3 2. 支持格式正确的有效标记,不再支持格式错误的 HTML. 4 3. Button标签的默认type类型从button改为submit. 5 4. 不再支持 COL 及

移动端常见兼容性问题及解决办法

当使用transform:translate3d(-50%,-50%,0)居中弹框(div)时,在pc端,内部的文字会模糊.解决办法:给body定义样式 body{ font-family: Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,SimSun,sans-serif; } 用position:absolute/fixed;把一个按钮固定在页面的底部,在android系统中,当调用输入法时,该按钮会