Breite einer Tabelle ändern

Guten Tag,

ich arbeite zur Zeit an einer Homepage und bekomme es leider nicht hin die Breite meiner Tabelle zu ändern, selbst wenn ich die Werte im HTML ändere tut sich bei der tabelle nix.

hier mal mein Code, hoffe ihr könnt mir helfen und bedanke mich schonmal im vorraus =)

Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag

1
2
3
4

1
2
3
4

Woher soll der Browser auch die Maßeinheit kennen wenn du sie nicht angibst? 300 Gurken, Bananen, Pixel, Prozent?

width=„300px“

Negativ
Moin.

width als Attribut von table will Zahlen ohne Einheit für die Anzahl der Pixel, siehe:

http://de.selfhtml.org/html/tabellen/gestaltung.htm#…

Grüße

Leo

Du musst in jeder Spalte mindestens einem Feld eine Breite verpassen, ohne Masseinheit, sind dann Pixel.
Man kann auch eine Kopfzeile definieren statt >tr> dann schreiben.
Steht alles in Selfhtml.
Wenns ganz exakt sein soll, dann statt Tabelle alle Felder mit Div einschließen und absolut positionieren.
Mit Javascript wird das ein recht kurzer Code.

ich arbeite zur Zeit an einer Homepage und bekomme es leider
nicht hin die Breite meiner Tabelle zu ändern, selbst wenn ich
die Werte im HTML ändere tut sich bei der tabelle nix.

Was meinst du mit „Werte in HTML ändere“? Was änderst du? Änderst du „width“? Wie? Größer? Kleiner?

Vielleicht denkst du mal logisch: du füllst die Tabelle mit den Namen der Tage, in einer bestimmten Schriftgröße. Na, macht es jetzt „klick“ bei dir?

Riiiiichtig, jede Zelle hat, abhängig von Inhalt und Schriftgröße, eine Mindestbreite und width=„300“ als Gesamtbreite für die Tabelle ist einfach zu klein, der Browser nimmt also einfach automatisch die passende Breite. Nimm mal das Doppelte oder eine kleinere Schriftgröße, oder Beides und du wirst sehen, es tut sich was!

Gruß, Robi

Moin,

Wenns ganz exakt sein soll, dann statt Tabelle alle Felder mit
Div einschließen und absolut positionieren.

Was soll das denn für eine Empfehlung sein?
Das ist völlig verkehrt.

  1. Es handelt sich hier vermutlich um tabellarische Daten, also ist die richtige Auszeichnung die mit . ist das allgemeine Block-Element, das zum Gruppieren mehrerer Elemente da ist, ist hier also falsch angewendet.
  2. Absolute Positionierung (wie auch alle anderen CSS-Eigenschaften) funktionieren logischerweise mit jedem HTML-Element. Für ein bestimmtes CSS-Verhalten das Tag zu tauschen ist immer falsch, denn HTML definiert ja die logische Bedeutung des Inhalts.
  3. Absolute Positionierung ist meistens nicht nötig. Schon gar nicht zur bloßen Anordnung von Elementen und erst recht nicht, um die Breite von Tabellenzellen festzulegen.

Grüße,
-Efchen

P.S.: Du bist vielleicht einer von denen, die glauben, man mache heute „Layout mit divs“. Wenn Dir das noch niemand gesagt hat, tu ich es hiermit: Das ist Unfug, was man Dir da erzählt hat. Man macht Layout mit CSS. „Layout mit div“ ist exakt das selbe wie Layout mit Tabellen und daher völlig verkehrt.

Statt kann man auch oder nehmen, z.B. wenn Links positioniert werden sollen.

An Unrichtigkeit nicht mehr zu toppen.

Für alle Mitleser:
ist für die physische Textauszeichnung und wird daher nicht mehr verwendet, weil das Aussehen allein mit CSS gemacht wird.
leitet einen Anker (meistens ein Link) ein.
gruppiert mehrere Elemente zu einem logischen Block.

