Eigentlich ist das ziemlich genau das, wofür es <ul> gibt. Da kann man dann auch wunderbar per CSS einstellen, ob sie untereinander oder nebeneinander angezeigt werden sollen.
Diese Tutorial erklärt, wie man aus einer Liste ein Menü machen kann.
--
Hallo zusammen,
Ich würde gerne News sortieren. (MySQL Abfrage)
Und zwar würde ich sie gerne in die Kategorien "News dieser Woche" & "news Letzter Woche" einordnen, wobei jede woche mit dem entsprechenden Montag anfangen muss (demnach nicht einfach -7 Tage)
Heute ist der 16. also würden unter "News dieser Woche" diese Tage 10.-16. , und bei "News letzter Woche" die tage 3.-10. einbezogen werden.
Wie könnte das funktionieren?
Eigentlich muss ich lediglich den letzten bzw. vorletzten Montag um 0.00 Uhr in einen Timestamp umwandeln, habe aber leider keine Ahnung, wie das geht, den Rest pack ich selbst.
Durch date('w').
Dürfte funktionieren.
--A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Weiß auch nicht, aber irgendwie blicke ich da nicht ganz durch.
Was ist denn $timestamp? Der Timestamp zum aktuellen Zeitpunkt?
Die Sache ist doch die, dass ich nicht weiß wieviele Tage ich vom aktuellen Tag abziehen muss, bis ich den Montag erreiche.
Und mit -1 wird lediglich ein Tag zurückgegangen.
$timestamp ist der Timestamp vom aktuellen Tag um 00:00 Uhr. Mit date('w') bekommst du den aktuellen Wochentag zwischen 0 (Sonntag) und 6 (Samstag). Wenn du jetzt von $timestamp diese Tag abziehst, hättest du den Anfangstimestamp für eine Woche, die mit einem Sonntag anfängt. Willst du eine Woche ab Montag, dann musst du einen Tag weiter gehen, also (date('w') - 1) % 7 rechnen (wenn ich mich nicht irre). Die Anzahl der Tage rechnest du dann in Sekunden um ($tage * 24 * 60 * 60) und ziehst die von $timestamp ab. Fertig.
Hier das ganze mal in eine Funktion verpackt:
--
Vielen Dank, funktioniert wunderbar![]()
Ok, das stimmt, aber dann muss ich doch display:block setzen, damit die auch angezeigt werden?
Aber wichtigertes Problem:
Was gibt es für edle (vom Quelltext her saubere) Lösungen, um nach einer Tabellen-Zeile einen von der Breite her ungefähr 1 Zeile breiten (aber das ist ja im Grunde variabel) Abstand zu machen? Sowas mit margin oder sowas wie border-spacing?
Kann ich mit CSS auch komplexe Definitionen festlegen für Unterordnungen, wie im folgenden Schema:
Die "Linke seite sollte also zb. immer Fett gedruckt sein, und die Linke immer in grüner Farbe oder so.
Kann ich also auf das erste Unterelement eines Elementes (id. Fall Element TR auf Unterelement TD) zugreifen, oder brauche ich da das class-Attribut?
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Mit border-spacing kannst du nur den allgemeinen Abstand ändern aber nicht nur den Abstand unten. Wenn geht es mit margin, dass musst du halt mal ausprobieren
Theoretisch geht das über :first-child. table tr td:first-child bezöge sich also auf die gewünschte Tabellenzelle. Allerdings ist das CSS2 und wird nicht in allen Browsern unterstützt. (Zum Beispiel vom IE iirc nicht). Die sichere Lösung ist auf jeden Fall eine Klasse.
--
Geändert von Manni (27.09.2007 um 17:05 Uhr)
Ah, also mit margin geht's net, aber dafür mit padding.
Bezieht sich das aber einfach auf die "ersten Unterelemente", einfach alle td-Elemente die sich dann unter dem tr befinden?Zitat
Ich meinte sowas, das dann das erste td Element im tr-Element vom 2. td Element differenziert. Das also "Links" andere Eigenschaften kriegen kann wie "Rechts".
Aber aufgrund des IE-Problems hast du natürlich recht, lässt sich sowas eig. in normalen Sites eh nicht verwenden. Leider.
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Solange du weder Hintergrund noch rahmen hast, geht das natürlich so wunderbar
Das macht genau das was du willst. Alle direkten <td> Unterelemente würdest du über table > tr > td bekommen.
x:first-child bezieht sich auf ein Element x, aber nur wenn es das erste Kindelement des Elternelements ist.
--
Ja, das kann sein. Aber für meinen Lebnslauf reichts...
Ok, gut, ich dachte schon ich hätte wieder schlecht erklärt.Zitat
Naja, leider kann man's nicht so gut verwenden...
So ist das eben mit den praktischen Dingen...
Trotzdem Danke!
Neues Problem:
Ich arbeite an einem Forum-ähnlichen System, mit einem Benutzersystem.
Nartürlich sollen meine Benuter auch ihre eigenen Avatars einbauen können, doch wie soll man das verwirklichen? Kann man nicht in einer MySQL DB auch Grafik-Daten speichern? Oder sollten sie immer in einen Ordner hochgeladen werden?
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Es würde gehen (Stichwort BLOB), ist aber bei den Datenmassen, die bei einem solchen System möglicherweise kommen könnten, nicht zu empfehlen.
Ich würde die Bilder einfach in einen Ordner reinladen lassen und so benennen, dass man sie den Usern über deren ID zuordnen kann. Hier im vB wird das afair so gemacht, dass die Bilder zusätzlich durchnummeriert werden, wenn man neue hochlädt. Wirkt dem Cache, der in diesem Falle unerwünscht ist, entgegen.
--Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Naja, durch den Cache den Browser nun mal sinnvollerweise bei Bildern verwenden würde es halt immer Unstimmigkeiten geben, wenn jemand seinen Avatar ändert: manche würden dann noch den alten, manche schon den neuen sehen.
Grundsätzlich wohl nicht so schlimm, aber für mich als User wär's, wenn ich draufkommen würde, doch ein Zeichen von einer gewissen Unreife des Systems. Musst letztendlich eh du entscheiden, aber imo ist das den minimalen zusätzlichen Aufwand doch wert. Brauchst ja eigentlich nur ein paar zusätzliche Zeilen bei der Bildauswahl und -änderung.
--A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Das kann ich nicht so unterzeichnen. Meines Wissens speichert ein Browser zwar alles was er runterläd zum Anzeigen zwischen, aber er vergleicht nicht einfach nur die URL und sagt "das brauch ich nicht runterladen, das hab ich schon." Er schickt durchaus eine Anfrage an den Server mit einem Timestamp der Datei die er gecacht hat und fragt dabei an, ob es eine neuere Version der Datei auf dem Server gibt. Wenn dies der Fall ist, schickt der Server sie, wenn nicht, antwortet er mit 304 Not modified. So habe ich das zumindest in Erinnerung.