1

私がやりたいことは本質的に:

/*psuedo css code*/
input:textbox:active
{
    border: 1px solid blue;
}

ある種の方法と似てa:activeいますが、テキストボックスに対してそれを行います。Javascriptを使用できることはわかっていますが、サポート上の理由から、ここで誰がJavaScriptを知っているかわからないため、JavaScriptを使用しないようにしています。ありがとう。

また、非アクティブな人に国境を奪ってもらいたいです。ありがとう。

4

3 に答える 3

2

テキストボックスにIDTextBoxがあるとすると、次を使用できます#TextBox:focus { border: 1px solid blue; }

于 2011-02-02T17:09:09.490 に答える
0

CSSを使用してボックスを強調表示することはできますが、ボックスにフォーカスが移ることはありません。そのためには、JavaScriptを開発者に公開するかどうかに関係なく、JavaScriptを使用する必要があります。ここのテクニックを使用して、JavaScriptがあるという事実を隠すことができます。

于 2011-02-02T17:08:30.490 に答える
0

半分まともなブラウザでの一般的なケースに対する答えはすでにあります。古いバージョンのIEでも動作させたい場合に備えて、これは私が以前に準備したハックです。これは、SuckerFishドロップダウンメニューコードに基づいています。これの基本は、次のような:hoverクラスで繰り返すスタイルです。.sfhover

textarea:hover, input[type=text]:hover, input[type=password]:hover, textarea.sfhover, input.sfhover {
    border: 1px solid blue;
}

次に、イベントハンドラーとイベントの要素をアタッチする関数INPUTTEXTAREAありfocusますblur

function highlightInputs () {
    var sfEls = document.getElementsByTagName("INPUT");
    for (var i=0; i<sfEls.length; i++) {
        if (sfEls[i].type == 'text' | sfEls[i].type == 'password') {
            sfEls[i].onfocus=function() {
                this.className+=" sfhover";
            }
            sfEls[i].onblur=function() {
                this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
            }
        }
    }
    sfEls = document.getElementsByTagName("TEXTAREA");
    for (var i=0; i<sfEls.length; i++) {
        sfEls[i].onfocus=function() {
            this.className+=" sfhover";
        }
        sfEls[i].onblur=function() {
            this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
        }
    }
}

コードはIEでのみ実行する必要があるため、ブラウザー間の互換性について心配する必要はありません。次に、ある種のIE検出方法を使用して、IEでのみページの読み込み時に関数を実行します。

if (window.attachEvent) window.attachEvent("onload", highlightInputs);

$.browser.msieライブラリがすでにロードされている場合は、条件付きコメントなどのjQueryのテストを使用することもできます。

于 2011-02-02T18:56:04.347 に答える