Zur Navigation

Einrückungen löschen?

1 Ranma (Gast)

Wenn ich eine Einrückung nach rechts habe, die durch verschachtelte Aufzählungslisten erzeugt wurde, läßt sich die Einrückung dann pauschal löschen und der Text wieder linksbündig ausrichten?
(Eigentlich nimmt eine Zählschleife genügend Ausrückungen am Ende vor, aber das funktioniert irgendwie nicht. Die Anzahl kommt aus einer Datenbanktabelle und zur Sicherheit noch eine Ausrückung drauf. Auf eine andere Zählmethode komme ich nicht und die pauschale Löschung der Einrückungen wäre schon deswegen besser, weil ich dann diesen Teil einsparen könnte.)
Ranma

31.03.2016 04:53

2 Jörg Kruse

Es kommt darauf an, auf welche Weise die Texte eingerückt werden. In CSS ließen sich hierfür beispielsweise die Eigenschaften text-indent, padding-left oder margin-left verwenden. Man kann die Einrückung überschreiben, indem man für denselben Selektor die betreffenden Werte (nachträglich) auf 0 setzt. Detaillierter ließe sich dies an einem konkreten Beispiel erklären.

31.03.2016 13:52

3 Ranma (Gast)

Es geht nur um die automatische Einrückung, die der <ul>-tag (und sicherlich auch der <ol>-tag) macht. Also wenn man den so schachtelt:

<ul><li>
  <ul><li>
    <ul><li>
      <ul><li>
      Blablablah
      </li></ul>

Hier drunter bliebe der Text eingerückt, wenn die tags ausgewertet würden. Ich habe schon in professionellen Foren gesehen, daß Einrückungen bleiben oder ein kursiv gesetztes Zitat die ganze Seite inklusive Navigation kursiv setzt. Ich möchte darum, daß ein Absatz wie dieser hier sich nicht darum kümmern braucht, was im Absatz vorher geschieht. Das ist schon alles.
Ranma

01.04.2016 02:41

4 Jörg Kruse

Ich habe schon in professionellen Foren gesehen, daß Einrückungen bleiben oder ein kursiv gesetztes Zitat die ganze Seite inklusive Navigation kursiv setzt.

Das liegt wohl daran, dass HTML-Tags nicht korrekt geschlossen wurden. Wenn auf einem <i> kein </i> folgt, dann bleibt dem Browser gar nichts anderes übrig, als den Rest der Seite kursiv darzustellen.

Bei der Übersetzung von BBCode in HTML-Code sollten demnach nicht einzelne Tags umgewandelt werden, sondern nur Ausdrücke, die Anfangs- und Endtag enthalten.

Ich möchte darum, daß ein Absatz wie dieser hier sich nicht darum kümmern braucht, was im Absatz vorher geschieht. Das ist schon alles.

Das erreichst du dadurch, dass du die HTML-Tags alle ordentlich schließt. So eine Anweisung:

ul {
padding-left: 20px;
}

... bezieht sich nunmal auf einen Abschnitt der durch <ul> und </ul> begrenzt wird.

01.04.2016 15:31

5 Ranma (Gast)

Theoretisch weiß ich schon, daß ein tag geschlossen werden muß. Darum habe ich für die verschachtelte Liste (ein Bäumchen, das beliebig tief werden kann) eine Zählschleife, die das eigentlich erledigen müßte. Nur tut sie das nicht. Oder sie tut es doch. Jedenfalls bleibt eine Einrückung nach rechts erhalten. Mit CSS habe ich nicht an den Einrückungen herumgefummelt. Es sollte Standard-HTML sein.

Würde ich objektorientiert programmieren, dann müßte ich mich doch auch darauf verlassen können, daß sich ein Absatz nicht um einen anderen zu kümmern braucht. Also muß man doch irgendwie pauschal den Standard (linksbündig) wiederherstellen können.
Ranma

02.04.2016 07:40

6 Jörg Kruse

Theoretisch weiß ich schon, daß ein tag geschlossen werden muß. Darum habe ich für die verschachtelte Liste (ein Bäumchen, das beliebig tief werden kann) eine Zählschleife, die das eigentlich erledigen müßte. Nur tut sie das nicht. Oder sie tut es doch.

Und was sagt der HTML-Validator?

Mit CSS habe ich nicht an den Einrückungen herumgefummelt. Es sollte Standard-HTML sein.

Geht es um die Einrückungen in der normalen Ansicht der Seite oder um Einrückungen des HTML-Codes in der Quelltextansicht?

Wenn ersteres: mit HTML kann man keine Absatzformatierug erzeugen, das geht nur mit CSS, und dies setzt wie gesagt ein valides HTML voraus.

02.04.2016 15:43

7 Ranma (Gast)

Mein HTML wird von PHP erzeugt. <ul><li> führt automatisch zu einer Einrückung und zwar bei der Ausgabe, wenn man nicht daran herumfummelt. Das ist valide und ganz genau so wie in der Navigation hier links am Forum! (Der Unterschied ist nur, daß in der Navigation hier keine weiteren Listen als Listenpunkte enthalten sind.)

Aber jetzt habe ich den Fehler gefunden. Ich hatte eine Testdatenbank angelegt und per Hand mit ein paar Beispielen befüllt. Zu jedem Eintrag gibt es da einen Wert für die Tiefe der Ebene, nach der sich die Einrückung richtet. Ich hatte nicht berücksichtigt, daß nach dem letzten Punkt schon alle Werte aus der Datenbank geholt und ausgegeben worden sind. Also mittendrin in der Baumstruktur der Navigation wurde immer korrekt ausgerückt. Am Ende wurde nicht mehr ausgerückt, weil der entsprechende Abschnitt bereits durchlaufen war.

Zur Korrektur habe ich die Zählschleife nochmal angefügt und ihren ersten Parameter weggelassen. So funktioniert es. Nur elegant wäre sicherlich anders. Beim ersten Eintrag muß die Tiefe 0 sein, darum bräuchte das Skript den Wert eigentlich nicht holen. Ab dann wird immer der Unterschied zum vorherigen Wert gebraucht. Was mein Skript eigentlich berücksichtigt mit noch einer Variablen und einer Subtraktion. Eine Vereinheitlichung wäre wünschenswert. Auch eine weitere Vereinheitlichung, um Teile des Baumes mit dem selben Abschnitt im Code darzustellen. Aber zur Not funktioniert es auch so.
Ranma

05.04.2016 03:31

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]