2016-03-23 10 views
-5

Wie erstelle ich Abstand zwischen dem Text und der Grenze unter dem Text, wie in dem Bild gezeigt, das mit sass/css angefügt ist?Abstand zwischen Text und Rahmen unten

Ich möchte die Entfernung 5px und die Schriftgröße des Textes 15px sein.

Ich versuchte

.selected { 
    color: #284660; 
} 
.selected:after { 
    content: ''; 
    position: absolute; 
    width: 100%; 
    height: 0; 
    left: 0; 
    bottom: 5px; 
    border-bottom: 2px solid #284660; 
} 

tun, aber das schuf eine Grenze, die zu breit war.

enter image description here

+3

Enthalten Sie bitte das entsprechende HTML. Sehen Sie, wie man eine [mcve] – j08691

+0

erstellt Ihr Problem ist mit der Breite der Grenze? Brauchen Sie einen Rahmen mit der gleichen Breite des Textes? – nikoskip

+0

was genau brauchen Sie? – DanyCode

Antwort

0

Versuchen eine negative

{

unten: -5px;

}

+1

Problem wir haben keine Ahnung von Elternhöhe oder Padding ... -5px wird 10px weiter vom Text entfernt :) –

+0

wird auch nicht beheben, dass die Leiste "länger" als der Text ist (was durch das '&' Targeting eines Nicht-'inline'-Elements verursacht wird) . – abluejelly

0

Neben dem völligen Mangel an Wissen über Ihre DOM-Profil oder welchem ​​Element der & bezieht sich auf, wenn Sie nur eine Grenze und Polsterung an einem inline Element schlagen, werden Sie den gewünschten Effekt haben.

Keine Notwendigkeit, mit Pseudoelementen zu spielen.

Offensichtlich sollten Sie diese Styling-Info in die CSS-Datei legen, ich habe es nur für das Beispiel inlineed.


Oh und das nächste Mal, bitte HTML-Beispiel mit Ihrer Probe CSS enthalten. Der einzige Grund, warum ich überhaupt gestört habe, war, dass die Lösung so einfach war wie "Was ist padding für 15, Trebek?"

1

Ich fühle ein paar Dinge, die im obigen Ausschnitt verbessert werden können.

  1. Sie müssen für die gewünschte Wirkung nicht psuedo Element
  2. Sie nicht die absolute Positionierung für das, wollen für den Fall verwenden, sollten Sie psuedo Element

Sie versuchen, diese aus kann in jedem Fall verwenden.

&.selected { 
color: #284660; 
border-bottom: 2px solid #284660; 
padding-bottom:10px ; // this should give you some spacing. 
} 
+0

Funktioniert nicht, wenn '&' ein nicht positioniertes 'block;' Element oder ein 'inline-block;' oder positioniertes 'block' Element mit einer deklarierten' width' oder 'min-width' ist länger als der Text , da die Leiste immer noch länger als der Text ist. – abluejelly

+0

@abluejelly Bitte sehen Sie diese plunkr [link] (https://plnkr.co/edit/9TS1fj0HEKWi77cBWsT7?p=preview) Plunker Code – allupaku

+0

Das ist nicht der Code, den Sie in Ihrer Antwort geschrieben, noch zeigt das, was mein Kommentar zeigte aus. – abluejelly