Mark Qin用HTML和CSS模擬了一個Chrome瀏覽器。css
Demo在此。html
都是一些基本的CSS3的使用,並不複雜。各位有興趣地能夠試着也寫一個。前端
惟一複雜的地方是瀏覽器標籤的模擬。css3
能夠看出,Chrome標籤的基本特色以下:web
用圖片能夠輕鬆搞定,可是怎麼能用圖片呢?做爲一個有追求的前端,確定要用純CSS3實現啊!chrome
標籤的HTML很簡單:segmentfault
<ul class="tabs"> <li>新標籤頁</li> <li class="selected">百度一下,你就知道</li> <li>新標籤頁</li> </ul>
梯形的兩端用:before
與 :after
輕鬆搞定。瀏覽器
.tabs li:before, .tabs li:after { width: 16px; height: 24px; content: " "; border: 1px solid #3b5c95; }
處理定位的時候須要注意元素間的z-index
關係。spa
.tabs li { display: inline-block; position: relative; z-index: 0; } .tabs li:before, .tabs li:after { position: absolute; z-index: 3; } .tabs li:before { left: -12px; } .tabs li:after { right: -12px; }
變形則使用CSS3的transform。code
.tabs li:before { -o-transform: skew(-22deg); -ms-transform: skew(-22deg); -moz-transform: skew(-22deg); -webkit-transform: skew(-22deg); transform: skew(-22deg); } .tabs li:after { -o-transform: skew(22deg); -ms-transform: skew(22deg); -moz-transform: skew(22deg); -webkit-transform: skew(22deg); transform: skew(22deg); }
好了,差很少大功告成了。接下來還要稍微調整下,對照Chrome瀏覽器填充下漸變色,高度、寬度、位置也須要微調一下。
這個CSS3山寨的瀏覽器標籤和原版仍是有些出入的,你發現了麼?(沒有的話,能夠看看做者的說明。