純粋なCSSでデジタルプラスとマイナスボタンを実装するための最適なソリューション

純粋なCSSでデジタルプラスとマイナスボタンを実装するための最適なソリューション

序文:

デジタル加算ボタンと減算ボタンの実装には、次のような多くのソリューションがこれまでに使用されてきました。

1. 背景画像を使用する - 効果は高くなりますが、スタイルの制御が少し複雑で、画像が必要になるという欠点があります。

2. 「+」と「-」を直接使用する - この方法はシンプルで大まかですが、実装が最も簡単です。欠点は、ブラウザ環境によって表示が若干異なり、シンボルのサイズと線の太さを調整するのが容易ではないことです。

3. Unicode 文字を使用します。これは方法 2 とほぼ同じ問題がありますが、互換性が悪く、一部の携帯電話では文字を表示できませんでした。

4. CSS スタイルとタグを使用して絶対位置の水平線と垂直線を生成し、それらの位置を調整してプラス記号を形成します。欠点は、ブラウザによって水平と垂直の組み合わせがわずかにずれる可能性があることです。これは、タグを使用して 2 つの同一の水平線と垂直線を生成し、そのうちの 1 つを 90 度回転することで解決でき、より効果的なものになります。

上記の中で一番良いのは、写真を使った最初の方法です。少し面倒ですが、効果は一番高く、互換性も気にする必要がありません。他の方法はお勧めしません。

最近、CSS3 のbackground-imageスタイルを使用し、線形グラデーションlinear-gradientと組み合わせてプラス記号を合成するという新しい方法を発見しました。具体的な実装は次のとおりです。

キーコード:

<a href="javascript:" class="btn btn_plus" role="button" title="追加"></a>
<input class="inputNum" 値="1" サイズ="1">
<a href="javascript:" class="btn btn_minus" role="button" title="減らす"></a>
.入力番号{
    垂直位置合わせ: 中央;
    高さ: 22px;
    境界線: 1px 実線 #d0d0d0;
    テキスト配置: 中央;
}
.btn{
    表示: インラインブロック;
    垂直位置合わせ: 中央;
    背景: #f0f0f0 繰り返しなし 中央;
    境界線: 1px 実線 #d0d0d0;
    幅: 24px;
    高さ: 24px;
    境界線の半径: 2px;
    ボックスの影: 0 1px rgba(100, 100, 100, .1);
    色: #666;
    トランジション: color .2s、background-color .2s;
}
.btn:アクティブ{
    ボックスシャドウ: インセット 0 1px rgba(100, 100, 100, .1);
}
.btn:ホバー{
    背景色: #e9e9e9;
    色: #333;
}
.btn_plus {
    背景画像: 線形グラデーション(上へ、現在の色、現在の色)、線形グラデーション(上へ、現在の色、現在の色);
    背景サイズ: 10px 2px、2px 10px;
}
.btn_minus {
    背景画像: 線形グラデーション(上へ、現在の色、現在の色);
    背景サイズ: 10px 2px;
}

その中で、キーとなるスタイルは、末尾の太字の両端です。この方法は互換性が良いことが検証されており、h5/css3の互換性と同じと言えます。

これは私が今まで見た中で最もシンプルな実装方法です。この使い方を考えた人を尊敬します。

要約する

上記は、エディターが紹介した純粋な CSS でデジタル加算および減算ボタンを実装するための最善のソリューションです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

<<:  Linux システム Docker への ASP.NET Core アプリケーションのデプロイのプロセス分析

>>:  JavaScript の条件付きアクセス属性と矢印関数の紹介

推薦する

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

MySQL 権限昇格のさまざまな形態の概要

目次1. Webshel​​lを書く出力ファイルにシェルを書き込むログファイル書き込みシェル2. U...

Windows 10でDockerコンテナのポートにアクセスできない問題に対する完璧な解決策

Windows 10 で Docker コンテナのポートにアクセスできない問題を解決する (ポート ...

Vue3 の使用 (パート 1) Vue CLI プロジェクトの作成

目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する1. シーケンスレコードテーブルを作成する テーブル `sys_...

MySQLで時間別データと最後の時間別データの差をクエリするアイデアの詳細な説明

1. はじめに要件は、特定の時間範囲内で、1 時間ごとのデータと前の 1 時間ごとのデータの差と比率...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...

CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順

1. インストールパッケージを保存する場所に移動しますcd /home/lnmp 2. MySQL ...

Vueの監視プロパティの詳細な説明

目次Vue モニターのプロパティリスナープロパティとは何ですか?リスニングプロパティと計算プロパティ...

MySQL で単一のフィールド内の複数の値を分割および結合する方法

複数の値を組み合わせて表示これで、図1から図2に示す要件が揃いました。 どうやってやるんですか?次の...

CSSはボックスコンテナ(div)の高さを常に100%に設定します。

序文ブラウザをどのようにズームしても、ボックス コンテナーの高さを常に 100% に保つ必要がある場...

TypeScript 列挙の基本と例

目次序文TypeScript の列挙型とは何ですか? TypeScriptで列挙型を使用する際に注意...

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...