一、传统圆角边框实现
利用纯CSS技术合成多张背景图片来解决,
优点:浏览器兼容ie8以下浏览器.
缺点:太过于复杂,放大后存在明显锯齿效果.
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>传统圆角框实现</title> <style> .wrap { margin: 10px 150px; } .b1, .b2, .b3, .b4, .b5, .b6, .b7, .b8 { height: 1px; font-size: 1px; display: block; overflow: hidden; } .b1,.b8{margin:0 5px;} .b2,.b7{margin:0 3px;border-right:2px solid; border-left:2px solid;} .b3,.b6{margin:0 2px;border-right:1px solid; border-left:1px solid;} .b4,.b5{margin:0 1px;border-right:1px solid; border-left:1px solid; height:2px;} .color .b2, .color .b3, .color .b4, .color .b5, .color .b6,.color .b7{ background-color: #EFF7FF; border-color: #96C2F1; } .color .b1, .color .b8 { background-color: #96C2F1; } .color .b2, .color .b3, .color .b4 { background-image: url(img/bg2.gif); background-repeat: repeat-x; } .color .b2,.color .b7 { background-position: left top; } .color .b3,.color .b6 { background-position: left -1px; } .color .b4,.color .b5 { background-position: left -2px; } /*内容样式*/ .content h3 { margin: 0; line-height: 29px; height: 29px; background-color: #9ac3d8; padding-left: 10px; } .content { border-left: solid 1px; border-right: solid 1px; background-color: #EFF7FF; border-color: #96C2F1; } .content div { padding: 10px; } </style> </head> <body> <div class="wrap"> <div class="sharp color"> <b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b> <div class="content"> <h3>CSS传统圆角框实现</h3> <div>利用纯CSS技术合成多张背景图片来解决,浏览器兼容性.</div> </div> <b class="b5"></b><b class="b6"></b><b class="b7"></b><b class="b8"></b> </div> </div> </body> </html>
二、利用CSS3实现圆角框
简单快速、高效,且存在诸多优点.
* 减少维护的工作量。图片文件的生成、更新、编写网页代码,这些工作都不再需要了。
* 提高网页性能。由于不必再发出多余的HTTP请求,网页的载入速度将变快。
* 增加视觉可靠性。某些情况下(网络拥堵、服务器出错、网速过慢等等),背景图片会下载失败,导致视觉效果不佳。CSS3就不会发生这种情况。
兼容ie圆角、投影使用PIE.htc
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>利用CSS3实现圆角框</title> <style> * { margin: 0; padding: 0; font-size: 12px; } .wrap { margin: 10px 150px; } .border h3 { font-size: 14px; height: 29px; line-height: 29px; -webkit-border-top-left-radius: 4px; -moz-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; -moz-border-top-right-radius: 4px; border-top-right-radius: 4px; border-top-left-radius: 4px; background: #EEFF99; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#EEFF99), to(#66EE33)); background: -webkit-linear-gradient(#EEFF99, #66EE33); background: -moz-linear-gradient(#EEFF99, #66EE33); background: -ms-linear-gradient(#EEFF99, #66EE33); background: -o-linear-gradient(#EEFF99, #66EE33); background: linear-gradient(#EEFF99, #66EE33); -pie-background: linear-gradient(#EEFF99, #66EE33); behavior: url(css/PIE.htc); padding-left: 10px; } .border { margin: 45px; background-color: #007bde; border: 1px solid #696; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: #666 0px 2px 3px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; background: #EEFF99; behavior: url(css/PIE.htc); } .border p { padding: 10px; } </style> </head> <body> <div class="wrap"> <div class="border"> <h3>CSS3实现圆角</h3> <p> 利用CSS3实现圆角生成方案 </p> </div> </div> </body> </html>
【资料参考】
https://msdn.microsoft.com/en-us/magazine/gg508841.aspx
http://www.ruanyifeng.com/blog/2010/12/detailed_explanation_of_css3_rounded_corners.html
http://www.zhangxinxu.com/wordpress/2010/07/pie使ie支持css3圆角盒阴影与渐变渲染/
http://css3pie.com