Ich habe HTML Markup, die ich nicht ändern kann.Wie entfernt man <hr>, die unmittelbar auf eine <hr> folgt?
Beispiel
<p>
TEXT 1
<hr>some text
<hr>
<hr>TEXT 2
<hr>some text
</p>
ich jede hr
entfernen möchten, die sofort eine andere hr
ohne Text zwischen ihnen folgt. Wie Sie aus dem folgenden Ausschnitt sehen können, verursacht das zusätzliche hr
eine doppelte Zeile.
Ich glaube nicht, dass dies mit CSS möglich ist. Ich habe versucht, neben (+) Selektor zu verwenden, aber realisiert, dass es offensichtlich nicht funktioniert.
Ich sah mit jQuery :empty
, aber als hr
ist selbstschließend Ich finde es schwer zu Ziel.
Ich würde mich über Vorschläge freuen.
Snippet
body {
width: 500px;
margin: 0 auto;
}
hr {
border-top: 3px solid #CCC;
border-bottom: none;
color: #CCC
}
hr + hr {
/* display: none; // doesn't work */
}
<p>
TEXT 1
<hr>some text
<hr>some more text
<hr>even more text
<hr>
<hr>TEXT 2
<hr>some text
<hr>some more text
<hr>even more text
</p>
Ich wollte vorschlagen 'span'-Tags zu verwenden, um jedes Text-Segment zu wickeln, aber ich verpasste die erste Zeile Ihrer Frage. "Hr" in "p" ist jedoch kein gültiger HTML-Code, daher sollten Sie Ihre Optionen für den * "unable to alter" * -Teil noch einmal überdenken. IMO, Sie erhalten wahrscheinlich keine konsistente Lösung, da Ihr fehlerhaftes Markup in den verschiedenen Browsern unterschiedlich interpretiert werden kann. –
@JohnWeisz Dank John, ich sah deine Antwort vor dem Entfernen. Ich wusste nicht, dass es ungültig ist. Es scheint visuell auf den Hauptbrowsern zu funktionieren - ist es ein Accessibility-Problem? – sol
Es ist ein root-semantisches Problem, das wahrscheinlich weiterhin kleinere Probleme verursacht, bis es behoben wird. Die meisten Browser werden es beim Rendern sofort korrigieren, aber ja, Accessibility ist einer der Bereiche, die möglicherweise betroffen sind. Der andere ist SEO. –