Markus: td-Tag eine Breite zuweisen

Hallo zusammen,

ich frage mich seit geraumer Zeit, um damit ein Problem recht simple zu lösen, ob es möglich ist, jedem ersten td-Tag in einer Tabellenreihe, also zwischen den tr-Tags, einen bestimmer Breite zuzuweisen.
Das ganze natürlich ohne z.B. ID's in die Tags zu schreiben, da ich sonst auch überall die Breite reinschreiben könnte.

Vielen Dank für Eure Hilfe,
 Markus

  1. Hi!

    ich frage mich seit geraumer Zeit, um damit ein Problem recht simple zu lösen, ob es möglich ist, jedem ersten td-Tag in einer Tabellenreihe, also zwischen den tr-Tags, einen bestimmer Breite zuzuweisen.
    Das ganze natürlich ohne z.B. ID's in die Tags zu schreiben, da ich sonst auch überall die Breite reinschreiben könnte.

    Ich habe es jetzt nicht probiert, doch IMHO müsste es folgenderweise doch funktionieren:

    <style type="text/css">
    td{
       width:4em;
      }
    </style>

    Und das ganze sollte noch zwischen den <head>-Tags stehen.

    ---------------------------------------------------------

    Grüße,

    Fabian St.

    1. [snip]

      Ich habe es jetzt nicht probiert, doch IMHO müsste es folgenderweise doch funktionieren:

      <style type="text/css">
      td{
         width:4em;
        }
      </style>

      Hi,

      das funktioniert ohne Probleme, jedoch auf alle td-Tags. Ich wollte ja versuchen einen Stil nur auf den ersten td-Tag einer jeden Reihe anzuwenden.

      Danke,
       Markus

      1. Tachchen!

        Dann solltest du den entsprechenden Zellen wohl eine gemeinsame Klasse zuweisen?

        Gruß

        Die schwarze Piste

        1. Dann solltest du den entsprechenden Zellen wohl eine gemeinsame Klasse zuweisen?

          Hi,

          das habe ich ja vor, aber etwa Folgendes liegt mir vor:

          <table>
           <tr>
            <td>ZElle 1</td>
            <td>Zelle 2</td>
            <td>Zelle 3</td>
           </tr>
           <tr>
            <td>ZElle 1</td>
            <td>Zelle 2</td>
            <td>Zelle 3</td>
           </tr>
          </table>

          Nun moechte ich eine Klasse a la:
          .foo
          {
            width: 10%;
          }

          aaaaber: ich kann die sourcen nicht anruehren, d.h. nicht ueberall in den ersten td-Tag (also wo Zelle 1 drin steht) class="foo" schreiben.

          Danke,
           Markus

          1. Tachchen!

            Wenn ich dich richtig verstehe, hast du also vergessen, die Unwesentlichkeit, dass du ausschließlich Zugriff auf die CSS-Datei hast,  zu erwähnen?

            Gruß

            Die schwarze Piste

            1. Wenn ich dich richtig verstehe, hast du also vergessen, die Unwesentlichkeit, dass du ausschließlich Zugriff auf die CSS-Datei hast,  zu erwähnen?

              Jein, ich kann auf alles zugreifen/schreiben. Aber tue ich mich schwer daran mehrerere tausend Zeilen Code zu durchforsten, um jeweils die erste Spalte zu aendern.
              Aber zur Problemloesung kann man durchaus sagen, dass ich nur die CSS-Datei schreiben kann :)

              Danke,
               Markus

              1. Hi,

                manche Sachen lassen sich mit xHTML sinnvoll lösen. Informiere Dich einmal über <colgroup>.

                freundliche Grüße
                Ingo

              2. Tachchen!

                Jein, ich kann auf alles zugreifen/schreiben. Aber tue ich mich schwer daran mehrerere tausend Zeilen Code zu durchforsten, um jeweils die erste Spalte zu aendern.

                Aber gerade, wenn man in solchen Ligen spielt, wird der HTML-Code doch regelmäßig scriptbasiert irgendwie generiert? Sollte nicht dort nach einem Ansatz gesucht werden?

                Gruß

                Die schwarze Piste

      2. Hi,

        das funktioniert ohne Probleme, jedoch auf alle td-Tags. Ich wollte ja versuchen einen Stil nur auf den ersten td-Tag einer jeden Reihe anzuwenden.

        die Breitenangabe _einer_ Zelle in einer Spalte wirkt sich doch automatisch auf die gesamte Spalte aus, d.h. du musst nur einer Zelle eine Breite zuweisen (oder hab ich das Problem falsch verstanden?).

        Gruß,
        Andreas.

        1. die Breitenangabe _einer_ Zelle in einer Spalte wirkt sich doch automatisch auf die gesamte Spalte aus, d.h. du musst nur einer Zelle eine Breite zuweisen (oder hab ich das Problem falsch verstanden?).

          Hi,

          stimmt. Jedoch moechte ich _nur_ der ersten Spalte/Zelle sagen koennen sie soll 100px breit sein und einen tollen roten BG haben.

          Danke,
           Markus

  2. Evtl. Kann man das mit 'counter'[1] loesen, doch verstehe ich diese nicht so recht.

    Die Kompatiblitaet zu verschiedenen Browsern ist hierbei egal.

    Danke,
     Markus

    [1] http://de.selfhtml.org/css/eigenschaften/pseudoformate.htm#nummerierung

  3. Hi,

    ich frage mich seit geraumer Zeit, um damit ein Problem recht simple zu lösen, ob es möglich ist, jedem ersten td-Tag in einer Tabellenreihe, also zwischen den tr-Tags, einen bestimmer Breite zuzuweisen.
    Das ganze natürlich ohne z.B. ID's in die Tags zu schreiben, da ich sonst auch überall die Breite reinschreiben könnte.

    td:first-child { width:10em; }

    Das setzt natürlich einen hinreichend CSS-fähigen Browser voraus.
    Für den IE kannst Du das also vergessen.
    Opera/Mozilla kennen den :first-child-Selektor.

    Wenn es aber "nur" um die Breite der ersten Spalte geht, ist col das HTML-Element, das Dir weiterhelfen wird.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  4. Hallo.

    ich frage mich seit geraumer Zeit, um damit ein Problem recht simple zu lösen, ob es möglich ist, jedem ersten td-Tag in einer Tabellenreihe, also zwischen den tr-Tags, einen bestimmer Breite zuzuweisen.

    Denke andersherum: Weise einfach innerhalb der CSS-Datei allen Zellen mittels "td {width: 5em;}" den für die erste Zelle gewünschten Wert zu. Durch die im Anschluss daran notierte Zuweisung "td + td {width: auto;}" weist du allen Zellen, die auf eine Zelle folgen, also der zweiten bis n-ten, wieder eine sich automatisch anpassende Breite zu und überschreibst damit den vorher festegelegten Wert. Damit hat dann ausschließlich die jeweils erste Zelle die gewünschte Breite.
    MfG, at

    1. Hi,

      Denke andersherum: Weise einfach innerhalb der CSS-Datei allen Zellen mittels "td {width: 5em;}" den für die erste Zelle gewünschten Wert zu. Durch die im Anschluss daran notierte Zuweisung "td + td {width: auto;}" weist du allen Zellen, die auf eine Zelle folgen, also der zweiten bis n-ten, wieder eine sich automatisch anpassende Breite zu und überschreibst damit den vorher festegelegten Wert.

      Welcher Browser kennt den + Selektor, aber den :first-child Selektor nicht?

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hallo.

        Welcher Browser kennt den + Selektor, aber den :first-child Selektor nicht?

        Die einschlägigen Übersichten kennen wir sicher beide.
        Wichtig ist mir jedoch, dass beide Techniken nur im hiesigen Fall gleich funktionieren. Denn wenn ich etwa den ersten Absatz innerhalb eines <div> formatieren will, um etwa einen Anreißer zu verdeutlichen, versagt ":first-child" schon bei Verwendung einer Überschrift, da diese ja dann das erste Element innerhalb des <div> ist.
        MfG, at