Mit Positionierung hat das alles nichts zu tun, denn mit CSS kann man jedes Element beliebig positionieren.

ich weiß efchen das du warscheinlich sehr viel davon verstehst aber es nicht so dann man keine Websites mit divs macht.
Ich habe in diesen Sommerferien ein Praktikum in einer sehr guten Multimedia-Agentur gemacht die unteranderem die Websites des DRKs und von Apetito machen und die haben auch mit divs gearbeitet!

aber divs kann man doch super mit css verbinden. Man schließt die elemte zu einem block zusammen und mit css bringt man sie dahin wo man sie haben will… ich bin keine profi und darum verstehe ich nicht wie du alles miot css regeln willst ohne divs zu bestimmen oder die element sonst irgentwie zu verbinden

Moin,

ich weiß efchen das du warscheinlich sehr viel davon verstehst
aber es nicht so dann man keine Websites mit divs macht.

Doch. Ist es. Wer etwas anderes behauptet, der hat HTML noch nicht begriffen.

Ich habe in diesen Sommerferien ein Praktikum in einer sehr
guten Multimedia-Agentur gemacht die unteranderem die Websites
des DRKs und von Apetito machen und die haben auch mit divs
gearbeitet!

Wenn sie „Layout mit divs“ macht, dann ist sie keine gute Agentur.
Wenn Du www.drk.de meinst, die Site ist aus Sicht von HTML eine Katastrophe. Derjenige, der diese Site gemacht hat, aht wahrlich keine Ahnung von HTML, wie halt bei allen zu beobachten ist, die glauben, man mache „Layout mit div“.

drk.de hat nichtmal Überschriften. Die semantische Auszeichnung - also das, was HTML allein ausmacht - ist nicht vorhanden.

Jedes Tag in HTML hat eine Bedeutung, eine semantische. dient dazu, mehrere Tags - meinst für gemeinsame Formatierung - zu einem logischen Block zu gruppieren. Damit kann man dem Inhalt aber keine echte Bedeutung geben. Bei HTML kommt es darauf an, dass man Überschriften auszeichnet, Textabsätze, wichtige Textpassagen, Adressen usw. Man gibt dem Inhalt eine Bedeutung. Beim DRK fehlen diese Bedeutungen vollständig bzw. werden völlig falsch eingesetzt.

Z.B. ist dafür da, eine Textpassage als „besonders wichtig“ auszuzeichnen, nicht wie bei drk.de, um es fett darzustellen. Letzteres ist Aufgabe von CSS.

Gerne erkläre ich Dir mehr, aber wenn Du glaubst, bei dieser Agentur etwas gelernt zu haben, dann muss ich DIch enttäuschen. Dieser Quellcode ist ein perfektes Beispiel dafür, wie man es NICHT macht, da sieht man ganz deutlich, was es heißt „Layout mit div“ zu machen, und warum das genauso sinnfrei ist, wie Layout mit Tabellen.

Für so einen Code würde ich keinen Cent bezahlen. Thema verfehlt.

Liebe Grüße,
-Efchen

Guten Morgen,

aber divs kann man doch super mit css verbinden.

Klar. Aber gilt das nicht auch für alle anderen Tags? Man kann auch super mit CSS verbinden. Man kann auch super mit CSS verbinden und oder oder

, sogar , - oder kann man wunderbar mit CSS verbinden.

Aber das ist ja auch der Sinn der Sache!

Logische Auszeichnung mit HTML, Layout und Design mit CSS.

Um CSS zu verwenden, braucht man kein . Alles, was Du per CSS mit einem machen kannst, kannst Du mit allen anderen Tags, die ich oben genannt habe auch machen, auch mit allen anderen Tags, die ich oben nicht genannt habe.
Lediglich zwei unterschiedliche Arten von Tags gibt es, Block-Elemente und Inline-Elemente. Beide verhalten sich leicht unterschiedlich. So kann man einem Inline-Element zwar kein width geben (aber man kann ihm sagen, dass es sich wie ein Block-Element verhalten soll, dann geht das auch wieder!) und Block-Elemente stehen nicht nebeneinander (kann man mit float erreichen), aber generell gilt: Jede CSS-Eigenschaft lässt sich auf jedes HTML-Tag anwenden.

