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山寨的浏览器标签和原版仍是有些出入的,你发现了么?(没有的话,能够看看做者的说明。