2016-07-01 11 views
2

Ich versuche, ein Text-Highlight zu stylen, aber die CSS, um es zu tun, entgeht mir völlig. Hier ist ein Beispiel des HTML:CSS-Stil um eine Spanne zu skizzieren

This is a long <span class="selection">piece of text, whose sole purpose is being long enough to wrap over several lines,</span> so I can illustrate my problem. 

Und die CSS:

.selection { 
    background: lightblue; 
    padding-left: 3px; 
    padding-right: 3px; 
    border: solid blue thin;  
} 

Was ich hoffe, zu erreichen, ist ein Entwurf für den Bereich der Spanne bedeckt, wie folgt aus: Desired effect

Aber stattdessen wird die Grenze in-zwischen den Zeilen repliziert: Result of CSS

Dann werde ich dachte ich nur Entfernen Sie die border von meinem CSS, das würde mir dies: Compromise

Aber in Wirklichkeit ist es nur so seltsam aussieht:

Result of CSS without the border

ich konzeptionell verstehen, was los ist; Der Bereich enthält nur den Text, nicht den Zeilenabstand. Meine CSS-Fähigkeiten gehen nicht viel weiter als das oben erwähnte Snippet, aber gibt es wirklich keine Möglichkeit, diese Grenzlinien dazwischen loszuwerden?

Antwort

2

Verwendung outline stattdessen verwenden sollten border um das gewünschte Aussehen zu erreichen & fühlen. [ich die Schnipsel aus Hitmands Antwort nahm und änderte es ein wenig]

.text-highlighted { 
 
    background: cyan; 
 
    outline: 1px solid blue; 
 
    padding: .2em .4em; 
 
} 
 

 
.entry { max-width: 200px; padding: .5em; }
<div class="entry">This is a long <mark class="text-highlighted">piece of text, whose sole purpose is being long enough to wrap over several lines,</mark> so I can illustrate my problem.</div>

+0

Cool !! Hatte immer diese "Umriss" -Eigenschaft gehasst, aber ich denke, der Außenseiter hat seinen eigenen Nutzen. –

+0

Ha! Ich habe sogar das Wort Umriss in meinem Titel verwendet;) Funktioniert wie ein Zauber, danke. –

3

Sie richtigen Markup verwenden sollten ... Spanne ist ein allgemeiner Inline-Tag, aber für Text markieren Sie Zeichenhttps://developer.mozilla.org/en/docs/Web/HTML/Element/mark

.text-highlighted { 
 
    background: cyan; 
 
    outline: 1px solid blue; 
 
    padding: .2em .4em; 
 
} 
 

 
.entry { max-width: 200px; padding: .5em; }
<div class="entry">This is a long <mark class="text-highlighted">piece of text, whose sole purpose is being long enough to wrap over several lines,</mark> so I can illustrate my problem.</div>

+0

ein plus eines für noch – GibboK

+2

Zeichen Tag unter Hinweis darauf gibt den gleichen Look & Feel wie 'span'. (+1 für 'mark' gedacht) – avrahamcool

+0

Ich wusste gar nicht, dass das' mark'-Tag existiert, also vielleicht reichen meine HTML-Fähigkeiten ja auch nicht weiter;), aber ich sehe nicht, dass deine Antwort ein anderes gibt Ergebnis. Ich sehe den Punkt der zusätzlichen vertikalen Auffüllung, aber das Ausführen des Snippets und die Größenänderung des Fensters, um den Text umzuleiten, führt zu dem gleichen Ergebnis wie mit dem "span" -Tag. Abgesehen davon, dass es die obige Zeile überlappt. –