[解決済み] このベベルボタンをCSSで実現するには?
2022-02-09 06:09:37
質問
CSSでこのようなボタンを作成することは可能でしょうか?
もちろん、画像を背景に使うという意味ではなく、それは簡単にできる。私が言っているのは、webkitタイプのソリューションのことです。
どのように解決するのか?
簡単に言うと はい、できます。 . さっそく挑戦してみました。
これが私が行った手順です。
- ビットマップをSketchで開いてみました。
- ビットマップを拡大し、丸みを帯びた長方形で輪郭をなぞり、正しい色を付けました。
-
を追加し始めました。
box-shadow
を、外側と内側の両方で、ビットマップを可能な限り再現するために使用しました。なお、ボックスの影には黒と白(アルファ値を変化させたもの)しか使っていません。こうすることで、ボタンの色を簡単に変更することができます。background-color
. -
また、ボックスシャドウだけではうまくいかなかったので、ボトムシャドウとトップグロー用に2つのシェイプを追加しています。2つの要素だけであれば問題ないはずです。
:before
と:after
の疑似要素で、これらをCSSに含めることができます。
出来上がった画像は次のような感じです(正確ではありませんが、かなり近いと思います)。
そして、「css属性をコピー」を選んで、手動で:beforeと:afterの要素を追加し、微調整を行うことで、描画をcssに変換したのです。これが、私が作った(接頭辞なしの)cssです。
.button {
display: inline-block;
color: #fff;
text-shadow: 0 0 2px rgba(0,0,0,.3);
font-family: sans-serif;
box-shadow:
inset 0 0 2px 0 rgba(255,255,255,.4),
inset 0 0 3px 0 rgba(0,0,0,.4),
inset 0 0 3px 5px rgba(0,0,0,.05),
2px 2px 4px 0 rgba(0,0,0,.25);
border-radius: 4px;
padding: 8px 16px;;
font-size: 12px;
line-height: 14px;
position: relative;
}
.button.red { background: #EA3D33; }
.button.green { background: #7ED321; }
.button.blue { background: #4A90E2; }
.button:before, .button:after {
content: '';
display: block;
position: absolute;
left: 2px;
right: 2px;
height: 3px;
}
.button:before {
top: 0;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
background: rgba(255,255,255,.6);
box-shadow: 0 1px 2px 0 rgba(255,255,255,.6);
}
.button:after {
bottom: 0;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
background: rgba(0,0,0,.15);
box-shadow: 0 -1px 2px 0 rgba(0,0,0,.15);
}
とバイオリンで実演します。 http://jsfiddle.net/pn4qk3wL/
関連
-
[解決済み] ChromeでCSSカスタムスタイルのボタンから青枠を削除する
-
[解決済み] Bootstrap 4のclass="mb-0 "とは何ですか?
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] セレクトボックスのプレースホルダーを作成するにはどうすればよいですか?
-
[解決済み] CSSのdisplayプロパティで遷移する
-
[解決済み] div 内の画像を縦に並べる方法
-
[解決済み] How do I style a <select> dropdown with only CSS?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Text-decoration: noneが機能しない。
-
[解決済み] <div style="display:none">によるテーブルデータの非表示。
-
[解決済み] ユーザーエージェントのスタイルシートが私のCSSを上書きしないようにする方法
-
[解決済み] font-face は OpenType 埋め込み許可チェックに失敗しました。パーミッションはインストール可能である必要があります。
-
[解決済み] Chrome で注入されたスタイルシートによる奇妙なスタイリングが発生する
-
[解決済み] CSSを使用します。ウィンドウの幅の50%の背景色を設定する
-
[解決済み] Ionicカードリスト作成
-
[解決済み] bootstrap 4 でカードブロックの不透明度を変更する方法
-
[解決済み] psuedo 要素を用いたスクロール/ホバー可能な CSS ツールチップ
-
[解決済み] Atomエディタで透明な背景を設定する方法は?