IE兼容CSS3圆角border-radius,box-shadow,text-shadow的方法
1.下载ie-css3.htc
2.CSS
box { -moz-border-radius: 15px; /* Firefox */ -webkit-border-radius: 15px; /* Safari 和 Chrome */ border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ -moz-box-shadow: 10px 10px 20px #000; /* Firefox */ -webkit-box-shadow: 10px 10px 20px #000; /* Safari 和 Chrome */ box-shadow: 10px 10px 20px #000; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ behavior: url(ie-css3.htc); /* 通知IE浏览器调用脚本作用于'box'类 */ }
3.问题:
一、只能同时4角圆角,不能单独设置;
二、div上可以正常使用,测试text文本框,会出现异常;
三、CSS文件要和页面在同一目录下,否则无效
四、当前元素一定要有定位属性,像是position:relative或是position:absolute属性。
五、z-index值一定要比周围元素的要高,否则……只能说抱歉了~~
4.支持的样式及状态说明
参见下表:
border-radius | 为元素四个角设置圆角属性 元素边框 |
只设置一个角落的圆角属性 |
box-shadow | 模糊大小参数 偏移值 |
不支持除了黑色(#000)以外的其他颜色 |
text-shadow | 模糊大小参数 偏移值 颜色值 |
IE下的表现与Firefox/Safari/Chrome有一点点的差异,原因不详 |
标签: css3
在这时碰到了一个圆角边框的问题,以前的代码是在每个页面写一个固定结构的div,使用背景图片来实现圆角边框。代码结构大致如下:
.top_border{background:url(topborder.png);} .left_border{background:url(leftborder.png);} .right_border{background:url(rightborder.png);} .bottom_border{background:url(bottomborder.png);}
<div> <div class="top_border"></div> <div class="left_border"></div> <div class="content"> ... </div> <div class="right_border"></div> <div class="bottom_border"></div> <div>
在重构时,我直接把这个结构修改为最简化的版本
<div class="content"></div>
这里就有点问题:使用boder-radius可以实现圆角边框,但是不支持IE7 、IE8。
当时我认为,我的这个规范是正确的,所以希望通过不修改HTML的代码结构来完成对IE7/IE8的兼容。
搜索了一下IE7/IE8的解决方案:http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html
就以此为基础,使用js来对IE7/IE8进行兼容。主要代码逻辑如下:
if( typeof (document.documentElement.style["border-radius"]) == "string")//判断是否支持 { $.fn.extend({//实现圆角 borderRadius : function (r) { var b = this.wrap("<div></div>").parent(); //以下代码 主要以逻辑为主 并非真实执行代码 ,为四角 border-radius = 5的实现 //调整margin 及 宽度 以符合旧div的布局 b.css( {margin : this.css("margin") , "width ": this.clientWidth}); this.css({margin:"0"}); var borderColor = this.css("border-color");
var background = this.css("background-color"); var borderStyle = this.css("borer-style"); //重设边框,只保留两侧边框 this.css({"border-top-width":"0","border-bottom-width":"0"});//
//创建HTML结构,实现上下边框 var setting = { m: [1,2,3,5],bw : [1,1,2,0] }; var i = 0; for(; i < 3; i++) { var t = $("<b><b>").css({"height": 1 , "margin" : "0 " + setting.m[i] + "px", "border-left-width" : setting.bw[i] +"px","border-right-width" : setting.bw[i] +"px", "border-color":borderColor,"background-color":background}); b.append(t); b.prepend(t.clone(true)); } var t = $("<b><b>").css({"height": 1 , "margin" : "0 " + setting.m[i] + "px", "border-width" : "0", background-color":borderColor}); b.append(t); b.prepend(t.clone(true)); } }); $(".content").borderRadius(5);//设置圆角 $(".border1").borderRadius(5); }
虽然运行时的HTML结构变化了,但是编码时的HTML结构没有变化,也算是一种兼容方式吧。
相关推荐
在CSS3中,border-radius、box-shadow和gradient是三个非常重要的样式属性,它们极大地提升了网页设计的美观性和表现力。让我们逐一深入探讨这三个概念。 首先,`border-radius`属性允许我们为元素的边框添加圆角,...
它的主要目标是为旧版的IE浏览器提供对某些CSS3特性的支持,如`border-radius`、`box-shadow`、`linear-gradient`等。这个工具通过利用VML(Vector Markup Language),一个微软在IE中实现的矢量图形技术,来模拟...
### 圆角魅力:CSS `border-radius`全攻略 在当今网页设计中,圆角(border-radius)的应用已经成为提升用户体验及界面美观度的关键技术之一。它不仅赋予了用户界面更加柔和且现代的感觉,而且还能帮助设计师们实现...
在CSS世界中,`border-radius`属性用于为元素添加圆角效果,使边框不再呈现为直角,而是呈现出各种半径的弧形。然而,有时候我们可能会遇到`border-radius`失效的问题,导致元素的边角无法按照预期显示为圆形或椭圆...
CSS中的text-shadow、box-shadow和border-radius属性是用于增强页面视觉效果的重要工具。这些属性自CSS3版本起被广泛采用,并在现代网页设计中扮演着至关重要的角色。下面将分别对这三个属性进行详细解释,并探讨...
今天比较忙,没能好好看新东西,就记录一个常用的CSS3属性吧:box-shadow,表示阴影,如果设置了border-radius圆角,则阴影也是圆角 box-shadow目前是IE9及以上和其他现代浏览器都支持的属性了。 语法: Formal ...
CSS3 PIE通过VML(Vector Markup Language)来模拟圆角效果,并支持`border-radius`、`box-shadow`等属性。只需在HTML元素上添加特定的类名,然后在页面加载完成后调用该插件即可。 ```html <div class="box pie...
在CSS3中,不仅可以用`border-radius`创建圆角,还可以与其他属性结合,如`box-shadow`(阴影效果)、`background-image`(背景图片)等,创造出丰富的界面效果。例如,一个带有圆角、阴影和渐变背景的按钮可能如下...
在网页设计中,CSS(Cascading Style Sheets)是一种用于定义HTML或XML(包括SVG、XHTML等)文档中元素外观、布局和结构的重要样式语言。...同时,结合`box-shadow`等其他CSS属性,还能实现更多高级和富有创意的效果。
值得注意的是,PIE库不仅限于`border-radius`,它还可以处理其他CSS3的一些属性,比如阴影(box-shadow)和渐变(gradient)。但需要注意的是,由于PIE依赖于JavaScript,因此在禁用JavaScript的环境下,这些效果将...
本文将深入探讨如何利用CSS3实现圆角、阴影和渐变效果,并确保这些效果在包括IE在内的主流浏览器中都能得到良好的兼容性。 首先,我们来讨论CSS3的圆角效果。在CSS3之前,为了实现圆角,开发者通常需要使用大量的...
5. **边框 radius**:`border-radius`属性用于创建圆角边框,可以分别设置四个角的圆角大小,或者使用`border-radius: 50%;`创建一个圆形元素。 6. **边框图片**:`border-image`属性允许使用图像作为边框,提供了...
本文将深入探讨如何解决IE浏览器对CSS3圆角和阴影的不兼容性问题。 首先,我们来理解CSS3中的圆角和阴影特性。圆角可以通过`border-radius`属性实现,它允许我们将直角边框转变为平滑的曲线边缘,为元素添加更为...
在本例中,ie-css3.htc是一个JavaScript脚本,它模拟实现了CSS3的一些关键属性,如border-radius、box-shadow、linear-gradient等,使老版本的IE浏览器也能显示这些现代CSS3效果。 1. **border-radius**:CSS3中的...
圆角边框常与其他CSS3特性一起使用,如渐变背景、阴影(`box-shadow`)和边框图像(`border-image`),以创建更复杂的视觉效果。例如,可以使用`border-image`创建带有渐变或图案的圆角边框。 总之,`border-...
对于跨浏览器兼容性,现代浏览器如Firefox、Chrome、Safari和Opera都对CSS3的box-shadow属性提供了良好的支持。然而,IE9及以下版本不支持此属性。为了解决这个问题,可以使用渐进增强的方法,为不支持box-shadow的...
CSS圆角是通过`border-radius`属性实现的,它允许我们创建出不再是直角的边框,从而为元素添加更加柔和和现代的视觉效果。 1. **CSS `border-radius` 属性详解** `border-radius`属性允许我们为元素的每个角落指定...
在这个案例中,这个HTC文件允许IE浏览器实现CSS3的圆角(border-radius)和阴影(box-shadow)效果。 1. **CSS3圆角(border-radius)**:在CSS3中,`border-radius`属性允许我们创建具有圆角边框的元素,而无需...
除了`border-radius`,CSS3还提供了其他增强界面视觉效果的属性,如阴影(`box-shadow`)、渐变(`linear-gradient`和`radial-gradient`)等。这些属性结合使用,可以创建出更加丰富和动态的网页元素。 总之,通过...