Mark Qin用HTML和CSS模拟了一个Chrome浏览器。
都是一些基本的CSS3的使用,并不复杂。各位有兴趣地可以试着也写一个。
唯一复杂的地方是浏览器标签的模拟。
可以看出,Chrome标签的基本特点如下:
- 梯形
- 有圆角
- 宽度自适应
用图片可以轻松搞定,但是怎么能用图片呢?作为一个有追求的前端,肯定要用纯CSS3实现啊!
标签的HTML很简单:
<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
关系。
.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。
.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山寨的浏览器标签和原版还是有些出入的,你发现了么?(没有的话,可以看看作者的说明。