Zum Inhalt springen

Link um p Tags erlauben - wie?

Erstellt am 4. Juni 2013 · 5 Antworten · letzte Antwort am 5. August 2013

Tags: HTML & CSS, Frage

icy ·

Hi,

ich nutze TYPO3 4.5.25 und möchte gerne folgendes Konstrukt im RTE erlauben:

<div> 
<a href="anywhere.html"> 
<p> etwas text mit umbrüchen und einem Link, der die ganze Box umschließt - auch im Browser </p>
</a>
</div>

Mein Problem ist nun, wenn ich sowas eingebe und speicher, bekomme ich folgendes Ergebnis:

<div> 
<p><a href="anywhere.html"> </a></p>
<a href="anywhere.html"> 
<p> etwas text mit umbrüchen und einem Link, der die ganze Box umschließt - auch im Browser </p>
</a>
<p><a href="anywhere.html"> </a></p>
</div>

Sieht gut im FE aus, ist aber nicht das, was gewollt ist.

Auf das <div> kann ich im Notfall verzichten, aber der Rest sollte bleiben.

Konfigurationsschnippsel, die ich zusätzlich zur normalen Konfiguration gesetzt hab:

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList := addToList(a)

welches egal zu sein scheint und

RTE.default.proc.allowTagsOutside := addToList(img,a)

Irgendwelche Ideen?

Ines

---

edit: Ergänzungen

jenses ·

A-Tags dürfen nur Inline-Elemente enthalten,
da wirst du wohl an mehreren Stellen angreifen müssen,
um TYPO3 an der Ausgabe von validem HTML zu hindern 8-)
Wahrscheinlich hast du auch irgendwo eine Codeoptimnierung aktiviert (config.xhtml_cleaning) oder ähnliches...

icy ·

Ich habs umgedreht und das a als Block formatiert - aber wenn a nur inline Elemente enthalten darf, wie kann es dann ok sein, ein img da rein zu stecken? Ist das nicht auch block?

Nun ists

<p> <a href="#" style="display:block"> text </a></p>

Aber danke für den Hint mit Codecleaning - zumindest verstehen, wie man sowas verdrehen kann, möchte ich schon.

Grüße, Ines

Unbekannter Benutzer ·

img ist ein inline Element. Benutz mal mehrere img tags nebeneinander in einem Container wo die mir ihrer size auch nebeneinander passen. Die sollten dann auch entsprechend nebeneinander angeordnet sein.

etux ·

Nur als Ergänzung zu den Vorbeiträgen gedacht:
Das img-Element ist ein Inline replaced Element.
Grob gesagt, verhält es sich nach außen wie ein Inline-Level Element und nach Innen wie ein Block-Level Element. Fast so als hätte es ein „display: inline-block;“ (CSS).
Man sollte aber nicht ein Inline-Level Element (HTML) mit einem Element, was „display: inline;“ (CSS) hat, verwechseln. Ein Link um einen Absatz (Block-Level Element innerhalb von einem Inline-Level Element) ist nicht erlaubt, unabhängig davon welche CSS-Eigenschaften die Elementen haben.
Erlaubt wäre diese Konstruktion, wenn der DOCTYPE auf html5 gesetzt wurde. Ein Beispiel:

<!doctype html>
<meta charset="UTF-8">
<title>Link um Absatz</title>
<a href="#">
  <p>Link um Absatz</p>
</a>
danton ·

Hi

Wäre vielleicht interessant was erreicht werden soll.
Vielleicht ist dieses HTML-Konstrukt überflüssig und es gibt eine andere Lösung.
Normalerweise wenn man normal verlinkt sieht es ja so aus.

<p><a href="http://domain.de/?id=2" class="internal-link" title="">TESTTESTTESTTEST</a>

Grüßle Niels