Gibt es eine Möglichkeit, die Länge eines Rahmens zu begrenzen? Ich habe eine <div>
, die einen unteren Rand hat, aber ich möchte links von dem einen Rand hinzufügen <div>
, der sich nur bis zur Hälfte erstreckt.
Gibt es eine Möglichkeit, dies zu tun, ohne zusätzliche Elemente auf der Seite hinzuzufügen?
CSS-generierte Inhalte können dies für Sie lösen:
(Hinweis - Die
content: "";
Deklaration ist erforderlich, damit das Pseudoelement gerendert werden kann.)quelle
Die
:after
Felsen :)Wenn Sie ein bisschen spielen, können Sie sogar festlegen, dass das verkleinerte Rahmenelement zentriert oder nur angezeigt wird, wenn sich ein anderes Element daneben befindet (wie in Menüs). Hier ist ein Beispiel mit einem Menü:
Code-Snippet anzeigen
quelle
Allerdings können wir mimischen Effekt Grenze und steuern seine
width
undheight
wie wir mit einigen anderen Möglichkeiten wollen.Mit CSS (Linear Gradient):
Wir können
linear-gradient()
Hintergrundbilder erstellen und ihre Größe und Position mit CSS so steuern, dass sie wie ein Rand aussehen. Da wir einem Element mehrere Hintergrundbilder zuweisen können, können wir mit dieser Funktion mehrere randähnliche Bilder erstellen und auf verschiedene Seiten des Elements anwenden. Wir können den verbleibenden verfügbaren Bereich auch mit Volltonfarben, Farbverläufen oder Hintergrundbildern abdecken.Erforderliches HTML:
Alles was wir brauchen ist nur ein Element (möglicherweise mit einer Klasse).
Schritte:
linear-gradient()
.background-size
diese Option, um daswidth
/height
der oben erstellten Bilder so anzupassen , dass es wie ein Rand aussieht.background-position
Position einzustellen (wieleft
,right
,left bottom
usw.) der oben erstellten Grenze (n).Notwendiges CSS:
Beispiele:
Mit können
linear-gradient()
wir einfarbige Ränder sowie Farbverläufe erstellen. Im Folgenden finden Sie einige Beispiele für Rahmen, die mit dieser Methode erstellt wurden.Beispiel mit nur einseitig angewendetem Rand:
Code-Snippet anzeigen
Beispiel mit beidseitig aufgebrachtem Rand:
Code-Snippet anzeigen
Beispiel mit allseitig aufgesetztem Rand:
Code-Snippet anzeigen
Bildschirmfoto:
quelle
Für horizontale Linien können Sie das hr-Tag verwenden:
Es ist jedoch nicht möglich, die Randhöhe zu begrenzen. nur Elementhöhe.
quelle
height
. Verwenden Sie zum Ersetzen des Zellrahmens in einem TD-Tag<td>your content<hr/></td>
.Grenzen werden nur pro Seite definiert, nicht in Bruchteilen einer Seite. Also, nein, das kannst du nicht.
Außerdem wäre ein neues Element auch kein Rand, es würde nur das gewünschte Verhalten nachahmen - aber es wäre immer noch ein Element.
quelle
Eine andere Möglichkeit besteht darin, ein Rahmenbild in Kombination mit einem linearen Farbverlauf zu verwenden.
jsfiddle: https://jsfiddle.net/u7zq0amc/1/
Browser-Unterstützung: IE: 11+
Chrome: alles
Firefox: 15+
Für eine bessere Unterstützung fügen Sie auch Herstellerpräfixe hinzu.
caniuse Randbild
quelle
Dies ist ein CSS-Trick, keine formale Lösung. Ich lasse den Code mit dem Punkt schwarz, weil er mir hilft, das Element zu positionieren. Färben Sie anschließend Ihren Inhalt (Farbe: Weiß) und (Rand oben: -5 Pixel oder so), um ihn so zu gestalten, als ob der Punkt nicht vorhanden wäre.
quelle
Eine andere Lösung besteht darin, ein Hintergrundbild zu verwenden, um das Aussehen eines linken Randes nachzuahmen
Möglicherweise müssen Sie den IE anpassen (wie gewohnt), aber es ist einen Versuch wert, wenn dies das Design ist, für das Sie sich entscheiden.
quelle
Sie können nur einen Rand pro Seite definieren. Dafür müssten Sie ein zusätzliches Element hinzufügen!
quelle