div css圆角边框怎么设置?除了用图片的方法以外还有其他方法吗?

html-css015

div css圆角边框怎么设置?除了用图片的方法以外还有其他方法吗?,第1张

1、css圆角实现的方式有很多种,最简单最方便的是使用border-radius属性。或者使用圆角图片。

2、border-radius后面直接接数值。

3、图片圆角就是事先切除圆角图片,可以制作定高,或者定宽的div。

4、使用border-radius的优点是无序添加多余结构代码,但是对于低版本的浏览器支持有问题。使用图片圆角不会有兼容问题,但是会多出多余的代码和结构。

举例说明CSS圆角在CSS2和CSS3里的实现方法

在网页设计越来越精美的今天,圆角的应用已经越来越广泛这篇文章将分别讲述圆角在CSS2和CSS3里的创建方法。

从易用性来说,CSS3不需要额外的标记和图片,遂宁做网站比CSS2要先进得多。但当应用在网站上时,采用CSS2能使页面在主流浏览器上的效果更加一致。 下面将详细阐述创建圆角的各种方法和其对浏览器的兼容性。

用CSS2创建圆角的方法

1.固定宽度的圆角

这个是最简单的方法最多只需要使用两个图片(顶部和底部),并且也不需要添加额外的标记。在这里,我使用以下两个图片做背景:

优点:

用最少的标记和图片实现了圆角效果(CSS好点的童鞋只要一个图片就可以搞定了)。

缺点:

不够灵活,每次更改框架的宽度都要更新背景图片。

2.灵活的圆角

为了能让圆角更加灵活,我们可以把容器里的每个圆角都做成一个独立的元素,通过CSS强行定位到父容器的四个角上。在这个方法里,我们只需要用到右 边这个图片。

优点:

能自动适应父容器的大小,浏览器兼容性非常强。

缺点:

为了实现圆角,添加了一些没有意义的标记。

用CSS3创建圆角的方法

1.Border radius(边界半径)

W3C建议已经建议为boder增加几个属性选项,其中之一就是border-radius,目前这个属性已经被Firefox和Safari 3(Chrome)支持,比较遗憾的是IE不支持此属性。

优点:

这种方法不需要添加任何多余的标记,而且可以非常方便睇修改圆角的半径,是最易上手的方法。

缺点:

虽然符合W3C的标准,但缺乏浏览器支持。

2.多个背景图片

CSS3对background属性做出了一些重大改进,在CSS3标准里,我们可以把多个背景图片应用到同一个元素里。我们利用这个特性为容器加 上圆角效果。HTML代码与上例保持一致,在CSS中需要先把四个圆角的图片分别做好

优点:

没有多余的标记,可以分别设置每个圆角的半径。

缺点:

使用了W3C未明确定义的方法,浏览器兼容性很差,目前只有Safari和Chrome对此方法支持良好。

3.Border Image(图形边界)

使用图片作为border将是未来使用最广泛的CSS属性之一,这个属性是对border-style的升级。此属性允许您切片成的规则的9个不同部分的 图像,然后在浏览器便会作为border的基本形状来进行渲染。如右图,这种技术称为九切片缩放,可以避免圆角出现失真。我们不需要手动切开图片,CSS 能帮我们实现切片功能。

优点:

不需要添加多余的标记,使用非常简单,而且可以自由改变每个圆角的半径。

缺点:

W3C并为确定这个属性的使用方法,目前只可以用浏览器的私有属性实现,浏览器兼容性较差。目前支持这个方法的游览器有 Firefox,Chrome,Safari,Opera。

后记:

网页圆角的实现方法是目前争议较大的一个话题。还有一个通过由若干个不同宽度的Div组合做出圆角的方法,该方法对浏览器的兼容性是最强的,由于篇 幅所限,没有提及。虽然本文提及的方法都有明显的缺点,但在浏览器更新越来越快的今天,我们可以预见旧式浏览器将很快被淘汰,权当是对未来CSS写法的预 习吧。

不用图片,只用css制作圆角的另一方法。html代码:<divclass="curvedBox"><span><spanclass="r1" ></span><spanclass="r2" ></span><spanclass="r3" ></span><spanclass="r4" ></span></span><divclass="content">Flex is a cross-platform development framework for creating rich Internet applications (RIAs). Flex enables you to create expressive, high-performance applications that run identically on all major browsers and operating systems. </div><span><spanclass="r4" ></span><spanclass="r3" ></span><spanclass="r2" ></span><spanclass="r1" ></span></span></div>css代码: ody{background-color:#000}.curvedBox{width:300pxmargin: 2510px auto 0}.curvedBox .r1,.curvedBox .r2,.curvedBox .r3,.curvedBox .r4{background-color:#fffdisplay:blockoverflow:hiddenheight:1pxfont-size:1px}.curvedBox .r2,.curvedBox .r3,.curvedBox .r4{border-width:0 1pxborder-left:1px solid #fffborder-right:1px solid #fff}.curvedBox .r1{margin:0 6px}.curvedBox .r2{margin:0 3px}.curvedBox .r3{margin:0 2px}.curvedBox .r4{margin:0 1pxheight:2px}.curvedBox .content{background:#fffborder-left:1px solid #fffborder-right:1px solid #fffpadding:0 5px}这个方法其实并不完美,其实只是利用了”无限接近”的一个概念。看放大后的图的话,可以很清楚地看到锯齿状。锯齿其实把图片放大足够地倍数地话,也能看到锯齿,不过放大地倍数得相当大了。将 r1 r2 r3 r4 层叠起来,利用它们 margin(left/right) 的改变以及 border(left/right),来实现这个近似的效果。理论上,如果 rn 足够多的话,效果就会无限趋近圆弧。不过话又说回来了,多加这么多的标签和css的话,在效率上必然会存在问题,也说不上就比用图片好到哪里去。所以说,这只是提供一个思路,到底怎么用,用在哪里,还得因地制宜。