Wen ich ein Menü (also eine ungeordnete Liste) habe, diese an den linken Rand der Seite stellen will, dann muss ich nicht erst ein drumstellen, um dem dann „float:left“ zu sagen, ich kann gleich
sagen.

Man schließt
die elemte zu einem block zusammen und mit css bringt man sie
dahin wo man sie haben will.

Richtig. Aber hier hast Du auch so ganz nebenbei die wichtige Eigenschaft eines genannt: Es existiert allein dazu, MEHRERE Elemente zu GRUPPIEREN. Das ist die semantische Bedeutung von . Deswegen wird es aber nicht zum Layoutmittel, und schon gar nicht zum alleinigen. Hat man nur ein Tag und wll das irgendwo hin bringen, dann macht man das mit diesem einen Tag und packt nicht noch ein drum.

ich bin keine profi und darum
verstehe ich nicht wie du alles miot css regeln willst ohne
divs zu bestimmen

Versuchs doch einfach mal. Wenn Du glaubst, das nicht zu verstehen, dann hast Du es noch nie probiert. Und Du hast womöglich den eigentlichen Sinn von HTML noch nicht verstanden: Semantik, logische Textauszeichnung. Wer das wirklich verinnerlicht hat, der kommt gar nicht darauf, überall s zu platzieren.

Beispiel:

Seitenüberschrift
Lorem ipsum dolor sit amet.
Zweiter Absatz
Dritter Absatz

Das ist ein klassisches Layout. Oben eine Grafik, links das Menü (bekommt float:left), der Content schnappt sich den restlichen Platz. Ohne ein einziges .

Will man nun ein echtes Zweispaltenlayout muss man natürlich den Content, also alles ab dem gruppieren. Dazu gibt es ein bestimmtes Tag: Das bekommt dann noch ein margin-left in der Größe der Breite des Menüs und fertig. Das dient nur dem Gruppieren. Hier ist es erforderlich.

oder die element sonst irgentwie zu
verbinden

Du kehrst nur das entscheidende unter den Teppich, als wäre es nichts besonderes: „verbinden“. Ja, das ist die Anwendung des . Verbinden, gruppieren. Aber nicht, um alles damit einzupacken, was es an Elementen gibt, nur um CSS drauf anzuwenden.
Einzelne Elemente müssen nicht zusätzlich in ein gepackt werden.

Der „Hype“, „Layout mit div“ zu machen, lässt nur die eigentliche Bedeutung von HTML völlig außer Acht. Alles wird in gepackt, überall sind s, das nennt sich dann „div-Suppe“ und ist aus Sicht von HTML schlichtweg falsch.

Schau Dir doch mal www.drk.de an (vielen Dank an den anderen Ast dieses Threads), das ist klassische div-Suppe. Alles wird irgendwie in eingepackt, es gibt keine Überschriften, wird verwendet, um Text fett auszuzeichnen. Aus Sicht von HTML völlig falsch.

Ich glaube bis hierhin reichts erstmal. Gerne beantworte ich mehr Fragen zu dem Thema, hier besteht sehr viel Nachholbedarf, und das obwohl HTML eigentlich super einfach ist und IMHO in 2 Stunden perfekt beherrscht werden kann. Aber wie es halt immer so ist im Internet: Einer sagt was, und alle nehmen es für bare Münze. Das Internet scheint nie zu lügen!

Liebe Grüße,
-Efchen

Effchen, du arbeitest wohl nicht mit dynamischen HTML ?
Dann wüsstest du, dass man braucht, um ein id zu vergeben.
Und wenn wenn man schonmal ein hat, muss man sich nicht nochmal und und und - und alle anderen Tags antun.

