¿Hay alguna manera de limitar la longitud de un borde? Tengo un <div>
borde inferior, pero quiero agregar un borde a la izquierda del <div>
que solo se extiende hasta la mitad.
¿Hay alguna manera de hacerlo sin agregar elementos adicionales en la página?
El contenido generado por CSS puede resolver esto por usted:
(nota: la
content: "";
declaración es necesaria para que el pseudo-elemento se procese)fuente
Las
:after
rocas :)Si juega un poco, incluso puede configurar su elemento de borde redimensionado para que aparezca centrado o para que aparezca solo si hay otro elemento al lado (como en los menús). Aquí hay un ejemplo con un menú:
Mostrar fragmento de código
fuente
Sin embargo, podemos imitar el efecto de borde y controlarlo
width
y,height
como queremos, con otras formas.Con CSS (degradado lineal):
Podemos usar
linear-gradient()
para crear una imagen de fondo y controlar su tamaño y posición con CSS para que parezca un borde. Como podemos aplicar múltiples imágenes de fondo a un elemento, podemos usar esta función para crear múltiples bordes como imágenes y aplicarlas en diferentes lados del elemento. También podemos cubrir el área disponible restante con algo de color sólido, degradado o imagen de fondo.HTML requerido:
Todo lo que necesitamos es un solo elemento (posiblemente teniendo alguna clase).
Pasos:
linear-gradient()
.background-size
para ajustar elwidth
/height
de las imágenes creadas arriba para que se vea como un borde.background-position
de posición (como ajustarleft
,right
,left bottom
etc.) de los anteriores frontera creada (s).CSS necesario:
Ejemplos:
Con
linear-gradient()
podemos crear bordes de color sólido, así como tener gradientes. A continuación se muestran algunos ejemplos de bordes creados con este método.Ejemplo con borde aplicado solo en un lado:
Mostrar fragmento de código
Ejemplo con borde aplicado en dos lados:
Mostrar fragmento de código
Ejemplo con borde aplicado en todos los lados:
Mostrar fragmento de código
Captura de pantalla:
fuente
para líneas horizontales puede usar la etiqueta hr:
pero no es posible limitar la altura del borde. solo altura del elemento.
fuente
height
. Para reemplazar el borde de la celda en una etiqueta TD, use<td>your content<hr/></td>
.Las fronteras se definen solo por lado, no en fracciones de un lado. Entonces, no, no puedes hacer eso.
Además, un nuevo elemento tampoco sería un borde, solo imitaría el comportamiento que desea, pero seguiría siendo un elemento.
fuente
Otra forma de hacerlo es usar la imagen de borde en combinación con un degradado lineal.
jsfiddle: https://jsfiddle.net/u7zq0amc/1/
Soporte de navegador: IE: 11+
Chrome: todos
Firefox: 15+
Para un mejor soporte también agregue prefijos de proveedor.
imagen de borde caniuse
fuente
Este es un truco CSS, no una solución formal. Dejo el código con el punto negro porque me ayuda a posicionar el elemento. Luego, colorea tu contenido (color: blanco) y (margen superior: -5px más o menos) para que parezca que el período no está allí.
fuente
Otra solución es que podría usar una imagen de fondo para imitar el aspecto de un borde izquierdo
Es posible que deba ajustar para IE (como de costumbre), pero vale la pena intentarlo si ese es el diseño que está buscando.
fuente
Puede definir un borde solo por lado. ¡Tendría que agregar un elemento extra para eso!
fuente