`

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

 
阅读更多

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那点事儿

    在CSS3中,border-radius、box-shadow和gradient是三个非常重要的样式属性,它们极大地提升了网页设计的美观性和表现力。让我们逐一深入探讨这三个概念。 首先,`border-radius`属性允许我们为元素的边框添加圆角,...

    border-radius兼容ie78

    它的主要目标是为旧版的IE浏览器提供对某些CSS3特性的支持,如`border-radius`、`box-shadow`、`linear-gradient`等。这个工具通过利用VML(Vector Markup Language),一个微软在IE中实现的矢量图形技术,来模拟...

    圆角魅力:CSS border-radius全攻略

    ### 圆角魅力:CSS `border-radius`全攻略 在当今网页设计中,圆角(border-radius)的应用已经成为提升用户体验及界面美观度的关键技术之一。它不仅赋予了用户界面更加柔和且现代的感觉,而且还能帮助设计师们实现...

    border-radius失效

    在CSS世界中,`border-radius`属性用于为元素添加圆角效果,使边框不再呈现为直角,而是呈现出各种半径的弧形。然而,有时候我们可能会遇到`border-radius`失效的问题,导致元素的边角无法按照预期显示为圆形或椭圆...

    CSS text-shadow,box-shadow,border-radius属性

    CSS中的text-shadow、box-shadow和border-radius属性是用于增强页面视觉效果的重要工具。这些属性自CSS3版本起被广泛采用,并在现代网页设计中扮演着至关重要的角色。下面将分别对这三个属性进行详细解释,并探讨...

    CSS3属性box-shadow使用指南

    今天比较忙,没能好好看新东西,就记录一个常用的CSS3属性吧:box-shadow,表示阴影,如果设置了border-radius圆角,则阴影也是圆角 box-shadow目前是IE9及以上和其他现代浏览器都支持的属性了。 语法: Formal ...

    让IE6、IE7、IE8支持CSS3的圆角、阴影样式

    CSS3 PIE通过VML(Vector Markup Language)来模拟圆角效果,并支持`border-radius`、`box-shadow`等属性。只需在HTML元素上添加特定的类名,然后在页面加载完成后调用该插件即可。 ```html &lt;div class="box pie...

    css3实现圆角矩形

    在CSS3中,不仅可以用`border-radius`创建圆角,还可以与其他属性结合,如`box-shadow`(阴影效果)、`background-image`(背景图片)等,创造出丰富的界面效果。例如,一个带有圆角、阴影和渐变背景的按钮可能如下...

    CSS制作圆角效果

    在网页设计中,CSS(Cascading Style Sheets)是一种用于定义HTML或XML(包括SVG、XHTML等)文档中元素外观、布局和结构的重要样式语言。...同时,结合`box-shadow`等其他CSS属性,还能实现更多高级和富有创意的效果。

    border-radius IE8兼容处理的方法

    值得注意的是,PIE库不仅限于`border-radius`,它还可以处理其他CSS3的一些属性,比如阴影(box-shadow)和渐变(gradient)。但需要注意的是,由于PIE依赖于JavaScript,因此在禁用JavaScript的环境下,这些效果将...

    CSS3实现圆角阴影渐变效果兼容IE等浏览器

    本文将深入探讨如何利用CSS3实现圆角、阴影和渐变效果,并确保这些效果在包括IE在内的主流浏览器中都能得到良好的兼容性。 首先,我们来讨论CSS3的圆角效果。在CSS3之前,为了实现圆角,开发者通常需要使用大量的...

    css-border-effects.zip

    5. **边框 radius**:`border-radius`属性用于创建圆角边框,可以分别设置四个角的圆角大小,或者使用`border-radius: 50%;`创建一个圆形元素。 6. **边框图片**:`border-image`属性允许使用图像作为边框,提供了...

    解决IE不兼容css3圆角和阴影问题

    本文将深入探讨如何解决IE浏览器对CSS3圆角和阴影的不兼容性问题。 首先,我们来理解CSS3中的圆角和阴影特性。圆角可以通过`border-radius`属性实现,它允许我们将直角边框转变为平滑的曲线边缘,为元素添加更为...

    ie-css3.htc 免费版

    在本例中,ie-css3.htc是一个JavaScript脚本,它模拟实现了CSS3的一些关键属性,如border-radius、box-shadow、linear-gradient等,使老版本的IE浏览器也能显示这些现代CSS3效果。 1. **border-radius**:CSS3中的...

    HTML5+CSS3 圆角边框的绘制.pdf

    圆角边框常与其他CSS3特性一起使用,如渐变背景、阴影(`box-shadow`)和边框图像(`border-image`),以创建更复杂的视觉效果。例如,可以使用`border-image`创建带有渐变或图案的圆角边框。 总之,`border-...

    css圆角,阴影,支持ie/firefox/chrome等全部浏览器

    对于跨浏览器兼容性,现代浏览器如Firefox、Chrome、Safari和Opera都对CSS3的box-shadow属性提供了良好的支持。然而,IE9及以下版本不支持此属性。为了解决这个问题,可以使用渐进增强的方法,为不支持box-shadow的...

    多种CSS圆角特效代码及演示

    CSS圆角是通过`border-radius`属性实现的,它允许我们创建出不再是直角的边框,从而为元素添加更加柔和和现代的视觉效果。 1. **CSS `border-radius` 属性详解** `border-radius`属性允许我们为元素的每个角落指定...

    ie-css3.htc(内有使用方法).rar

    在这个案例中,这个HTC文件允许IE浏览器实现CSS3的圆角(border-radius)和阴影(box-shadow)效果。 1. **CSS3圆角(border-radius)**:在CSS3中,`border-radius`属性允许我们创建具有圆角边框的元素,而无需...

    CSS 圆角 源代码 源代码 源代码

    除了`border-radius`,CSS3还提供了其他增强界面视觉效果的属性,如阴影(`box-shadow`)、渐变(`linear-gradient`和`radial-gradient`)等。这些属性结合使用,可以创建出更加丰富和动态的网页元素。 总之,通过...

Global site tag (gtag.js) - Google Analytics