Effchen, du arbeitest wohl nicht mit dynamischen HTML ?

Es gibt kein dynamisches HTML.
Das oft verwendete „DHTML“ ist ein Kunstbegriff, der nur die Zusammenarbeit von HTML mit JavaScript bezeichnet.
Genauso ist ja auch AJAX keine eigene Sprache, sondern nur eine Kombination bereits existierender Techniken.

Dann wüsstest du, dass man braucht, um ein id zu
vergeben.

Hä? Quatsch, Du kannst jedem Element eine ID geben, nicht nur .
oder oder

Und wenn wenn man schonmal ein hat, muss man sich nicht
nochmal und und und - und alle anderen Tags
antun.

Völig falsch. Die Tags haben ja eine Bedeutung. Und in HTML gilt es vorrangig, den Inhalt mit den richtigen Tags auszuzeichnen. Hat man eine Überschrift, braucht man zwingend eines der Tags bis .

Folgendes Beispiel ist KEINE Überschrift:
Ich bin KEINE Überschrift, ich tu nur so

Nur das ist eine Überschrift:
Ich BIN eine Überschrift

Das ist HTML. div-Suppe ist kein korrekt angewandtes HTML.

1 Like

tut mir leid nicht drk sondern sie machen die seite vom bsd west… aber egal ich weiß ja nicht was du von beruf bist aber die machen das schon lange und gut und es scheint zu funktionieren also finde ich es anmaßend das du infrage stellst womit diese leute ihre brötchen verdienen und was sie anscheinend so gelernt oder studiert haben,.

tut mir leid nicht drk sondern sie machen die seite vom bsd
west.

Na gut. Du kannst Dir aber natürlich trotzdem die Seite vom DRK ansehen, dann weißt Du, wie man es nicht macht.

aber egal ich weiß ja nicht was du von beruf bist aber
die machen das schon lange und gut und es scheint zu
funktionieren

Nachdem Du ja selbst festgestellt hast, dass ich von einer anderen Site rede, könnte es ja sein, dass Deine Agentur es richtig macht.
Und, nur weil etwas zu funktionieren scheint, heißt es nicht, dass es wirklich überall funktioniert und auch nicht, dass es richtig ist.

also finde ich es anmaßend das du infrage
stellst womit diese leute ihre brötchen verdienen und was sie
anscheinend so gelernt oder studiert haben,.

Was Du findest, ist nicht relevant. Und anmaßend ist das IMHO auch nicht. Ich sage nur wie es ist, wie es richtig ist und dass es etliche gibt, die es falsch machen. Dass Leute mit sowas ihre Brötchen verdienen, also mit minderwertiger Arbeit gutgläubigen Kunden Geld aus der Tasche ziehen, DAS finde ich anmaßend.

Und was das lernen oder studieren angeht, sagt ja niemand, dass sie einen guten Lehrer hatten. Man kann ja auch was falsch beigebracht bekommen, wie man eben an z.B. der Site vom DRK sieht. Sieht man ja auch am Informatikunterricht in unseren Schulen. Vor kurzem hat in einem Thread jemand gesagt, Ihr Lerer hätte ihnen gesagt, eine Website mit Word zu erstellen.

Sachen gibts…

Liebe Grüße,
-Efchen

Hallo Efchen!

Weil du so tapfer beim Kampf gegen die Windmühlen durchgehalten hast, bekommst du jetzt auch ein Sternchen von mir.

Gruß Gernot

Ich nehme an, es ist meine Berufung :smile:

Aber wenn man es einmal verstanden hat, wird man verstehen, warum ich so dahinter bin. Weil HTML eben nunmal so einfach ist und von vielen missverstanden wird. HTML wird viel mehr an Funktionalität zugeschoben, als für was es eigentlich gedacht ist.

HTML in 2 Stunden…schade nur, dass so ein Buch zu schreiben viel länger dauert als 2 Stunden.

-)

-Efchen