IT兄弟连 HTML5教程 CSS3属性特效 圆角

5f16a58a57bc47108e1c532aebeafd05.jpg

传统的圆角生成方案,必须使用多张图片作为背景图案。CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9、Opera 10.5、Safari 5、Chrome 4和Firefox 4。

1  border-radius属性

CSS3圆角只需设置一个属性:border-radius(含义是"边框半径")。为这个属性提供一个值,就能同时设置四个圆角的半径。所有合法的CSS度量值都可以使用:em、px、百分比等等。比如,下面是一个div方框(宽高都是200px,背景为墨绿色,边框为2px的灰色实线),代码如下:

image/20191115/e58244e010890be82f401478be4a12ed

实现的效果如图1所示:

image/20191115/96bae8ea17d2955801764ef5b9827f85

图1 box最初样式

现在来为它设置50%的圆角,为css增加border-radius: 50%,CSS代码如下:

image/20191115/4aed09bcc9ea6814e08898edbb39fc11

这里通过为圆角属性值设置为50%,也就是,同时将每个圆角的"水平半径"和"垂直半径"都设置为50%,最后实现一个圆形。如图2所示:

  image/20191115/7862aa03960a90e6fe29fa94b5681d56

 图2  为box设定四角都为50%的圆角

border-radius可以同时设置1到4个值。(想想我们之前的margin与padding)如果设置1个值,表示4个圆角都使用这个值。如果设置两个值,表示左上角和右下角使用第一个值,右上角和左下角使用第二个值。如果设置三个值,表示左上角使用第一个值,右上角和左下角使用第二个值,右下角使用第三个值。如果设置四个值,则依次对应左上角、右上角、右下角、左下角(顺时针顺序)。

现在我们来为box的border-radius属性设置两个值border-radius: 50px 25px,来看看它的实现效果,CSS代码如下:

image/20191115/8dfff317225ead2d728882a34f85b741

实现的圆角效果,将box的左上角和右下角的圆角半径设为50px,右上角和左下角圆角半径设为25px。如图3所示:

image/20191115/2139ea5e8fb49d784924eff2dd30ca62 

图3  为box的border-radius设置两个值    

再来为box的border-radius属性设置三个值border-radius: 50px 10px 25px,来看看它的实现效果,CSS代码如下:

image/20191115/b1be947455ed28016c0a537a2b838ccb

实现的圆角效果,将box的左上角的圆角半径设为50px,右上角和左下角的圆角半径设为10px,右下角圆角半径设为25px。如图4所示:

image/20191115/7d3fa2a641a1e35dea98c2854d024a3d

图4  为box的border-radius设置三个值

最后我们为box的border-radius属性设置四个值border-radius: 50px 10px 25px 0,来看看它的实现效果,CSS代码如下:image/20191115/11fdcad7f2b789ac1a18dff81cbebccf

实现的圆角效果,将box的左上角的圆角半径设为50px,右上角的圆角半径设为10px,左下角的圆角半径设为25px,右下角圆角半径设为0。如图5所示:

image/20191115/45f27b3d96c419c19d4a360109d5822c

图5  为box的border-radius设置四个值

2  单个圆角的设置

除了同时设置四个圆角以外,还可以单独对每个角进行设置。对应四个角,CSS3提供四个单独的属性:

(1)border-top-left-radius

(2)border-top-right-radius

(3)border-bottom-right-radius

(4)border-bottom-left-radius

这四个属性都可以同时设置1到2个值。如果设置1个值,表示水平半径与垂直半径相等。如果设置2个值,第一个值表示水平半径,第二个值表示垂直半径。

现在,我们为单独为box的左上角设定50px的圆角,来看看它的实现效果,CSS代码如下:

image/20191115/b72020eb8af36f4c72b5b256abd48d5a

实现的圆角效果,将box的左上角的圆角半径设为50px。如图6所示:

image/20191115/62173f7f6ea4341eb254090b3c2cfee5

图6 为box设置左上角的圆角

虽然各大浏览器都支持border-radius,但是在某些细节上,实现都不一样。当四个角的颜色、宽度、风格(实线框、虚线框等)、单位都相同时,所有浏览器的渲染结果基本一致;一旦四个角的设置不相同,就会出现很大的差异。另外,并非所有浏览器,都支持将圆角半径设为一个百分比值。

因此,目前最安全的做法,就是将每个圆角边框的风格和宽度,都设为一样的值,并且避免使用百分比值。

猜你喜欢

转载自www.cnblogs.com/itxdl/p/11903458.html
今日推荐