>웹 프론트엔드 >JS 튜토리얼 >페이지 둥근 상자 메소드 list_jquery의 CSS Jquery 구현

페이지 둥근 상자 메소드 list_jquery의 CSS Jquery 구현

WBOY
WBOY원래의
2016-05-16 18:38:241292검색

所以我就想用一个既方便调用又方便更新的方法来实现,结果如愿以偿。先将此技术点总结如下:

在此之前我也寻找过目前网络上最流行的做法的实现方案,大体共总结出7种方法,但是发现他们的方法多多少少都存在缺陷,后来我自己做出了我自己觉得满意的方法。
先看目前网络上最流行的7种做法:

1,无图片纯css圆角框

收录理由:兼容性强,不用图形

图一

特点:

1.不用任何图形,使用很多个div容器模拟出圆角效果。

2.兼容性:通杀所有浏览器

缺点:

1.构造这个圆角需要加入太多的无语义的标签,结构比较冗余。

2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,则其灵活性不够。

3.边框颜色虽然可以调节,但会对页面中的结构产生致命的影响,适用于色彩单一并且一个页面中圆角应用不多的页面。

4.不容易实现圆弧内有渐变色的图形背景。

5.圆角框不够圆滑,有锯齿现象,适合于背景色和当前色色差不大并且圆弧较小的网页。

实现原理:

用很多1像素高的div容器,利用背景色和边框色来模拟出圆角框的轮廓线。

实例演示: http://www.cssplay.co.uk/boxes/snazzy.html

2,无图片纯css圆角框,用特殊字符(&bull)

收录理由:圆滑,不用图形

图二

特点:

1.不用任何图形,使用特殊字符•(圆点)模拟出圆角。

2.兼容性:通杀所有浏览器

3.圆角平滑

缺点:

1.构造这个圆角一样需要加入无语义的标签,结构冗余,同第一种一样。

2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,需要调整四个角图片的定位,并且字符大小对其有影响,灵活性不够。

3.颜色虽可调节,但要求里面的背景色和字符的颜色相同,不能做成边框线条。适用于色彩单一并且一个页面中圆角不是太多的页面。

4.一样不容易实现圆弧内有渐变色的图形背景。

实现原理:

用特殊字符(&bull),利用定位,截取四分之一圆模拟出圆角框的一个角图片。

实例演示:http://www.cssplay.co.uk/boxes/curves.html

3,图片圆角框

收录理由:兼容性强,可以表现很复杂的圆角效果。

图三

特点:

1.使用四个圆角图形(或一个圆图片)。

2.兼容性:通杀所有浏览器。

3.这是最常用的圆角框做法。

4.因为采用图片来表现,所以其圆角是超级平滑,无任何锯齿现象。

5.表现丰富,适用于各种对图片表现要求较高的圆角框。

缺点:

1.构造这个圆角也需要加入四个标签来装四张角图片,结构也有冗余。

2.重用性不强:如果一个页面有多个圆角,并且要实现不同的半径大小,则要重新制作一套圆角图片。

3.如果对结构的冗余没有特别的需求,这就是超级圆滑圆角框的解决方案了。

实现原理:

利用九宫格原理,在一个容器的四个角加入绝对定位(或相对定位)的四张圆角图片。

实例演示:http://www.cssplay.co.uk/boxes/three_cornered.html

4,利用VML绘制圆角(ie only)

收录理由:无图片,平滑,可加阴影边框

图四

特点:

1.不用任何图形。

2.兼容性:只能在IE中使用

3.圆角半径随意调整

4.重用性强:多个圆角任意调用。

5.圆角颜色随意设置。

6.结构无冗余。

7.圆角平滑无锯齿。

缺点:

1.除了兼容性 有问题外,其它方面的表现都不错。

2.不能在圆弧中表现丰富的有渐变的图片,因为圆弧外框是透明的。

实现原理:使用IE专用的VML来画出圆角。

id=”roundbox”

class=”circle”

strokecolor=”red”

strokeweight=”2px”

arcsize=”0.08″>

注意加入引用空间:

这是兼容的用法,xmlns:v一定不能少,否则。。。

样式表中加入这一句话:

