¿Alguna forma de declarar un tamaño / borde parcial a un cuadro en CSS? Por ejemplo, un cuadro con 350px
eso solo muestra un borde inferior en sus primeros pasos 60px
. Creo que puede resultar muy útil.
Ejemplos:
Realmente no. Pero es muy fácil lograr el efecto de una manera que se degrada con gracia y no requiere un marcado superfluo:
div {
width: 350px;
height: 100px;
background: lightgray;
position: relative;
margin: 20px;
}
div:after {
content: '';
width: 60px;
height: 4px;
background: gray;
position: absolute;
bottom: -4px;
}
<div></div>
::outside
y::inside
los pseudo-elementos no están disponibles todavía, me gusta poner en el marcado sólo por el estilo, pero creo que no hay ninguna otra manera.content
en:after
línea o JSS, pero funciona bien usando componentes con estilo.Lo sé, esto ya está resuelto y se solicitaron píxeles. Sin embargo, solo quería compartir algo ...
Los elementos de texto parcialmente subrayados se pueden lograr fácilmente utilizando
display:table
odisplay:inline-block
(Simplemente no uso
display:inline-block
porque, sí, ya sabes, el incómodo4px
espacio).Elementos textuales
Centrado ,
display:table
hace imposible centrar el elemento context-align:center
.Trabajemos con
margin:auto
...Bueno , eso es bueno, pero no parcialmente .
Como bookcasey ya se introdujo, pseudo-elementos valen oro.
Desplazamiento , el subrayado está alineado a la izquierda ahora. Para centrarlo, simplemente empuje el pseudoelemento la mitad de su
width
(50% / 2 = 25%
) hacia la derecha.... como comentó Davidmatas , usar
margin:auto
es a veces más práctico que calcular elmargin
-desplazamiento a mano.Entonces, podemos alinear el subrayado a la izquierda, a la derecha o al centro (sin conocer la corriente
width
) usando una de estas combinaciones:margin-right: auto
(o simplemente déjelo apagado)margin: auto
margin-left: auto
Ejemplo completo
Elementos a nivel de bloque
Esto se puede adoptar fácilmente, de modo que podamos usar elementos a nivel de bloque. El truco consiste en establecer la altura de los pseudoelementos a la misma altura que su elemento real (simplemente
height:100%
):fuente
:after
me gusta más unmargin: 0 auto
enfoquemargin-left: 25%
porque funcionará con cualquier ancho que declare sin necesidad de hacer matemáticas.auto
Aquí hay otra solución en la
linear-gradient
que puede crear fácilmente cualquier tipo de línea que desee. También puede tener varias líneas (en cada lado, por ejemplo) utilizando varios fondos:Mostrar fragmento de código
Aquí hay otra sintaxis para lograr lo mismo que el anterior:
fuente
Usé una cuadrícula para construir y dibujar algunos de los bordes.
Vea aquí .
Código:
fuente
CSS no admite bordes parciales. Necesitaría usar un elemento adyacente para simular esto.
fuente