麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > CSS > 正文

網(wǎng)頁制作CSS教程:自適應(yīng)圓角

2024-07-11 09:03:29
字體:
供稿:網(wǎng)友

武林網(wǎng)(www.companysz.com)文章簡介:有時(shí)候我們不得不面對(duì)圓角,也很傻很天真的認(rèn)為利用 CSS3 的新特性對(duì)瀏覽器分級(jí)支持是最好解決方案.

前言

有時(shí)候我們不得不面對(duì)圓角,也很傻很天真的認(rèn)為利用 CSS3 的新特性對(duì)瀏覽器分級(jí)支持是最好解決方案,但現(xiàn)實(shí)≠理想…

需求困惑

經(jīng)典的解決方案看起來像這樣:

<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><title>傳統(tǒng)方案及bug</title><style>body{margin:100px;background-color:red;}div, p, b{margin:0;padding:0;}b{display:block;}.rc{display:inline-block;#display:inline;#zoom:1;}/* float 效果相同.rc{float:left;} */.rc1, .rc2, .rc .bd{border-style:solid;border-color:black;background-color:yellow;}.rc1, .rc2{height:1px;overflow:hidden;}.rc2, .rc .bd{border-width:0 1px;}.rc1{margin:0 2px;height:0;border-width:1px 0 0;}.rc2{margin:0 1px;}.rc .bd{padding:0 6px;line-height:1.5;}</style></head><body><div class="rc">    <b class="top"><b class="rc1"></b><b class="rc2"></b></b>    <div class="bd">        <p>FML!!!</p>    </div>    <b class="bottom"><b class="rc2"></b><b class="rc1"></b></b></div></body></html>

使 rc float: left 或 display: inline-block 或許能滿足需求,不過 IE 6&7 出現(xiàn) bug:IE6中依然顯示為dispaly:block,而IE7中top 和 bottom縮成一坨,不肯擴(kuò)展開來,而在 rc1/rc2/rc3 中插入文字

<b class="rc1">XXX</b>

則只能擴(kuò)展到文字XXX的寬度,無法與 bd 對(duì)齊!
如果你能搞定,麻煩留言告訴我一下 :)

解決

試了幾個(gè)方法均不通,也搜索不到這個(gè) bug,這時(shí)想到了 Google 系產(chǎn)品的 1px 圓角按鈕:

網(wǎng)頁制作CSS教程:自適應(yīng)圓角


這是前 Google 視覺設(shè)計(jì)師 Doug Bowman 的功勞,后轉(zhuǎn)會(huì)到Twitter(AD一下:@ytzong),Doug Bowman 為此寫過一篇博文《Recreating the button》 demo在此。不過demo 也僅僅是 demo,產(chǎn)品中使用的還是某對(duì)天才工程師夫婦的神作,他們有足夠的時(shí)間來做這項(xiàng)工作:

The magical inline-block solved everything, except in IE. That’s where the genius of Google engineers came in. They knew how to get tricks working in all browsers, and this technique interested a couple of them enough that they dedicated the time to make it work.

打開 Gmail,用 firebug 艸艸看了一下,心里暗罵一句:天才就是天才!
寫了個(gè)簡單的 demo(為了演示方便這里采用了盒諧的顏色):

<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><title>自適應(yīng)圓角</title><style>body{margin:100px;background-color:red;}div, p{margin:0;padding:0;}.div1, .div2, .div3{display:inline-block;#display:inline;#zoom:1;position:relative;border-style:solid;border-color:black;}.div1{border-width:1px;}.div2, .div3{#left:-2px;border-width:0 1px;background-color:yellow;}.div2{margin:0 -2px;}.div3{margin:1px -2px;padding:0 6px;line-height:1.5;}.pointer1, .pointer2{position:absolute;top:7px;width:0;height:0;overflow:hidden;border-top:6px transparent dotted;border-bottom:6px transparent dotted;}.pointer1{left:-9px;border-right:6px black solid;}.pointer2{left:-8px;border-right:6px yellow solid;}</style></head><body><div class="div1"><div class="div2"><div class="div3"><p>FML!!!</p></div></div><div class="pointer1"></div><div class="pointer2"></div></div></body></html>

效果如下:

網(wǎng)頁制作CSS教程:自適應(yīng)圓角


不僅滿足了需求,代碼量及結(jié)構(gòu)嵌套也很少。

代碼說明

可以看出:IE 6&7 bug 眾多的特點(diǎn)在此例中表現(xiàn)的淋漓盡致!

最后的話

阮一峰老師也寫過一篇《制作Gmail式按鈕》,配合強(qiáng)大的 jquery 來實(shí)現(xiàn)按鈕各種狀態(tài),最后的總結(jié)也很精彩,修改一下下:

雖然這種按鈕(圓角)的視覺效果比較理想,有很多設(shè)計(jì)上的優(yōu)點(diǎn),但是局限性也很大。一方面,它需要大量的冗余代碼,與語義網(wǎng)的原則相違背…

完美方案還是利用瀏覽器的自身特性提供對(duì)不同的瀏覽器分級(jí)支持,漸進(jìn)增強(qiáng)(比如 IE 下顯示為直角,對(duì)CSS 3支持較好的瀏覽器顯示為圓角),這才是開發(fā)效率、可維護(hù)性、語義、性能的最佳平衡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91短视频在线免费观看 | 成人在线免费视频观看 | 国产精品久久久久久影院8一贰佰 | 欧美亚洲一区二区三区四区 | 羞羞视频一区二区 | 一级α片免费看刺激高潮视频 | 黄色av片三级三级三级免费看 | 毛片av网 | 色妞欧美| 久久久av亚洲男天堂 | 中国妞xxxhd露脸偷拍视频 | 午夜国产在线观看 | 久久最新免费视频 | 久久影片 | 男人的天堂毛片 | 999精品国产 | 久国久产久精永久网页 | 国产精品免费观看视频 | 亚洲最大中文字幕 | 国内一区 | 国产成人在线网址 | 最近日本电影hd免费观看 | 在线看小早川怜子av | 免费毛片儿 | 蜜桃传媒视频麻豆第一区免费观看 | 久久久久电影网站 | 国产成人精品免高潮在线观看 | 国产一区二区精品免费 | 真人一级毛片免费 | 一级裸体视频 | 国产精品国产成人国产三级 | 在线免费观看欧美 | 毛片观看网址 | 97久色| 护士hd欧美free性xxxx | 99在线精品视频免费观看20 | 久久久精品视频国产 | 国产精品无码久久久久 | 国产1区视频 | 午夜视频福利 | 国产污污视频 |