2010-03-27 70 views
1

我需要將文本框的寬度設置爲其父項的80%。所以,首先我用IE6的offsetWidth或CSS表達式問題

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

但它沒有正確渲染,如果inputtd孩子。所以,我用CSS表達式

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

這是工作,我在每個瀏覽器想除了IE 6,任何人可以幫助我,我要去的地方錯了嗎?我知道在IE 6中允許使用表達式。所以,是使用css表達式還是做偏移量的問題。

在此先感謝。

回答

2

TD輸入[類型= 「文本」]

屬性選擇器不工作在IE6。如果您想支持此瀏覽器,請在td input.text上添加class="text"和樣式。

你不應該需要任何複雜的腳本,jQuery或表達式。

1

嘗試改寫爲

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

但是我自己的另一種方法是檢測,即版本,如果它的6重定向到一個錯誤頁面與憤怒的臉提醒用戶:白癡它的新紀元!更新!

:)

+0

是的,我也想這樣做,但它是客戶端gahhh:X – Bipul 2010-03-27 10:58:15

+0

不,仍然沒有工作:( – Bipul 2010-03-27 11:12:56

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); 
      }); 
     } 

它爲我工作得很好。