ブロック境界のCSS3グラデーション





この記事では、CSS3を使用して任意のブロックの境界線にグラデーションを作成するためのオプションの1つを示します。



最終バージョンでは、上のスクリーンショットにあるボタンが表示されます。



このようなレイアウトで作業します。



<html> <body> <a href="http://google.com" class="magicButton">I am a button!</a> </body> </html>
      
      







まず、ボタンにシンプルなスタイルを設定しましょう



 .magicButton { color: #444; font: bold 16px arial; background: #e4e4e4; border: 1px solid transparent; /*    */ border-radius: 3px; padding: 8px 12px; text-decoration: none; text-shadow: 0 1px 1px rgba(255,255,255,0.75); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5), 0 3px 6px -3px rgba(0,0,0,0.25); }
      
      





その後、実際にハックに進みます。



境界の代わりにグラデーションを作成するには、まずそこにグラデーションを配置する必要があり( background-origin:border-box; )、次にトリミングして正確にこの場所に配置する必要があります( background-clip:border-box; )。

メイン部分の準備ができましたが、今では勾配を規定するためだけに残っています。 この例では、明るい背景ではないボタンを使用する場合、グラデーションを明るい灰色のトーンで使用します。グラデーションの色はそれに応じて変更する必要があります。



 linear-gradient(#e4e4e4, #ccc);
      
      







ただし、グラデーションを設定すると、ボタンの背景全体が同じように塗りつぶされるという問題が発生します。 これを行うために、別のグラデーションを適用します。今回だけ、パディングボックス内に配置してトリミングします。



トーガでは、このボタンを取得します: jsfiddle.net/Cyber​​AP/DzHUj



この手法の短所:



しかし、プラスもあります:




All Articles