你可以使用除CSS之外的其他任何東西來實現相當接近JPG的東西,但它會很棘手。另外,如果目標受衆只是移動用戶,那麼您不必擔心IE8及以下版本。如果沒有IE8及以下版本不支持的CSS3,那麼以純CSS做這件事是不可能的。
所以有CSS選項...那麼也可以是SVG選項。 SVG是矢量圖形,這意味着它們可以無限擴展,而不會出現在光柵圖形中看到的令人討厭的像素(如JPG)。也可以使用CSS來設置SVG的樣式......這意味着您可以通過修改某些CSS來更改懸停顏色或文本顏色。然後文本將被覆蓋在圖形的頂部。矢量圖形將允許您根據您的方向和屏幕大小向上或向下縮放圖像。
這與我所能得到的一樣好,因爲我必須和有限的時間一起工作。請注意,寬度,高度,角度等都可以調整,您的寬度可以根據百分比進行調整,以便更具動態性。
JSFiddle Demo
HTML:
<div class="container">
<div class="button">
</div>
<div class="button">
</div>
<div class="button">
</div>
<div class="button">
</div>
</div>
CSS:
.container {
width: 500px;
}
.button {
position: relative;
width: 300px;
height: 40px;
margin: 10px auto 0 auto;
background: #b9aea2;
box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
}
.button:first-child:before {
content: ' ';
position: absolute;
z-index: -1;
width: 40px;
height: 0px;
top: 14px;
left: -20px;
margin: 0px 0px 0 0px;
border-top: 20px solid transparent;
border-left: 15px solid white;
border-bottom: 20px solid transparent;
-webkit-transform: skew(-5deg);
-moz-transform: skew(-5deg);
-o-transform: skew(-5deg);
background: #b9aea2;
}
.button:last-child:before {
content: ' ';
position: absolute;
z-index: -1;
width: 40px;
height: 0px;
top: 14px;
right: -20px;
margin: 0px 0px 0 0px;
border-top: 20px solid transparent;
border-right: 15px solid white;
border-bottom: 20px solid transparent;
-webkit-transform: skew(5deg);
-moz-transform: skew(5deg);
-o-transform: skew(5deg);
background: #b9aea2;
}
.button:after {
content: ' ';
position: absolute;
display: block;
width: 240px;
height: 10px;
bottom: -10px;
left: 30px;
-webkit-transform: skew(-80deg);
-moz-transform: skew(-80deg);
-o-transform: skew(-80deg);
background: #6b6562;
}
.button:last-child:after {
width: 0;
height: 0;
background: transparent;
}
目標是Android 2.2 HTML5應用程序使用Phonegap,這意味着Webkit v533。經過測試的SVG,但出口的大小是相當大的一個移動應用程序(一個19kb PNG 1.7MB)等待你的CSS例如:) – numediaweb
@numediaweb檢查我的更新後,CSS示例已發佈。 – Michael
謝謝!你的代碼激勵我建立菜單;我只修改了第一個/最後一個孩子:在課前,添加了真實圖像作爲bg,以更好地模擬我的菜單風格。 – numediaweb