ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります

ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります

ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分ができます。しかし、美学を好む学生にとってこれは耐え難いことです!

完美去掉a標簽和按鈕加背景圖片陰影

その理由は何でしょうか?結局、a タグの href 属性が原因であることが分かりました。

1. タグだけ

私が知っている解決策は 2 つあります。

まず、病気に適した薬を処方します。それはhrefによって引き起こされるので。次にhref属性を削除します

href=javascript:RefreshCode(); を使用すると、検証コードが更新されます。ページジャンプはありません。

コードをコピー
コードは次のとおりです。

<ahref="javascript:RefreshCode();"class="yellow">はっきりと見えませんか?画像を変更</a>

したがって、href を削除し、a タグに onclick イベントを追加して、更新検証コード関数を呼び出すことができます。

コードをコピー
コードは次のとおりです。

<aonclick="RefreshCode()"class="yellow">よく見えませんか?画像を変更</a>

2番目: 一歩下がってみてください。相違点を残しつつ共通点を探します。 href属性を使用したいためです。よし。次に、別のイベントを追加します: onfocus

これを変更するだけで、a タグに onfocus="this.blur()" を追加することで完全に削除できます。

確かに。 a タグに下線を付けたくない場合。次に: style="text-decoration: none"

コードをコピー
コードは次のとおりです。

<a href="javascript:RefreshCode();"class="yellow"onfocus="this.blur()">はっきりと見えませんか?画像を変更</a>

変更後の効果

完美去掉a標簽和按鈕加背景圖片陰影

FF や他のブラウザでは、比較的簡単です。タグ a にスタイル outline:none を定義するだけです。つまり、次のようになります。

コードをコピー
コードは次のとおりです。

a{ アウトライン:なし; }

もちろん、これは 1 つだけを削除するだけです。ページに複数の a タグがある場合、onfocus イベントを 1 つずつ追加するべきではないでしょうか?

もちろん違います。ページが読み込まれたときにこれを実行できます。 window.document.links.length を通じてページ上のすべての a タグを取得します (ここでは window を省略できます)。次に、登録されたイベントを反復処理します。

コードをコピー
コードは次のとおりです。

<scripttype="text/javascript">
window.onload = 関数(){
for(var i=0; i<document.links.length; i++)
document.links[i].onfocus=function(){this.blur()}
}
</スクリプト>

2. ボタンに背景画像を追加します。

ボタンに背景画像を追加する場合も同様です。影が出てきます。

完美去掉a標簽和按鈕加背景圖片陰影

同じアプローチで、

コードをコピー
コードは次のとおりです。

<asp:Button ID="imgBtnReg" runat="server"onfocus="this.blur()" OnClientClick="return chk_reg();"OnClick="imgBtnReg_Click" Text="送信の確認"/>
<input type="submit"id="btnReg" value="登録" name="regist" onfocus="this.blur()"onclick="return checkAll()" style="background-image:url('image/btn.jpg')"/>

変更後の効果:

完美去掉a標簽和按鈕加背景圖片陰影

3. imgにaタグを追加する場合は、aタグにonfocusを追加し、imgのborder属性を設定します: border=0

コードをコピー
コードは次のとおりです。

<a href="#none" onfocus="this.blur()">
<img style="border:0px">
</a>

ページにタグが両方ある場合。またボタンがあります。関数にラップすることができます

コードをコピー
コードは次のとおりです。

関数 fHideFocus(tName){
タグ=document.getElementsByTagName_r(tName);
i=0;i<aTag.length;i++)aTag.hideFocus=true; の場合
//for(i=0;i<aTag.length;i++)aTag.onfocus=function(){this.blur();};
}

現在、hidefocus 属性が追加されており、その値は、hideFocus=true などのブール値です。割り当てを省略して、直接hideFocusを使用することもできます。

コードに hideFocus がない場合、マウスでハイパーリンクをクリックすると、フォーカスを示す点線のボックスが外側に表示されます。 hideFocus を使用すると、点線の枠は表示されません。

コメントアウトされた文は、同じ効果を持つ onfucus = this.blur(); を追加するものです。
次に、fHideFocus("A"); を呼び出して、a の点線枠を削除します。異なるパラメータを渡すことで、異なる点線枠を削除できます。たとえば、"BUTTON" はボタンの点線枠を削除できますが、パラメータは大文字にする必要があることに注意してください。

拡張機能:

A. マップ領域内のリンクの点線を削除するにはどうすればよいですか?

これは概念的な誤りです。実際には、エリアではなく地図画像上で制御する必要があります。従来の方法を参照してください

B. onFocusについて

コードをコピー
コードは次のとおりです。

<a href="http://blog.sina.com.cn/s/articlelist_3015911503_0_1.html"onfocus="this.blur()">
<img style="border:0px">
</a>

このうち、onfocus はマウスのフォーカスイベントを設定するために使用されます。これは使用してもしなくてもかまいません。ただし、より多くのブラウザで認識できるようにするには、border=0 を使用することをお勧めします。これが点線枠を消す鍵です (インターネットでは、onfocus="this.blur()" を使用して点線枠を消す人がほとんどですが、この文だけでは消せない場合もあります)

専門家にとって、その知識ポイントはすでにかなり時代遅れになっています。しかし、それに触れたばかりの友人にとっては、タイムリーな救済であり、私は今日たまたまそれに遭遇したのです。それでここに記録されます。知識は少しずつ蓄積されなければなりません。

<<:  新しい ECMAscript オブジェクト機能の紹介

>>:  CSS フォント、テキスト、リストのプロパティの詳細な紹介

推薦する

ie8/ie9/ie10/ie11 chrome firefox を区別するための CSS コード

ウェブサイトの互換性のデバッグは本当に面倒です。今日のウェブサイト デザイナーは、以前よりもはるかに...

MySQLが2つのテーブルを関連付ける際のエンコードの問題と解決策

Mysqlが2つのテーブルを関連付けると、次のエラーメッセージが生成されます:照合順序の不正な組み合...

Dockerコンテナを更新、パッケージ化、Alibaba Cloudにアップロードする方法

今回は、実行中のコンテナをイメージにパッケージ化して Alibaba Cloud にアップロードし、...

JSでよく使われるデータ処理方法

目次DOM処理配列方法要約するDOM処理DOM はドキュメントの構造化された表現を提供し、スクリプト...

MySQL データのバックアップと復元のサンプル コード

1. データのバックアップ1. mysqldumpコマンドを使用してバックアップするmysqldum...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

Linux での SSH パスワードフリーログイン設定の詳細な説明

Linux サーバー A と B が 2 台あり、一方のサーバーから SSH 経由でパスワードなしで...

MySQL SHOW PROCESSLISTはトラブルシューティングの全プロセスを支援します

1. SHOW PROCESSLISTコマンドSHOW PROCESSLIST は実行中のスレッド ...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

MySQL 5.7 および MySQL 8.0 でルートパスワードを変更する方法の概要

MySQL 5.7 バージョン:方法1: SET PASSWORDコマンドを使用するフォーマット: ...

Typora コードブロックのカラーマッチングとタイトルシリアル番号実装コード

効果: タイトルには独自のシリアル番号があり、コードブロックには配色があり、コードブロックの左上隅に...

Reactにおけるキーの役割の詳細な説明

目次質問: ボタンをクリックすると、スパンの色が赤に変わりますか?上記の問題を分析します。 2番目の...

Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...

HTML での非同期ファイルアップロードの例

コードをコピーコードは次のとおりです。 <form action="/hehe&qu...