Gibt es eine Möglichkeit, eine Größe / einen Teilrand für ein Feld in CSS zu deklarieren? Zum Beispiel zeigt ein Feld mit 350px
diesem nur einen Rand unten in seinen ersten 60px
. Ich denke, das könnte sehr nützlich sein.
Beispiele:
Nicht wirklich. Es ist jedoch sehr einfach, den Effekt auf eine Weise zu erzielen, die sich elegant verschlechtert und kein überflüssiges Markup erfordert:
div {
width: 350px;
height: 100px;
background: lightgray;
position: relative;
margin: 20px;
}
div:after {
content: '';
width: 60px;
height: 4px;
background: gray;
position: absolute;
bottom: -4px;
}
<div></div>
::outside
und::inside
Pseudo-Elemente noch nicht verfügbar sind. Ich hasse es, Markups nur für das Styling einzufügen, aber ich glaube nicht, dass es einen anderen Weg gibt.content
in:after
wie Inline - Stil oder JSS, aber es funktioniert gut gestylt Komponenten.Ich weiß, das ist bereits gelöst und Pixel wurden angefordert. Ich wollte jedoch nur etwas teilen ...
Teilweise unterstrichene Textelemente können leicht mit
display:table
oder erreicht werdendisplay:inline-block
(Ich benutze es einfach nicht,
display:inline-block
weil, ja, weißt du, die unangenehme4px
Lücke).Textelemente
Zentrieren ,
display:table
macht es unmöglich , das Element zum Zentrum mittext-align:center
.Lass uns herumarbeiten mit
margin:auto
...Nun , das ist schön, aber nicht teilweise .
Wie bereits im Bücherregal vorgestellt, sind Pseudoelemente Gold wert.
Versetzt ist die Unterstreichung jetzt linksbündig ausgerichtet. Um es zu zentrieren, schieben Sie das Pseudoelement einfach um die Hälfte seines
width
(50% / 2 = 25%
) nach rechts.... wie Davidmatas kommentierte, ist die Verwendung
margin:auto
manchmal praktischer als die Berechnung desmargin
Offsets von Hand.So können wir die Unterstreichung nach links, rechts oder in der Mitte ausrichten (ohne den Strom zu kennen
width
), indem wir eine der folgenden Kombinationen verwenden:margin-right: auto
(oder einfach weglassen)margin: auto
margin-left: auto
Vollständiges Beispiel
Elemente auf Blockebene
Dies kann leicht übernommen werden, so dass wir Elemente auf Blockebene verwenden können. Der Trick besteht darin, die Höhe der Pseudoelemente (einfach ) auf die gleiche Höhe wie das eigentliche Element einzustellen
height:100%
:quelle
:after
Ich mag eher einenmargin: 0 auto
Ansatz als den,margin-left: 25%
weil er mit jeder Breite funktioniert, die Sie deklarieren, ohne dass Sie rechnen müssen.auto
- simplificator :)Hier ist eine weitere Lösung, die davon abhängt,
linear-gradient
wo Sie problemlos jede Art von Linie erstellen können, die Sie möchten. Sie können auch mehrere Zeilen (z. B. auf jeder Seite) verwenden, indem Sie mehrere Hintergründe verwenden:Code-Snippet anzeigen
Hier ist eine andere Syntax, um dasselbe wie oben zu erreichen:
quelle
Ich habe ein Raster verwendet, um einige der Grenzen zu zeichnen.
Siehe hier .
Code:
quelle
CSS unterstützt keine Teilgrenzen. Sie müssten ein benachbartes Element verwenden, um dies zu simulieren.
quelle