He siguientes del código de
div {
width:200px;
border-bottom:1px solid magenta;
height:50px;
}
El div ancho de 200px así frontera-parte inferior es también 200px pero ¿qué debo hacer si quiero frontera-parte inferior sólo 100px sin cambiar div ancho?
Puede utilizar pseudoelements. E. g.
CSS:
HTML:
Sin necesidad de utilizar el extra de marcado para la presentación propósito. :después de que también es apoyado desde IE8.
edición:
si usted necesita un alineado a la derecha de la frontera, acaba de cambiar
left: 0
conright: 0
si usted necesita un centro alineado a la frontera simplemente establezca
left: 50px;
div:before
left: 50px
.left: 25%
ya que será de un 25% + 50% + 25%right: 0
endiv:before
. @fcalderan, sueles usar que la sangría en el código CSS?margin: auto
,right: 0
,left: 0
en el:before
el centro de la línea. Upvote si esto te ayudó.Otra manera de hacer esto (en los navegadores modernos) es con una diferencia negativa box-shadow. Echa un vistazo a este actualizado violín: http://jsfiddle.net/WuZat/290/
Creo que la forma más segura y compatible manera es el aceptado respuesta anterior, aunque. Solo que pensé que me gustaría compartir otra técnica.
Puede utilizar un gradiente lineal:
CSS:
HTML:
He añadido la línea del bajo h3 etiqueta como esta
Usted no puede tener un tamaño diferente de la frontera de la div sí mismo.
la solución sería añadir otro div en neath, centrada o absoluta posicionado, con la deseada 1pixel frontera y sólo 1pixel en altura.
http://jsfiddle.net/WuZat/3/
Salí de la frontera original para que usted pueda ver el ancho, y tienen dos ejemplos, uno con 100 de ancho, y el otro con 100 de ancho en el centro. Eliminar la que usted no desea utilizar.
Tarde a la fiesta, pero para cualquier persona que quiera hacer 2 de las fronteras (en la parte inferior y a la derecha en mi caso) se puede utilizar la técnica en respuesta y agregar un :después de pseudo-elemento de la segunda línea a continuación, sólo cambiar las propiedades como:
http://jsfiddle.net/oeaL9fsm/
La frontera es dado a todo el elemento html. Si desea que la mitad del borde inferior, se puede envolver con algunos otros de identificación de bloque como span.
Código HTML:
CSS de la siguiente manera:
Esto le ayudará a:
http://www.w3schools.com/tags/att_hr_width.asp
Esto crea una línea horizontal con una anchura de 50%, usted necesita para crear/modificar la clase si desea editar el estilo.
Yo sólo logra lo opuesto a esto el uso de
:after
y::after
porque me necesitaba para hacer mi borde inferior exactamente1.3rem
más amplio:Mi elemento puse super deformado cuando he usado
:before
y:after
, al mismo tiempo, debido a que los elementos están alineados horizontalmente condisplay: flex
,flex-direction: row
yalign-items: center
.Usted podría utilizar esto para hacer algo más ancho o más estrecho, o, probablemente, cualquier matemático dimensión mods:
Lo siento, esta es
SCSS
, sólo se debe multiplicar el número por 10 y el cambio de las variables con algunos de los valores normales.