|
|
|
|
|
在前文中介紹過CSS3實(shí)現(xiàn)圓角的方法,代碼更少更簡單,不過由于其不兼容IE8瀏覽器,所以就目前IE8仍然占一定用戶比例的情況下,CSS3要完全取代CSS還不太現(xiàn)實(shí)。因此本文將介紹純CSS實(shí)現(xiàn)圓角的4種寫法,該方法對比CSS3的優(yōu)勢是不用考慮瀏覽器的兼容問題。
純CSS實(shí)現(xiàn)圓角
html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>純CSS實(shí)現(xiàn)圓角,比CSS3兼容性更好</title>
<style>
.wrap{font:14px Arial,sans-serif; color:#fff;}
.wrap .divide{height:20px;}
.floatMethod{
width:350px;
height:32px;
background:url('images/roundBox_middle.gif') left top repeat-x;
}
.floatMethod .middle{
float:left;
line-height:32px;
padding:0 0 0 10px;
}
.floatMethod .left{
float:left;
width:6px;
height:32px;
background:url('images/roundBox_left.gif') left top no-repeat;
}
.floatMethod .right{
float:right;
width:8px;
height:32px;
background:url('images/roundBox_right.gif') left top no-repeat;
}
</style>
</head>
<body>
<div class="wrap">
<div class="floatMethod">
<div class="left"></div>
<div class="middle">實(shí)例1</div>
<div class="right"></div>
</div>
</div>
</body>
</html>
代碼分析:
1) 需要用到3張圖片,分別是左圓角、右圓角和中間背景圖。
2).left .middle .right 左中右三層排列均使用 float 浮動屬性。
html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>純CSS實(shí)現(xiàn)圓角,比CSS3兼容性更好</title>
<style>
.wrap{font:14px Arial,sans-serif; color:#fff;}
.wrap .divide{height:20px;}
.newFloatMethod{
width:350px;
height:32px;
}
.newFloatMethod .middle{
line-height:32px;
margin:0 8px 0 6px;
padding:0 0 0 10px;
background:url('images/roundBox_middle.gif') left top repeat-x;
}
.newFloatMethod .left{
float:left;
width:6px;
height:32px;
background:url('images/roundBox_left.gif') left top no-repeat;
}
.newFloatMethod .right{
float:right;
width:8px;
height:32px;
background:url('images/roundBox_right.gif') left top no-repeat;
}
</style>
</head>
<body>
<div class="wrap">
<div class="newFloatMethod">
<div class="left"></div>
<div class="right"></div>
<div class="middle">實(shí)例2</div>
</div>
</div>
</body>
</html>
代碼分析:
1)跟實(shí)例1一樣,同樣需要3張圖片,分別是左圓角、右圓角和中間背景圖。
2)跟實(shí)例1不同的是,這里的 .middle 中間層不再使用 float 浮動層了。
html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>純CSS實(shí)現(xiàn)圓角,比CSS3兼容性更好</title>
<style>
.wrap{font:14px Arial,sans-serif; color:#fff;}
.wrap .divide{height:20px;}
.slidingDoorMethod{
width:350px;
height:32px;
background:url('images/roundBox_left.gif') left top no-repeat;
}
.slidingDoorMethod .inner{
line-height:32px;
margin:0 0 0 6px;
padding:0 0 0 10px;
background:url('images/roundBox_slidingDoor_right.gif') right top no-repeat;
}
</style>
</head>
<body>
<div class="wrap">
<div class="slidingDoorMethod">
<div class="inner">實(shí)例3</div>
</div>
</div>
</body>
</html>
代碼分析:
1)同樣該方法需要圖片來配合,不過這里僅需要兩張圖片即可,不像前兩種方法要3張圖片。
2)這個(gè)方法代碼也更少。使用了一個(gè)內(nèi)嵌標(biāo)簽 .inner ,外部標(biāo)簽 .slidingDoorMethod 為左圓角,內(nèi)嵌的標(biāo)簽 .inner 包含了背景與右圓角。
html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>純CSS實(shí)現(xiàn)圓角,比CSS3兼容性更好</title>
<style>
.wrap{font:14px Arial,sans-serif; color:#fff;}
.wrap .divide{height:20px;}
.negativeMarginMethod{
width:350px;
height:32px;
}
.negativeMarginMethod .topLeft{
height:5px;
_overflow:hidden;
background:url('images/roundBox_negativeMargin.gif') left top no-repeat;
}
.negativeMarginMethod .topRight{
height:5px;
_overflow:hidden;
margin:-5px 0 0 5px;
background:url('images/roundBox_negativeMargin.gif') right top no-repeat;
}
.negativeMarginMethod .title{
line-height:28px;
padding:0 0 0 15px;
background:url('images/roundBox_middle.gif') left top repeat-x;
}
</style>
</head>
<body>
<div class="wrap">
<div class="negativeMarginMethod">
<div class="topLeft"></div>
<div class="topRight"></div>
<div class="title">實(shí)例4</div>
</div>
</div>
</body>
</html>
代碼分析:
1)該方法也要用到2張圖片。
2)主要利用負(fù)Margin 技術(shù)(margin:-5px 0 0 5px;)讓倆個(gè)div 重疊,巧妙設(shè)計(jì)出倆個(gè)圓角,實(shí)現(xiàn)出圖片圓角效果。
上面介紹了純CSS實(shí)現(xiàn)圓角樣式效果的4種寫法,這些方法都要用到圓角圖片來輔助完成。在使用這些方法前,要制作好相應(yīng)的圓角圖片和背景圖片,因此要求你懂一點(diǎn)圖片制作技術(shù)。
就實(shí)現(xiàn)代碼而言,實(shí)例3是代碼最少的,圖片也只需要兩張,因此只值得推薦的寫法。
CSS+圖片實(shí)現(xiàn)圓角的樣式效果,不受瀏覽器限制,這是其相對于CSS3的優(yōu)點(diǎn)。但隨著IE8用戶日漸減少,可以預(yù)見,CSS3的寫法將會越來越多人采用,畢竟其寫法十分簡單,掌握起來也更加容易,更難得的是,它不再需要制作額外的圖片來配合了。