v”:*{behavior:url(#default#VML);display:inline-block;}

Arcsize为半径

Strokeweight为边框线宽度

Strokecolor为边框线的颜色

实例演示:(请在IE系列浏览器下查看本实例)

 

VML画平滑圆角

使用IE专用的VML来画平滑圆角框,还可以画出阴影效果。就其图形表现来说,是非常完美的。

5,利用私有属性绘制圆角(FF3 only)

收录理由:平滑无锯齿

图五

特点:

1.不用任何图形。

2.兼容性:只能在FF3中使用,其它浏览器不受支持。

3.圆角半径随意调整

4.重用性强:多个圆角任意调用,只需要样式表设置就可以。

5.圆角颜色随意设置。

6.结构无冗余。

7.圆角平滑无锯齿。

缺点:

1.除了兼容性 有问题外,其它方面的表现都不错,这种方式应该是最完美的方式,可惜目前只有FF3能支持这个属性,以后CSS3后会支持这个属性,不过这不知道要等到多少年以后。

2.同第五种圆角一样,在处理圆弧内的图片背景时显得有些有心无力。

实现原理:

使用FF3专用的私有属性来画出圆角。

只用两种属性就能体现圆滑的圆角框

-moz-border-radius:10px;

Border:5px red solid;

实例演示:(请在FF3浏览器下观看,其它浏览器不支持)

 

FF3私有属性画的圆角框

FF3下的圆角框两个属性就可以解决:

-moz-border-radius:半径

border:边框

6,无图片脚本圆角框(js半完美解决方案)

这种方案目前应该是比较完美的方案了。

图六

特点:

1.不用任何图形。

2.兼容性:通杀所有浏览器

3.圆角半径随意调整

4.重用性强:多个圆角任意调用。

5.颜色随意设置,并且可以使用复杂的图片做为背景,表现丰富。

6.结构无冗余,只需要在容器上定义一个class或ID就可以将这个div变成圆角。

7.圆角平滑。

缺点:

1.客户端禁用JS时就无圆角,不过在目前情势下,这种情况应该不会成为太大的问题。

实例演示:http://www.curvycorners.net/examples.php(有三个演示例子)

7,无图片vml/canvas结合的圆角框

增补一种方案,结合jquery/vml/canvas的无图片圆角框。

图七

特点:
1.不用任何图形。
2.兼容性:通杀所有浏览器
3.圆角半径随意调整,并且四个角可以随意设置要不要圆角。
4.重用性强:多个圆角任意调用。
5.颜色随意设置,并且可以使用复杂的图片做为背景,表现丰富。
6.结构无冗余,只需要在容器上定义一个class或ID就可以了。
7.圆角平滑。
缺点:
1.本圆角需要用到jquery库,和一个JS文件,如果在您的项目中已经用到了Jquery这个库,倒还可以用得上,不然,为一个圆角加载一两个JS文件有点得不偿失。
2.圆角在不同的浏览器下显示有点小小的问题.
实例演示:http://labs.parkerfox.co.uk/cornerz/

结语:目前的css因为不能为一个容器中定义多张背景图片,造成了为了这种圆角效果而加入冗余标签。听说CSS3会引入这一属性,可能到哪时,就是 圆角框统一的时候了。另外也听说在CSS3中有意向加入像FF3私有属性(-moz-border-radius)的方法,这也可以完美地解决这个问题。 但在目前的情势下,可能也只有用上面的这些方法来过渡了,强烈期待CSS3的到来。

간단히 말하면, 현재 상황에서는 절대적으로 완벽한 둥근 모서리 프레임을 달성하는 것이 기본적으로 불가능하므로 "반완벽한 솔루션"이라고 합니다.

---------------------------------- --- ---------------------------------- --- --------------------------------

내 솔루션: 모서리가 4개인 CSS Jquery 둥근 모서리 이미지

1단계: http://jquery.com/ 웹사이트로 이동하여 전체 프로젝트에서 참조할 jquery-1.3.2.min.js 파일을 다운로드합니다.
가 페이지, src의 경로는 상황에 따라 변경된다는 점에 유의하세요.
2단계: 둥근 모서리 상자를 구현해야 하는 페이지에 Jquery 메소드를 작성합니다(Jquery는 JS의 프레임워크 기술입니다).
소스 코드:

코드 복사 코드는 다음과 같습니다.








< /div>

JS 코드:
코드 복사 코드는 다음과 같습니다.

< ;script type="text/JavaScript">
$(".corner").prepend("
");
$(".corner").after("
")


생성된 HTML 코드:
코드 복사 코드는 다음과 같습니다.


value="Export" name="ctl00 $CphContent$ctl00"/>
submit" value="연속 인쇄" / >





3단계: 원하는 둥근 모서리를 얻기 위해 CSS 스타일을 편집합니다.


요약: 모서리가 둥근 DIV 블록의 소스 코드가 class="corner"인 경우 JS 코드를 호출하면 모서리를 둥글게 만들고 싶은 div 태그를 생성할 수 있습니다. 둥근 모서리 블록을 만들 때마다 해당 코드를 수동으로 추가하면 작업이 단순해지고 소스 파일이 명확하고 간결해 개발자와 UI 담당자가 편리하게 사용할 수 있습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.