1

テキストボックスの幅を親の 80% に設定する必要があります。だから最初に使った

td input[type="text"]
{    
    width: 80%;
}

inputしかし、が の子である場合、適切にレンダリングされませんでしtdた。だから、私はCss式を使用しました

td input[type="text"]
{    
    width: expression(this.parentNode.offsetWidth*0.8);
}

IE 6 を除くすべてのブラウザーで思い通りに動作しています。IE 6で式が許可されていることは知っています。つまり、css式を使用するか、offsetWidthを行うのに何か問題がありますか。

前もって感謝します。

4

4 に答える 4

2

td input [type = "text"]

属性セレクターはIE6では機能しません。このブラウザをサポートしたい場合は、にclass="text"とスタイルを追加してtd input.textください。

スクリプト、jQuery、または式で複雑なものは必要ありません。

于 2010-03-27T13:18:24.717 に答える
1

申し訳ありませんが、私は自分の質問に対する答えを書いています。誰かがこれから助けを得ることができるかどうかを考えました。

私はCSSから多くのことを試しましたが、IE 6では何も機能しませんでした。そこで、最終的にjqueryを使用しました

if (jQuery.browser.msie && jQuery.browser.version.substring(0, 1) == "6") {
            $("td > input[type='text']").each(function() {
                $(this).css("width", $(this).parent().width() * 0.80);
            });
        }

それは私のためにうまくいきました。

于 2010-03-27T11:54:34.447 に答える
1

のように書き換えてみてください

* html td input[type="text"]
{    
    width: expression(this.parentNode.offsetWidth*0.8) !important;
}

ただし、私自身の代替方法は、つまりバージョンを検出することです.6がユーザーに警告する怒った顔でエラーページにリダイレクトされた場合:その21世紀はばかです! アップデート!

:)

于 2010-03-27T10:14:42.750 に答える
0

この問題は ie 6 ボックス モデルが原因であると思われます。幅と高さにはパディングとボーダーが含まれます。詳しくはこちらをご覧ください

于 2010-07-02T14:34:39.537 に答える