このライブデモをチェック
コードは次のとおりです。
.header_background {
position: relative;
background: #FFF;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwLjUiIHN0b3AtY29sb3I9IiNGRkZGRkYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDQ0NDQ0MiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZzEpIiAvPjwvc3ZnPg==);
background-image: -webkit-gradient(linear, center top, center bottom, color-stop(50%, #FFFFFF), color-stop(100%, #CCCCCC));
background-image: -webkit-linear-gradient(top, #FFFFFF 50%, #CCCCCC 100%);
background-image: -moz-linear-gradient(top, #FFFFFF 50%, #CCCCCC 100%);
background-image: -ms-linear-gradient(top, #FFFFFF 50%, #CCCCCC 100%);
background-image: -o-linear-gradient(top, #FFFFFF 50%, #CCCCCC 100%);
background-image: linear-gradient(to bottom, #FFFFFF 50%, #CCCCCC 100%);
border: 1px solid #CCC;
padding:10px;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
}
.header_background:after, .header_background:before {
right: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
}
.header_background:after {
border-color:transparent;
border-right-color: #FFF;
border-width: 5px;
top: 50%;
margin-top: -5px;
}
.header_background:before {
border-color:transparent;
border-right-color:#CCC;
border-width: 6px;
top: 50%;
margin-top: -6px;
}
私はこのオンライン グラデーション メーカー ツールを使用しました。
data:image/svg+xml;base64,...etc...
base64 でエンコードされたインライン SVG イメージです。これにより、純粋な CSS3 グラデーション機能をサポートしていない IE9 でグラデーションがレンダリングされます。
実際には、他の最新のブラウザー(FF13+、Opera12+) でサポートされていますが、Lea Verou が報告したように、純粋な CSS3 グラデーションよりも遅いため、他の宣言が必要です。
IE8 では、グラデーション フィルターを使用できます。
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#feffff', endColorstr='#eeeeee',GradientType=0 );
これは非常に簡単です(GradientType=0
は垂直を意味し、変更すると1
水平グラデーションになります)。問題は、IE9 でもサポートされていることです。したがって、重複を避けるには、条件付きコメントを使用する必要があります。
この特定のケースでは、IE8について気にしないことをお勧めします。白い背景が表示されるだけです(そのためbackground:#FFF;
、最初の宣言として追加しました)。これはまったく問題ありません。