Me pregunto qué opciones tiene uno en xhtml 1.0 estricto para crear una línea en ambos lados del texto de la siguiente manera:
Seccion uno ----------------------- Siguiente sección ----------------------- Sección dos
He pensado en hacer algunas cosas elegantes como esta:
<div style="float:left; width: 44%;"><hr/></div>
<div style="float:right; width: 44%;"><hr/></div>
Next section
O alternativamente, porque lo anterior tiene problemas con la alineación (tanto vertical como horizontal):
<table><tr>
<td style="width:47%"><hr/></td>
<td style="vertical-align:middle; text-align: center">Next section</td>
<td style="width:47%"><hr/></td>
</tr></table>
Esto también tiene problemas de alineación, que resuelvo con este desastre:
<table><tr>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
<td style="vertical-align:middle;text-align:center" rowspan="2">Next section</td>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
</tr><tr>
<td> </td>
<td> </td>
</tr></table>
Además de los problemas de alineación, ambas opciones se sienten "confusas", y estaría muy agradecido si hubiera visto esto antes y conociera una solución elegante.
.divider
).Respuestas:
No sé si esto se ha resuelto, pero flexbox ofrece una buena solución:
Ver http://jsfiddle.net/MatTheCat/Laut6zyc/ para la demostración.
Hoy la compatibilidad no es tan mala (puede agregar todas las sintaxis antiguas de flexbox) y se degrada con gracia.
fuente
Qué tal si:
Mira este JSFiddle .
Puede usar
vw
o%
para que responda .fuente
font-size
.La forma de resolver esto sin conocer el ancho y el color de fondo es la siguiente:
Estructura
CSS
Ejemplo: http://jsfiddle.net/z8Hnz/
Doble linea
Para crear una línea doble, use una de las siguientes opciones:
1) Espacio fijo entre líneas
Ejemplo: http://jsfiddle.net/z8Hnz/103/
2) espacio personalizado entre líneas
Ejemplo: http://jsfiddle.net/z8Hnz/105/
Versión SASS (SCSS)
Basado en esta solución, agregué SCSS "con propiedad de color" si pudiera ayudar a alguien ...
ejemplo de uso:
fuente
Puede lograr esto con :: before y :: after sin conocer el ancho del contenedor o el color de fondo, y para lograr un mayor estilo de los saltos de línea. Por ejemplo, esto se puede modificar para hacer líneas dobles, líneas punteadas, etc.
JSFiddle
Uso de CSS y HTML:
Versión SCSS:
fuente
Prueba esto:
Vista previa en vivo en jsFiddle .
fuente
.divider hr
ancho depende de la longitud del texto. Sugerencia:.divider
y los.divider hr
anchos deben especificarse enem
unidades. Para obtener elhr
ancho, use (.divider
ancho menos # de caracteres) / 2.Acabo de encontrar el mismo problema, aquí hay una forma de resolverlo:
Funciona sin establecer un fondo en el elemento de texto, es decir, se verá bien independientemente del fondo que haya detrás.
Puedes probarlo aquí: http://jsfiddle.net/88vgS/
fuente
ACTUALIZAR: Esto no funcionará con HTML5
En su lugar, consulte esta pregunta para obtener más técnicas: desafío CSS, ¿puedo hacer esto sin introducir más HTML?
Solía
line-height:0
crear el efecto en el encabezado de mi sitio guerilla-alumnus.comOtro buen método está en http://robots.thoughtbot.com/
Utiliza una imagen de fondo y flota para lograr un efecto genial.
fuente
fuente
Si puede usar CSS y está dispuesto a usar el
align
atributo en desuso , un conjunto de campos con estilo / leyenda funcionará:El propósito previsto de un conjunto de campos es agrupar lógicamente campos de formulario. Como señaló willoler, un
text-align: center
estilo para no funcionará paralegend
elementos.align="center"
está en desuso HTML pero debe centrar el texto correctamente en todos los navegadores.fuente
<legend>
adquiere los rasgos de visualización de unablock
oinline-block
elemento, ya que puede ser acolchada y con margen, lo que significatext-align:center
no debe trabajar ...legend
elemento,align="center"
es la única solución que pude encontrar que se centra de manera confiable alegend
.Rejilla Bootstrap:
HTML:
CSS:
fuente
vertical-center
clase ya no existe en bootstrap (4.3.1). ¿Podría por favor actualizar su respuesta para deciralign-items-center
?Podrías usar la posición relativa y establecer una altura en el padre
fuente
Heres una solución simple con css solamente, sin trucos de fondo ...
HTML:
violín de ejemplo: https://jsfiddle.net/0Lkj6wd3/
fuente
Hack malvado ...
fuente
Subiendo una publicación de 2 años, pero así es como abordo estas situaciones usando solo un elemento y CSS.
Y aquí hay un violín para comprobarlo: http://jsfiddle.net/sRhBc/ (imagen aleatoria de Google tomada para el borde).
El único inconveniente de este enfoque es que no es compatible con IE7.
fuente
Solo usa
fuente
Woohoo mi primer post a pesar de que este tiene un año. Para evitar los problemas de color de fondo con los envoltorios, puede usar el bloqueo en línea con hr (nadie lo dijo explícitamente). La alineación de texto debe centrarse correctamente ya que son elementos en línea.
fuente
Yo uso un
h1
con un lapso en el medio.Ejemplo HTML:
Ejemplo CSS:
Simple como eso.
fuente
span
, podrías considerar usar adiv
. Sirve para el mismo propósito, excepto que es naturalmente un elemento de bloque. :)h1
es un elemento en línea.span
es agradable para la materia de embalaje, pero la razón por la que prefiero unadiv
en este caso, se debe a que el uso Youri CSS para establecer elspan
adisplay:block;
. No veo el punto de convertir un elemento en línea en un elemento de bloque, cuando hay elementos de bloque adecuados (div
) fácilmente disponibles.h1
que en realidad es un elemento BLOCK. Perdón por la confusion. Aún así, no veo el punto de convertirlospan
en un elemento de bloque, pero lo suficientemente justo.Mirando arriba, modifiqué a:
CSS
HTML
Parece funcionar bien.
fuente
Tomando la solución de @ kajic y poniendo el estilo en CSS:
Luego CSS (pero depende de CSS3 al usar el enésimo selector):
Salud.
(PD: en tbody y tr, Chrome, IE y Firefox al menos insertan automáticamente un tbody y tr, por lo que mi muestra, como @ kajic's, no los incluyó para mantener las cosas más cortas en el marcado html necesario. Esta solución fue probado con las versiones más recientes de IE, Chrome y Firefox, a partir de 2013).
fuente
PAGINA DEMO
HTML
CSS
fuente
Esto funcionó para mí y no requiere color de fondo detrás del texto para ocultar una línea de borde, en su lugar usa la etiqueta hr real. Puede jugar con los anchos para obtener diferentes tamaños de líneas hr.
fuente
Hice un violín que usa FlexBox y también le dará diferentes estilos de HR (línea doble, símbolos en el centro de la línea, sombra, recuadro, guiones, etc.).
CSS
HTML
O aquí hay un violín interactivo: http://jsfiddle.net/mpyszenj/439/
fuente
Puede intentar hacer una
fieldset
y alinear el elemento "leyenda" (el texto de la "siguiente sección") en la mitad del campo con soloborder-top
establecer. No estoy seguro de cómo se coloca una leyenda de acuerdo con el elemento del conjunto de campos. Sin embargo, imagino que podría ser simplemargin: 0px auto
hacer el truco.ejemplo:
fuente
Puedes lograr esto sin
<hr />
. Semánticamente, el diseño debe hacerse con los medios de CSS, en este caso es bastante posible.fuente
Siempre existe el viejo FIELDSET
fuente
html
css
fuente
Puede crear un bloque de envoltura con alguna imagen de fondo adecuada (y también establecer un color de fondo para su bloque de texto centrado).
fuente
CSS
HTML
Puede modificar el ancho en la clase "lado" y "medio" en función de la longitud de su texto en la etiqueta "span". Asegúrese de que el ancho del "medio" más 2 veces el ancho del "lado" sea igual al 100%.
fuente
Fondo transparente receptivo, altura y estilo de divisor variables, posición variable del texto, distancia ajustable entre el divisor y el texto. También se puede aplicar varias veces con diferentes selectores para múltiples estilos de divisor en el mismo proyecto.
SCSS a continuación.
Marcado (HTML):
CSS :
Sin
text-position
que por defecto se centre.Manifestación:
Mostrar fragmento de código
Y SCSS , para modificarlo rápidamente:
violín aquí .
fuente
fuente