HTMLボタン/送信の完全なスタイルを削除する


94

Internet Explorerのボタンのスタイルを完全に削除する方法はありますか?ボタンにcssスプライトを使用していますが、すべて問題ありません。

しかし、ボタンをクリックすると、少し上に移動し、形が崩れます。CSSクリック状態、またはマウスダウンはありますか?何がその状態を引き起こすのかわかりません。

それほど大したことではないことはわかっていますが、時には重要なのは小さなことです。

回答:


71

ボタンをクリックすると少し上に移動する」と言うと、ボタンのマウスダウンクリック状態について話していると思います。マウスクリックを離すと、通常の状態に戻ります。 ?また、次のコマンドを使用して、ボタンのデフォルトのレンダリングを無効にします。

input, button, submit { border:none; } 

もしそうなら..

個人的には、このIEネイティブアクションを実際に停止/オーバーライド/無効にできないことがわかりました。このため、この動きを可能にするためにマークアップを少し変更し、さまざまな状態のボタンの全体的な外観に影響を与えませんでした。

これが私の最後のマークアップです:

<span class="your-button-class">
    <span>
        <input type="Submit" value="View Person">
    </span>
</span>


131

私はこれがより徹底的なアプローチを提供すると思います:

button, input[type="submit"], input[type="reset"] {
	background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
}
<button>Example</button>


2
背景に「なし」があるとは思いません-そして!
シェリフデレク2018年

4
通常、これを実行するときは、ボタンに存在する既存のスタイルをオーバーライドする必要があります。クリーンでスタイルのないHTMLを使用してこれを実行することはまれなので、を使用し!importantます。とはいえ、それは状況決定なので削除しました。background: none完全に有効です:stackoverflow.com/questions/20784292/…–
Kevin Leary

重要!使わざるを得なかったプロジェクトに取り組むことはできないと思います。RE: 'none'ここに、SO投稿よりも優れたリファレンスがあります。'background'を単独で使用する場合は、実際にはすべての属性を簡略化して使用します。
シェリフデレク2018

私は、ボタン内の画像とテキストのスタイルの違いに気をとがめていて、外見と同じように見えるようにしました<button/>...私の場合、font: inherit;トリックをしました。ありがとうございました!
ケイト

3
アクセシビリティの目的で、おそらくその概要をそこに残したいと思うでしょう。それ以外の場合は、そこにタブで移動しても、どこにいるかの視覚的な手掛かりはありません。すばらしい答えです!
John Hooper、

43

あなたの質問には「Internet Explorer」と書かれていますが、他のブラウザに興味がある人はall: unset、ボタンを使ってスタイルを解除できます。

IEまたはEdge 18では機能しませんが、他のすべての場所で十分にサポートされています。

https://caniuse.com/#feat=css-all

Safariの色に関する警告:WebKitのバグが原因で、color使用後にボタンのテキストを設定all: unsetするとSafari 13.1で失敗する場合があります。(このバグはSafari 14以降で修正される予定です。)「黒に設定されているため、色が上書きされます。」の使用後にテキストを設定する必要がある場合は、との両方を同じ色に設定してください。all: unset-webkit-text-fill-colorcolorall: unsetcolor-webkit-text-fill-color

アクセシビリティ警告:マウスポインタを使用していないユーザーのために、再度追加いくつかに必ず:focusスタイリング、例えばbutton:focus { outline: orange auto 5px }のためのキーボードアクセシビリティ

そして忘れないでくださいcursor: pointer を含むすべてのスタイリングをall: unset削除cursor: pointerます。これにより、ボタンの上にカーソルを置くと、マウスカーソルが手の形に見えます。あなたはほぼ間違いなくそれを取り戻したいと思っています。

button {
  all: unset;
  color: blue;
  -webkit-text-fill-color: blue;
  cursor: pointer;
}

button:focus {
  outline: orange 5px auto;
}
<button>check it out</button>


1
これありがとう!
Ediger、

これは、アクセシビリティの理由からお勧めできません。たとえばoutline:focus要素の状態のすべてのスタイルを追加し直す必要があります。
デビン

@Devinグレートポイント!投稿を更新して、outlineスタイルよう。(ただし、他の目的で再追加する必要があるものはないと思います。何か知っていますか?)
Dan Fabulich

8

ボタンからボーダーを削除してみてください:

input, button, submit
{
  border:none;
}

4

ブートストラップでは4が最も簡単です。あなたは、クラスを使用することができます bg-transparentし、border-0


+ shadow-none私にとってはそれで十分です。どうも!
Bachet

0

ボタンの「アクティブ」状態だと思います。


それはアクティブな状態でなければなりません、あなたはそのために+1です。しかし、正しく機能しませんでした
Saif Bechan

「私は思う」は答えではありません。
しんぞう2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.