¿Alguna forma de declarar un tamaño / borde parcial a un cuadro en CSS? Por ejemplo, un cuadro con 350pxeso 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>
::outsidey::insidelos 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.contenten:afterlí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:tableodisplay:inline-block(Simplemente no uso
display:inline-blockporque, sí, ya sabes, el incómodo4pxespacio).Elementos textuales
Centrado ,
display:tablehace 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:autoes 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: automargin-left: autoEjemplo 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
:afterme gusta más unmargin: 0 autoenfoquemargin-left: 25%porque funcionará con cualquier ancho que declare sin necesidad de hacer matemáticas.autoAquí hay otra solución en la
linear-gradientque 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