在css中怎样让边角具有弧度

html-css081

在css中怎样让边角具有弧度,第1张

利用css3的border-radius属性,如:

<div style="width:200px height:100px border:1px solid red border-radius:5px"></div>

border-radius的值越大,边角的弧度就越大,将border-radius的值设置为50%的时候,可以将一个正方形变成圆形,如:

<div style="width:200px height:200px border:1px solid red border-radius:50%"></div>

在实现页面五花八门的有特色的ui时,我们有时会遇到要用实现一个弧形,而这样的弧形要怎么实现呢?用图片?不太优雅,这样就要无故多加载一张图片了,这里来说说怎么用css的after伪类来实现弧形。

写一个主元素,并给该元素添加伪类来设置成圆,取该圆的一部分来作为我们看到的圆弧。

第一种(正圆弧):

实现效果:

参照上面的 要点 ,大概也能知道个原理了吧。 看到的圆弧高度等于主元素高度,伪元素绝对于主元素定位,左右居中,上移100%;圆弧弧度取决于伪类的宽度 ,这点放到这里来说,是怕放在上面说反而让人觉得复杂了。

如果还不理解的话,可以把上面不必要的样式注释掉,辅助理解:

效果:

可以多调调高度宽度来帮助理解。

第二种(有角度的弧):

效果图:

实现角度弧的思路与正圆弧差不多,不同地方是:

不同点1. 伪元素大小与主元素一样,覆盖在主元素上;

不同点2. 设置伪元素的单个角度;

CSS的方法和图片的方法 CSS的话只对最新的浏览器有效 而图片的话所有浏览器都可以用

<style type="text/css">

.b1,.b2,.b3,.b4,.b1b,.b2b,.b3b,.b4b,.b{display:blockoverflow:hidden}

.b1,.b2,.b3,.b1b,.b2b,.b3b{height:1px}

.b2,.b3,.b4,.b2b,.b3b,.b4b,.b{border-left:1px solid #999border-right:1px solid #999}

.b1,.b1b{margin:0 5pxbackground:#999}

.b2,.b2b{margin:0 3pxborder-width:2px}

.b3,.b3b{margin:0 2px}

.b4,.b4b{height:2pxmargin:0 1px}

.d1{background:#F7F8F9}

.k {height:300px}

</style>

</head>

<body>

<div>

<b class="b1"></b><b class="b2 d1"></b><b class="b3 d1"></b><b class="b4 d1"></b>

<div class="b d1 k">

<font style="font-size:26pxcolor:redmargin:0px 10px">简洁型css圆角矩形</font>

</div>

<b class="b4b d1"></b><b class="b3b d1"></b><b class="b2b d1"></b><b class="b1b"></b>

</div>