Die Div-Breite beträgt 200 Pixel, also beträgt der Rand unten auch 200 Pixel. Was soll ich tun, wenn ich nur 100 Pixel Rand haben möchte, ohne die Div-Breite zu ändern?
div {width:200px;height:50px;position: relative;z-index:1;background:#eee;}div:before {content:"";position: absolute;left:0;bottom:0;height:1px;width:50%;/* or 100px */border-bottom:1px solid magenta;}
Dies war auch meine Technik, aber beachte, dass es den Rand auf der linken Hälfte des Div gibt. Wenn Sie es zentriert haben möchten, geben Sie die div:beforeleft: 50px.
Chowlett
Die Frage gibt nicht an, an welcher Position der Rand erscheinen soll, daher habe ich andere Positionen nicht berücksichtigt
Fabrizio Calderan
5
Wenn die Breite des unteren Randes 50% beträgt und Sie möchten, dass er zentriert ist, muss der Stil sein, left: 25%da er 25% + 50% + 25%
beträgt
5
Ja, mir ist bewusst, dass es in diesem Beispiel funktioniert. Aber für andere, die etwas Ähnliches tun, das möglicherweise versucht, es ansprechbar zu machen, müssen Sie möglicherweise% verwenden, wie in diesem Fall, für den ich die Antwort benötigt habe.
Skift
4
Verwenden Sie margin: auto, right: 0, left: 0auf der :beforedie Linie zu zentrieren. Upvote, wenn dir das geholfen hat.
Ale_info
40
Eine andere Möglichkeit, dies zu tun (in modernen Browsern), ist ein negativ verbreiteter Box-Schatten. Schauen Sie sich diese aktualisierte Geige an: http://jsfiddle.net/WuZat/290/
box-shadow:0px24px3px-24px magenta;
Ich denke jedoch, dass der sicherste und kompatibelste Weg die oben akzeptierte Antwort ist. Ich dachte nur, ich würde eine andere Technik teilen.
Sie können keinen anderen Rand als das Div selbst haben.
Die Lösung wäre, einfach ein weiteres Div unter der Mitte, zentriert oder absolut positioniert, mit dem gewünschten 1-Pixel-Rand und nur 1 Pixel Höhe hinzuzufügen.
Ich habe den ursprünglichen Rand beibehalten, damit Sie die Breite sehen können, und habe zwei Beispiele - eines mit 100 Breite und das andere mit 100 Breite zentriert. Löschen Sie diejenige, die Sie nicht verwenden möchten.
Spät zur Party, aber für alle, die 2 Rahmen erstellen möchten (in meinem Fall unten und rechts), können Sie die Technik in der akzeptierten Antwort verwenden und ein: after pseudo-Element für die zweite Zeile hinzufügen und dann einfach die Eigenschaften wie ändern also:
http://jsfiddle.net/oeaL9fsm/
Ich habe einen Fall, um einen unteren Rand zwischen Bildern im div-Container zu haben, und der beste Code für eine Zeile war - border-bottom-style: inset;
Ich habe so etwas in meinem Projekt gemacht. Ich möchte es hier teilen. Sie können als Kind ein weiteres Div hinzufügen und ihm einen Rand mit geringer Breite geben und ihn mit normalem CSS links, mittig oder rechts platzieren
Der Rand erhält das gesamte HTML-Element. Wenn Sie einen halben unteren Rand möchten, können Sie ihn mit einem anderen identifizierbaren Block wie span umschließen.
das ist nicht hilfreich. die Anforderung ist Grenze von div
ahmednawazbutt
1
Ich habe gerade das Gegenteil davon erreicht :afterund ::afterweil ich meinen unteren Rand genau 1.3rembreiter machen musste:
Mein Element wurde bei der Verwendung super verformt :beforeund :aftergleichzeitig, weil die Elemente horizontal mit und ausgerichtet display: flexsind .flex-direction: rowalign-items: center
Sie können dies verwenden, um etwas breiter oder schmaler zu machen, oder wahrscheinlich um mathematische Dimensionsmods:
a.nav_link-active {
color: $e1-red;
margin-top:3.7rem;}
a.nav_link-active:visited {
color: $e1-red;}
a.nav_link-active:after {
content:'';
margin-top:3.3rem;// margin and height should
height:0.4rem;// add up to active link margin
background: $e1-red;
margin-left:-$nav-spacer-margin;
display: block;}
a.nav_link-active::after {
content:'';
margin-top:3.3rem;// margin and height should
height:0.4rem;// add up to active link margin
background: $e1-red;
margin-right:-$nav-spacer-margin;
display: block;}
Entschuldigung, SCSSmultiplizieren Sie einfach die Zahlen mit 10 und ändern Sie die Variablen mit einigen normalen Werten.
div:before
left: 50px
.left: 25%
da er 25% + 50% + 25%margin: auto
,right: 0
,left: 0
auf der:before
die Linie zu zentrieren. Upvote, wenn dir das geholfen hat.Eine andere Möglichkeit, dies zu tun (in modernen Browsern), ist ein negativ verbreiteter Box-Schatten. Schauen Sie sich diese aktualisierte Geige an: http://jsfiddle.net/WuZat/290/
Ich denke jedoch, dass der sicherste und kompatibelste Weg die oben akzeptierte Antwort ist. Ich dachte nur, ich würde eine andere Technik teilen.
quelle
Sie können einen linearen Farbverlauf verwenden:
quelle
Ich habe Zeile unter unter h3 Tag wie folgt hinzugefügt
quelle
Sie können keinen anderen Rand als das Div selbst haben.
Die Lösung wäre, einfach ein weiteres Div unter der Mitte, zentriert oder absolut positioniert, mit dem gewünschten 1-Pixel-Rand und nur 1 Pixel Höhe hinzuzufügen.
http://jsfiddle.net/WuZat/3/
Ich habe den ursprünglichen Rand beibehalten, damit Sie die Breite sehen können, und habe zwei Beispiele - eines mit 100 Breite und das andere mit 100 Breite zentriert. Löschen Sie diejenige, die Sie nicht verwenden möchten.
quelle
Spät zur Party, aber für alle, die 2 Rahmen erstellen möchten (in meinem Fall unten und rechts), können Sie die Technik in der akzeptierten Antwort verwenden und ein: after pseudo-Element für die zweite Zeile hinzufügen und dann einfach die Eigenschaften wie ändern also: http://jsfiddle.net/oeaL9fsm/
quelle
Ich habe einen Fall, um einen unteren Rand zwischen Bildern im div-Container zu haben, und der beste Code für eine Zeile war - border-bottom-style: inset;
quelle
quelle
Ich habe so etwas in meinem Projekt gemacht. Ich möchte es hier teilen. Sie können als Kind ein weiteres Div hinzufügen und ihm einen Rand mit geringer Breite geben und ihn mit normalem CSS links, mittig oder rechts platzieren
HTML Quelltext:
CSS wie folgt:
quelle
Der Rand erhält das gesamte HTML-Element. Wenn Sie einen halben unteren Rand möchten, können Sie ihn mit einem anderen identifizierbaren Block wie span umschließen.
HTML Quelltext:
CSS wie folgt:
quelle
Das wird helfen:
http://www.w3schools.com/tags/att_hr_width.asp
Dadurch wird eine horizontale Linie mit einer Breite von 50% erstellt. Sie müssen die Klasse erstellen / ändern, wenn Sie den Stil bearbeiten möchten.
quelle
Ich habe gerade das Gegenteil davon erreicht
:after
und::after
weil ich meinen unteren Rand genau1.3rem
breiter machen musste:Mein Element wurde bei der Verwendung super verformt
:before
und:after
gleichzeitig, weil die Elemente horizontal mit und ausgerichtetdisplay: flex
sind .flex-direction: row
align-items: center
Sie können dies verwenden, um etwas breiter oder schmaler zu machen, oder wahrscheinlich um mathematische Dimensionsmods:
Entschuldigung,
SCSS
multiplizieren Sie einfach die Zahlen mit 10 und ändern Sie die Variablen mit einigen normalen Werten.quelle