Estoy trabajando en un sitio que tiene saltos de línea insertados como <br>
en algunos de los títulos. Suponiendo que no puedo editar el HTML de origen, ¿hay alguna forma con CSS que pueda ignorar estos saltos?
Estoy optimizando el sitio para dispositivos móviles, por lo que realmente no quiero usar JavaScript.
br
elementos. ¡Las razones ya se explican en numerosas ocasiones! En mi respuesta les mostré un método alternativo para lograr el objetivo de manera válida, robusta y entre navegadores.Respuestas:
Con CSS, puede "ocultar" las etiquetas br y no tendrán ningún efecto:
Si solo desea ocultar algunos dentro de un tipo de encabezado específico, simplemente haga que su css sea más específico.
fuente
Nota: Esta solución solo funciona para navegadores Webkit, que aplican incorrectamente pseudoelementos a etiquetas de cierre automático.
Como apéndice a las respuestas anteriores, vale la pena señalar que en algunos casos es necesario insertar un espacio en lugar de simplemente ignorar
<br>
:Por ejemplo, las respuestas anteriores se convertirán
a
como había verificado mientras trataba de formatear mi calendario de eventos semanales. Se prefiere insertar un espacio después de "Lunes". Esto se puede hacer fácilmente insertando lo siguiente en el CSS:
Esto hará
parece
Puede cambiar el
content
atributobr:after
a', '
si desea separarlo por comas, o poner lo que quiera dentro' '
para convertirlo en el delimitador. Por ciertoluce ordenado ;-)
Consulte aquí para obtener una referencia.
Como en las respuestas anteriores, si desea que sea específico de la etiqueta, puede hacerlo. Como si desea que esta propiedad funcione para la etiqueta
<h3>
, simplemente agregueh3
cada uno antesbr
ybr:after
, por ejemplo.Funciona más generalmente para una pseudoetiqueta.
fuente
<br />
es un elemento en el que se supone que un pseudo-elemento no debe funcionar . Ycontent
solo funciona con pseudo-elementos.Si agrega en el estilo
Entonces esto funcionará. Sin embargo, no estoy seguro de si funcionará en versiones anteriores de IE.
fuente
Así es como lo hago:
fuente
Puede usar
span
elementos en lugar debr
si desea que funcione el método de espacio en blanco, ya que depende de pseudoelementos que "no están definidos" para los elementos reemplazados.HTML
CSS
MANIFESTACIÓN
El salto de línea se logra simplemente configurando el elemento de tramo apropiado en
display:block
.Al usar ID y / o clases en su marcado HTML, puede apuntar fácilmente a cada uno o combinación de elementos span mediante CSS o usar selectores CSS como
nth-child()
.Entonces, por ejemplo, puede definir diferentes puntos de interrupción utilizando consultas de medios para un diseño receptivo.
Y también puede simplemente agregar / eliminar / alternar clases mediante Javascript (jQuery).
La "ventaja" de este método es su solidez: funciona en todos los navegadores que admiten pseudoelementos (consulte: ¿Puedo usar - Contenido generado con CSS ).
Como alternativa, también es posible agregar un salto de línea a través de pseudoelementos:
MANIFESTACIÓN
fuente
<br>
, al menos no entre navegadores. Entonces mostré una alternativa.<br>
elementos resuelve el problema (presumiblemente reemplazándolos con espacios). Así que todo el tema que preocupa a la pregunta en su conjunto es cuándo uno no tiene control del html ; complicado por la estipulación agregada de que realmente no querían usar javascript (por cualquier motivo) para resolverlo.<br>
con CSS?" ya fue respondido. Y solo si tienes el control del HTML, eso no significa que quieras cambiarlo. Pero en el diseño receptivo, a menudo es deseable tener el control de los saltos de línea (aparte del ajuste automático). Y en tales casos, el método de tener espacios en blanco o no controlados por CSS (media queries) es al menos "un método" para lograr el objetivo.Para mí se ve mejor así:
Some text, Some text, Some text
fuente
Para eso, puedes hacer lo siguiente:
y si está dentro de alguna etiqueta PRE, entonces puede y si desea que la etiqueta PRE se comporte como un elemento de bloque normal, puede usar este CSS:
O puede seguir el estilo de Aneesh Karthik C como:
Creo que lo conseguiste
fuente
::before
y::after
son al menos "indefinidos" para "elementos reemplazados" comobr
. ¡Así que nunca habrá un comportamiento de navegador consistente en el que se pueda confiar! ¡Lo único que puede hacer es no usar pseudo elementos con estos elementos!Según su pregunta, para resolver este problema para Firefox y Opera usando el enfoque Aneesh Karthik C , debe agregar el atributo "flotar" derecho ".
Mira el ejemplo aquí. Este CSS funciona en Firefox (26.0), Opera (12.15), Chrome (32.0.1700) y Safari (7.0)
¡Espero que esto responda a tu pregunta!
fuente
br
ya está respondido (más de una vez). La pregunta es sobre el espacio en blanco condicional . Y como esto requiere el uso de pseudo elementos, no funciona conbr
.br
es simplemente una tontería! ¿Y todavía no puedo ver qué tiene que ver el resto de su respuesta con "espacios en blanco condicionales y brekas de línea"? ¿Quizás puedas explicarlo más, por favor?br
elementos. Si los elimina, verá que no funciona para agregar ningún espacio.br
elementos, con espacios antes y después del primero y el último. Son esos espacios los que hacen que parezca que su solución está funcionando, cuando en realidad no lo está. Cuando eliminas esos espacios, como hice en mi ejemplo revisado, puedes ver que tu solución no agrega ningún espacio en Firefox.Si bien esta pregunta parece que ya se ha resuelto, la respuesta aceptada no me resolvió el problema en Firefox. Firefox (y posiblemente IE, aunque no lo he probado) omite los espacios en blanco mientras lee el contenido de la etiqueta "contenido". Si bien entiendo completamente por qué Mozilla haría eso, trae su parte de problemas. La solución más fácil que encontré fue usar espacios irrompibles en lugar de los regulares, como se muestra a continuación.
Echa un vistazo .
fuente
before
elemento en abr
? Ni siquiera tiene unbr
en su html en el violín. Parte del problema es quebefore
no funcionabr
en algunos navegadores.Sí, puedes ignorar esto
<br>
. Es posible que lo necesite especialmente en el caso de un diseño receptivo en el que necesite eliminar las interrupciones para los dispositivos móviles.HTML
CSS para ejemplo móvil
Consulte este Codepen:
https://codepen.io/fluidbrush/pen/pojGQyM
fuente
Simplemente puede convertirlo en un comentario.
O puedes hacer esto:
Pero si no lo quieres, ¿por qué lo pones ahí?
fuente