acabo logra lo opuesto a esto usando :after
y ::after
porque necesitaba hacer mi borde inferior exactamente 1.3rem
más amplia:
mi elemento tiene super deformado cuando uso d :before
y :after
al mismo tiempo porque los elementos están alineados horizontalmente con display: flex
, flex-direction: row
y align-items: center
.
usted podría utilizar esto para hacer algo más ancho o más estrecho, o probablemente grandes modificaciones dimensión matemáticos:
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;
}
Lo sentimos, esto es SCSS
, simplemente multiplicar los números por 10 y cambiar las variables con unos valores normales.
Esta fue mi técnica también, pero tenga en cuenta que dará el borde en la mitad izquierda de la div. Si lo quieres centrado, da 'div: before'' left: 50px'. – Chowlett
La pregunta no especifica en qué posición debe aparecer el borde, por lo que no he considerado otras posiciones – fcalderan
si el ancho del borde inferior es 50% y lo quiere centrado, el estilo debe ser '' 'left: 25 % '' 'ya que será 25% + 50% + 25% – skift