2011-01-10 4 views
0

Bekam ein Problem mit einem Stil in IE7. Mit diesem css StilEingabe in TD wird gerendert nach Rand rechts in IE7

table td 
{ 
    padding: 5px; 
    background-color: #EEE; 
    border: solid 1px #777; 
} 

.forty-wid 
{ 
    width:40px; 
} 

input 
{ 
    width:100%; 
} 

zeigt zwei Grenzen für meine td. Nach näherer Prüfung scheint es, dass

<td class="forty-wid"> 
<input type="text" value="0" /> 
</td> 

nach dem rechten Rand gerendert wird. Wer kennt einen Workaround dafür?

BEARBEITEN: Nach dem Ausprobieren mit JSBin stellt sich heraus, dass die vorherige td mit der nächsten td überlappt. Es ging wie diese

Border-links-1 TD1 Border-links-2 Border-rechts-1 TD2 Border-links-3

und es scheint, durch meine input width:100%

Probe verursacht wird bei http://jsbin.com/egaru4/3

+0

Wenn Sie ein Beispiel für [JS Bin] (http://jsbin.com/) erstellen könnten, wird es Ihnen wahrscheinlich helfen, eine Antwort zu erhalten (schneller). – thirtydot

+0

Ohhh .. Ok. Danke für den Tipp. Ich wusste nichts über JS Bin. – Jonn

+0

Es gibt auch [jsFiddle] (http://jsfiddle.net/), was normalerweise bevorzugt wird, jedoch deaktiviert jsFiddle den "Kompatibilitätsansicht" Knopf, um zwischen dem IE8/7 Modus zu wechseln, also habe ich hier nach JS Bin gefragt. – thirtydot

Antwort

1

Trotz mit diesem um eine gute Viertelstunde durcheinander ..

Die einzige Art, wie ich sie aus der Ferne nah am IE7/IE8/Firefox 3/Chrome dev/Opera zu verwenden war zu korrigieren aussehen könnte dies fugly (vor allem wegen des Fremd <div> ‚s landete ich mit ..) HTML/CSS:

Live Demo

table { 
    border-collapse: collapse; 
    table-layout: fixed 
} 
.forty { 
    width: 40px 
} 
input { 
    width: 100% 
} 

table td { 
    background-color: #eee; 
    border: solid 1px #777 
} 
table th { 
    color: #222; 
    padding: 6px 5px; 
    text-align: left; 
    background-color: #7f99b0; 
    border: solid 1px #888 
} 
table div { 
    margin: 6px 5px 6px 0; padding: 0 5px 0 5px 
} 

<div class="container"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     <thead> 
      <tr> 
       <th class="forty"> 
       H 
       </th> 
       <th> 
       H2 
       </th> 
       <th> 
       H3 
       </th> 
       <th> 
       H4 
       </th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td> 
        <div><input type="text" value="0" /></div> 
       </td> 
       <td> 
        <div>Text here</div> 
       </td> 
       <td> 
        <div><input type="text" /></div> 
       </td> 
       <td> 
        <div><input type="text" /></div> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

Ich bin nicht besonders zufrieden mit diesem, vielleicht kann jemand anderes helfen? Wenn nicht, könnte ich zu einem späteren Zeitpunkt noch etwas Zeit damit verbringen.

+0

wurde aktualisiert. Ich verstehe nicht warum, aber das Hinzufügen dieser divs hat funktioniert. Besser als den gesamten Rand zu entfernen (als Temp-Fix). Ich werde es für eine Weile offen lassen. Vielleicht kann sich jemand etwas einfallen lassen. Vielen Dank. – Jonn