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

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

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

完美去掉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 フォント、テキスト、リストのプロパティの詳細な紹介

推薦する

ウェブページ読み込み時に左右にジャンプする原因の分析と解決

最近、ウェブサイトを設計するときにこの問題に遭遇しています。メンバーセンターを設計し、コンテンツを ...

Vue でスロットを使用する方法についての簡単な説明

定義と使用方法:コンポーネントのテンプレートでスロットタグの定義を使用します。デフォルトの表示値は、...

JS を使って 1 分で github+Jekyll ブログに訪問カウント機能を追加する実装

目次1分でgithub+Jekyllブログにトラフィック機能を追加する1. ジェクルとは何か1. J...

Vueは虫眼鏡付きの検索ボックスを実装します

この記事では、Vueを使用して虫眼鏡付きの検索ボックスを実装する方法を紹介します。具体的な内容は次の...

CSSブレンドモードとSVGを使用して、製品画像の色を動的に変更します。

数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...

Win10の明るさ調整効果を模倣するHTML+CSS+JSサンプルコード

HTML+CSS+JS で Win10 の明るさ調整効果を模倣コード <!doctypehtm...

MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します

非常に便利な機能group_concat() について、マニュアルには次のように記載されています: ...

Linux での MySQL マルチインスタンスの展開とインストール ガイド

MySQLマルチインスタンスとは簡単に言うと、MySQL マルチインスタンスとは、サーバー上で複数の...

CSS ロリポップを描くサンプルコード

背景: 毎日少しずつ進歩し、少しずつ積み重ねていけば、どんどん良くなっていきますコード: <!...

Vite2+Vue3を使用してMarkdownドキュメントをレンダリングする練習

目次カスタム Vite プラグインvite-plugin-markdownの使用Front Matt...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します

Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...

MySQL外部キーの3つの関係例の詳細な説明

この記事では、例を使用して、MySQL 外部キーの 3 つの関係について説明します。ご参考までに、詳...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

crontab 実行時間とシステム時間の不一致の解決方法

序文LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | gre...