Stefan Huber: span mit text-align im TD

Hallo Leute

Ich bin jetzt seit über ner Stunde verzweifelt am selfhtml durchforsten doch es will und will einfach nicht :(

Vereinfacht:
<table border=1 width=500>
<TR><td>
<span style="text-align:left;">text1</span>
<span style="text-align:right;">text2</span>
</TD></TR>
</table>

MEINER meinung nach müsste nun eine Tabellenzelle auf dem Bildschirm erscheinen, die 500px breit ist, eine einzige Zeile umfasst, bei der Links 'text2' steht und rechtsbündig 'text2'.

Laut doku ist span ein inlinedingsda, welches als elternelement im td sein darf. also müsste es doch rein theoretisch gesehen funktionieren. warum zum geier tut es das trotzdem nicht? =)
ich krieg immer nur die zelle mit 'text1 text2' überhaupt keine ausrichtung :(

oder liegt es gar an meinem firefox? (unter linux *g*)

bitte bitte helft mir, ich verzweifel noch! =)
(das ganze wird ne dynamisch generierte tabelle (mit php) bei der in jeder zelle eine unbekannte anzahl zeilen variabelnamen und werten zu stehen kommt, also rein technisch leider nicht möglich, das ganze einfach in 2 spalten zu pressen, sonst hätt ich das schon längst getan, eine ganze (oder td) zu alignen geht ja problemlos.. es muss also zwingend eine lösung sein, die innerhalb der td auf jeder einzelnen zeile einen linksbündigen und einen rechtsbündigen text erstellt (div geht also auch nicht, weil nach dem end-div tag wird ein zeilenumbruch gemacht. lustigerweise geht es dort dafür *g*))

  1. Moin!

    <TR><td>

    <span style="text-align:left;">text1</span>
    <span style="text-align:right;">text2</span>
    </TD></TR>

    
    >   
    > MEINER meinung nach müsste nun eine Tabellenzelle auf dem Bildschirm erscheinen, die 500px breit ist, eine einzige Zeile umfasst, bei der Links 'text2' steht und rechtsbündig 'text2'.  
      
    Wird nicht passieren.  
      
    text-align richtet den Text INNERHALB des Elements aus. Beispielsweise richtet <td style="text-align:right"> den Text in dieser Tabellenzelle rechtsbündig aus.  
      
    Das sieht man aber nur, wenn es zusätzlich zu dem Platz, den der Text einnimmt, noch weiterer leerer Platz existiert. Wenn die obige Tabellenzelle exakt so breit ist wie der enthaltene Text (z.B. nur ein einziges Wort), dann wird man den Effekt von text-align auch nicht sehen.  
      
    <span> sind inline-Elemente, d.h. sie sind z.B. exakt so breit, wie ihr Textinhalt. Insofern ist es schon deshalb unmöglich, dass du mit text-align das SPAN-Element nach links oder rechts bewegst, weil sich damit eben nur der Text im SPAN an den linken oder rechten Rand vom SPAN bewegen würde - da aber sichtbar nichts passiert, weil kein freier Platz zum Rücken vorhanden ist.  
      
    Abgesehen davon bezweifle ich, dass die CSS-Eigenschaft text-align für inline-Elemente überhaupt zulässig ist (ich hab jetzt aber keine Lust, das nachzugucken, wird bestimmt gleich jemand was zu schreiben, der es auswendig weiß).  
      
    Zur Lösung deines Problems:  
    a) Wenn du die eine Tabellenzelle teilst, und die linke TD linksbündig, die rechte rechtsbündig machst, kannst du aufs SPAN verzichten.  
    b) alternativ ersetze SPAN durch DIV und richte diese dann mit float:left bzw right aus.  
      
     - Sven Rautenberg
    
    1. puts "Hallo " + gets.chomp + "."

      ?> Sven
      => Hallo Sven.

      Abgesehen davon bezweifle ich, dass die CSS-Eigenschaft text-align für inline-Elemente überhaupt zulässig ist [...]

      Warum sollte sie es nicht sein? Sie hat nur eben keinerlei Wirkung.

      Einen schönen Donnerstag noch.

      Gruß, Ashura

      --
      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
      30 Days to becoming an Opera8 Lover -- Day 20: search.ini
      Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
      [Deshalb frei! - Argumente pro freie Software]
      1. Hallo.

        Abgesehen davon bezweifle ich, dass die CSS-Eigenschaft text-align für inline-Elemente überhaupt zulässig ist [...]

        Warum sollte sie es nicht sein? Sie hat nur eben keinerlei Wirkung.

        Nur zur Ergänzung: Jede CSS-Eigenschaft ist für jedes HTML-Element zulässig, bewirkt aber unter Umständen nichts. Letzteres variiert von Browser zu Browser.
        MfG, at

    2. Super! du bist genial *g*

      es hat geklappt:
      <table border=1 width=500>
      <TR><td>
      <div style="float:left;">asdfasdf</div>
      <div style="float:right;">asdfasdf</div>
      <br>
      <div style="float:left;">asdfasdf</div>
      <div style="float:right;">asdfasdf</div>
      </TD></TR>
      </table>

      wieso der div jetzt jeweils keinen zeilenumbruch macht, versteh ich zwar nicht ganz, aber egal, es funktioniert! *g* danke vielmals!

      lg stefan

      1. wieso der div jetzt jeweils keinen zeilenumbruch macht,

        Das würde mich auch mal interessieren, vielleicht hat ja jemand eine Erklärung?

        1. Hi,

          Das würde mich auch mal interessieren, vielleicht hat ja jemand eine Erklärung?

          beschäftigt Euch doch bitte ein wenig mit float, dann versteht Ihr das auch.

          freundliche Grüße
          Ingo