2012-07-17 28 views
0

我一直在研究這個問題幾個星期了。請注意圖中所示。 IE7且只有IE7不會在我的php應用程序中完全/正確地呈現textarea字段。您也可以在附件中看到一些下拉字段。由於某種原因,右邊框不會顯示,並且如果此問題持續存在,則具有IE7且無法/不會升級的潛在客戶端將無法使用我的應用程序。CSS - IE7不會呈現textarea框和一些正確/完全的下拉字段

我在衝浪時發現了其他幾個渲染問題;有提到使用縮放,但沒有效果,另一個提到添加填充,仍然沒有效果。沒有發現真正解決這個特定問題/錯誤。

是否有任何CSS專家可以提供有關此問題的任何見解。任何幫助將不勝感激。問題enter image description here

圖片這是一個自動生成網頁的形式。

這裏是PHP代碼,將創建textarea的字段:

case FIELD_TEXT_AREA: 
    $fieldHtml = inputOrText($mode, "textarea", 
          $field->getValue(), 
          array("id"=>$field->getId(), 
          "class"=>"valuetext", 
          "name"=>$field->getId(), 
          "rows"=>"3","cols"=>"60", 
          $jsFunctionCalls), 
          array("class"=>"valuetext")); 

和下面是結果的源代碼:

   <td valign='top'></td> 
      </tr> 
     </table> 
    </td> 
</tr> 
<tr id="field-4446"> 
    <td width='30%' valign='top' align='left' class='labeltext'>Text Area :</td> 
    <td width='70%' align='left'> 
    <table border='0' style='table-layout:fixed'> 
     <tr> 
      <td> 
       <textarea id="4446" 
         class="valuetext" 
         name="4446" rows="3" 
         cols="60" 0="" > 
       </textarea> 
      </td> 
+1

你能提供一個URL,我們可以看到你的應用程序,並檢查代碼/ CSS等? – 2012-07-17 13:37:02

+0

儘管圖片對於您的問題來說是一個很好的資產,但我們無法真正解決這個問題,只需簡單的代碼 – 2012-07-17 13:49:19

+0

我希望我可以發佈url,但它是客戶端的網站,所以不想使用我的工作。由於這是一個IE7問題,我希望有人知道修復/修補它的一些顯示問題。 – user1176783 2012-07-17 14:20:16

回答

0

的可能的原因是包含細胞輸入框和textarea都設置了一些固定的寬度,這樣它就比字段所需的少一些。可能這些細胞有overflow: hidden。這些字段然後被截斷在右邊。寬度不匹配很可能取決於瀏覽器,因爲它受箱模型和類似事件的影響。

如果你在CSS中試驗設置textarea, input { overflow: visible !important },你應該看看它們溢出了多少。由於此時整體佈局可能無法或不應該進行更改,因此最好減少字段的寬度設置。細節取決於現在寬度的設置。請注意,將寬度設置爲100%可能會導致這樣的問題,而不是修復它。寬度應該比單元的寬度小几個像素。

+0

謝謝Jukka。讓我測試一下你的一些建議 – user1176783 2012-07-17 14:18:36

+0

Hi Jukka - 我發現IE7實際上有一個Web開發工具。我喜歡它,並看到了一些可能的事情,但其中一個是table-layout:固定的。我將其改爲「自動」。它現在在IE7中正確呈現,並且在其他瀏覽器中似乎沒有任何不利影響。你現在偶然會發現與表格佈局有關的任何事情:** auto ** vs ** fixed **,我應該知道這一點? – user1176783 2012-07-18 15:03:35

+0

設置'table-layout:fixed'確實會造成問題,因爲它會以嚴格的方式設置列寬,而不管其寬度要求如何。將值更改爲'auto'等同於刪除設置,因爲'auto'是默認設置。 'auto'通常是最好的,除非你確實需要修改列寬並且你準備好處理後果。 – 2012-07-18 16:44:21