`

CSS圆角

    博客分类:
  • CSS
阅读更多

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

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

注:本文以第一个配图的效果作为演示。

用CSS2创建圆角的方法

1.固定宽度的圆角

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

HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="box">
<h2>This is a heading</h2>
Lorem ipsum dolor sit amet,
 consectetur adipiscing elit. Sed
vehicula ligula eu diam tincidunt
fermentum. Curabitur facilisis
enim non libero cursus eu varius
enim suscipit. Ut venenatis
vehicula lorem ut hendrerit. Ut
adipiscing augue sed ante volutpat
eget ornare erat facilisis. In hac
habitasse platea dictumst.
</div>
CSS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.box {
      width:200px;
      background-color:#EE2E24;
      background:url("img/rounded-top.jpg") no-repeat left bottom;
      color:#fff;}
 
.box h2 {
     background:url("img/rounded-top.jpg") no-repeat left top;
     padding: 10px 10px 0 10px;
}
 
.box p {
     padding: 10px;
}
优点:

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

缺点:

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

2.灵活的圆角

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

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="box">
<span class="crnr tl"></span>
<span class="crnr tr"></span>
<h2>This is a heading</h2>
Lorem ipsum dolor sit amet,
 consectetur adipiscing elit. Sed
vehicula ligula eu diam tincidunt
fermentum. Curabitur facilisis
enim non libero cursus eu varius
enim suscipit. Ut venenatis
vehicula lorem ut hendrerit. Ut
adipiscing augue sed ante volutpat
eget ornare erat facilisis. In hac
habitasse platea dictumst.
<span class="crnr bl"></span>
<span class="crnr br"></span>
</div>
CSS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
.box {
        position:relative;
        width:200px;
        height:200px;
        }
 
.crnr {
        position:absolute;
        background:url("img/crnr-sprite.jpg") no-repeat;
        width:20px;
        height:20px;
       }
 
.tl {
     left:0;
     top:0;
     background-position: 0 0 ;
     }
 
.tr {
     right:0;
     top:0;
     background-position: -25px 0 ;
     }
 
.bl {
     left:0;
     bottom:0;
     background-position: 0 -25px ;
     }
 
.br {
     right:0;
     bottom:0;
     background-position: -25px -25px ;
     }
优点:

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

缺点:

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

用CSS3创建圆角的方法

1.Border radius(边界半径)

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

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="box">
<h2>This is a heading</h2>
Lorem ipsum dolor sit amet,
 consectetur adipiscing elit. Sed
vehicula ligula eu diam tincidunt
fermentum. Curabitur facilisis
enim non libero cursus eu varius
enim suscipit. Ut venenatis
vehicula lorem ut hendrerit. Ut
adipiscing augue sed ante volutpat
eget ornare erat facilisis. In hac
habitasse platea dictumst.
</div>
CSS:
1
2
3
4
5
6
7
8
.box {
        width:200px;
        height:200px;
        background-color:#EE2E24;
        -moz-border-radius: 20px;
	-webkit-border-radius: 20px;
        border-radius: 20px;
}
优点:

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

缺点:

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

2.多个背景图片

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

CSS:
1
2
3
4
5
6
.box {
        background: url(top-left.gif) top left no-repeat,
        url(top-right.jpg)  top right no-repeat,
        url(bottom-left.gif) bottom left no-repeat,
        url(bottom-right.gif) bottom right repeat-y;
}
优点:

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

缺点:

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

3.Border Image(图形边界)

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

CSS:
1
2
3
4
.box {
        -webkit-border-image : url (box.jpg) 20% 20% 20% 20% round round;
        -moz-border-image : url (box.jpg) 20% 20% 20% 20% round round;
}
优点:

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

缺点:

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

后记:

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

原文:Creating rounded corners with CSS2 & CSS3。有删改。

 

分享到:
评论

相关推荐

    无懈可击的CSS圆角边框(自由伸缩)

    ### 无懈可击的CSS圆角边框(自由伸缩) #### CSS圆角边框技术解析 在网页设计中,圆角边框是一种常见的视觉元素,能够为页面带来更加柔和、美观的效果。然而,当涉及到创建一个可以自由伸缩的圆角边框时,就需要...

    css圆角边框css圆角边框css圆角边框

    css圆角边框css圆角边框css圆角边框css圆角边框css圆角边框

    CSS圆角组件CSS圆角组件

    其中,CSS圆角组件是CSS3引入的一项重要特性,它使得我们可以为网页元素创建平滑、优雅的圆角边框,从而提升用户界面的美观度和现代感。本篇将深入探讨CSS圆角组件的使用方法、兼容性以及实际应用。 首先,实现CSS...

    css圆角css圆角

    CSS圆角是网页设计中一个重要的视觉效果,它允许元素的边角呈现出平滑的圆形或椭圆形,而不是传统的直角。在CSS中,我们使用`border-radius`属性来实现这个效果,它提供了对元素四角半径的控制,使得元素的外观更加...

    css 圆角实现例子

    css 圆角实现例子,无图实现CSS圆角

    css 圆角 很简单的css圆角~让你突破css的困扰

    很简单的css圆角~让你突破css的困扰

    css圆角提示框.zip

    【CSS圆角提示框】是一种常见的前端开发技术,主要用于创建具有视觉吸引力且用户体验良好的提示信息。在本案例中,我们看到的"css圆角提示框.zip"是一个包含纯HTML和CSS代码的压缩包,用于展示如何在不同浏览器上...

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

    这个压缩包“多种CSS圆角特效代码及演示”显然是一个包含各种CSS圆角效果实现的资源集合,适合设计师和开发者学习和参考。CSS圆角是通过`border-radius`属性实现的,它允许我们创建出不再是直角的边框,从而为元素...

    自适应宽度的CSS圆角背景的按钮

    总结起来,创建自适应宽度的CSS圆角背景按钮,主要依赖于`border-radius`属性实现圆角效果,利用`display: inline-block;`和不设定固定宽度实现自适应宽度,以及通过适当的内填充和文本对齐方式保持内容居中。通过...

    CSS圆角制作器 v1.0

    CSS圆角制作器 v1.0 是一个专门用于生成CSS圆角样式的在线工具,它简化了设计过程,使得创建具有圆润边缘的网页元素变得轻而易举。 **一、CSS3圆角边框** CSS3中的`border-radius`属性是实现圆角边框的关键。通过...

    简洁型css圆角矩形

    #### 一、CSS圆角矩形概述 在Web设计中,使用CSS创建圆角矩形可以提升网站的视觉效果。本文档介绍了两种不同的方法来实现圆角矩形:一种是简洁型CSS圆角矩形;另一种是带有3D效果的CSS圆角矩形。 #### 二、简洁型...

    百度百科里的CSS圆角效果.rar

    "百度百科里的CSS圆角效果.rar"这个压缩包文件,很可能是包含了一个示例,展示了如何在实际项目中应用CSS圆角效果。 CSS圆角效果主要通过`border-radius`属性实现。这个属性允许我们设置元素边框四个角落的圆润程度...

    很不错的css圆角[百度有啊]

    在标题“很不错的css圆角[百度有啊]”和描述“代码简结,重复利用高很不错的css圆角[百度有啊]”中,我们看到对CSS圆角的高度评价,这表明这是一种简洁且高效的设计技巧。 要理解CSS圆角,首先我们需要知道如何通过...

    纯CSS圆角 很简单

    标题"纯CSS圆角 很简单"和描述都强调了使用CSS实现圆角效果的简便性。本文将深入探讨如何使用CSS创建圆角,以及这一技术的基本原理和相关属性。 首先,CSS3引入了一组新的边框属性,使得创建圆角变得非常直观。这些...

    css圆角.docx

    本文将深入探讨四种常见的CSS圆角框实现方法。 1. **无图片纯CSS圆角框**: - **优点**:兼容所有浏览器,无需额外图片资源。 - **缺点**:需要添加大量无语义的HTML标签,结构冗余,不利于重用。若需调整不同...

    不错的css圆角

    "不错的css圆角"这个主题涉及到CSS中的边框半径属性,它允许我们轻松地为任何元素添加圆角效果。 CSS边框半径属性(border-radius)是在CSS3中引入的,用来取代早期的一些复杂方法,如使用图片或者JavaScript来实现...

    div css圆角代码各种圆角表格_圆角边框css圆角

    在网页设计中,`div` 和 `CSS` 是不可或缺的部分,尤其当涉及到界面美观和用户体验时,圆角设计显得尤为重要。圆角边框不仅能够使网页元素看起来更加柔和,还能提升整体设计的现代感。本篇文章将深入探讨如何使用 `...

    css兼容包-CSS圆角、阴影

    "css兼容包-CSS圆角、阴影"正是为了解决这个问题而存在的。 标题中的“CSS圆角”是指CSS3中引入的一种样式,允许我们为元素的边角设置圆润的效果,而不是传统的直角。`border-radius`属性是实现这一效果的关键。它...

    css 圆角边框 样式表

    本文将深入探讨CSS圆角边框的原理以及如何在实际网页设计中应用。 一、CSS圆角边框的原理 CSS3引入了`border-radius`属性,允许我们设置元素边框的圆角半径。这个属性可以接受一到四个值,分别对应元素的上左、上...

Global site tag (gtag.js) - Google Analytics