Ignorar con CSS?


Estoy trabajando en un sitio que tiene saltos de línea insertados como <br> en algunos de los encabezados. Asumiendo que no puedo editar el código fuente HTML, ¿hay alguna manera con CSS que pueda ignorar estos saltos?

Estoy optimizando el sitio desde dispositivos móviles, así que realmente no quiero usar JavaScript.

 91
css
Author: Evans, 2011-09-29

10 answers

Con css, puede "ocultar" las etiquetas br y no tendrán un efecto:

br {
    display: none;
}

Si solo desea ocultar algunos dentro de un tipo de encabezado específico, simplemente haga que su css sea más específico.

h3 br {
    display: none;
}
 161
Author: enobrev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-29 11:33:25

Nota: Esta solución solo funciona para los navegadores Webkit, que aplican incorrectamente pseudo-elementos a las etiquetas de cierre automático.

Como adición a las respuestas anteriores, vale la pena señalar que en algunos casos uno necesita insertar un espacio en lugar de simplemente ignorar <br>:

Por ejemplo, las respuestas anteriores se convertirán

Monday<br>05 August

A

Monday05 August

Como lo había verificado mientras intentaba formatear mi calendario de eventos semanal. Se prefiere insertar un espacio después de "Lunes". Esto se puede hacer fácilmente insertando lo siguiente en el CSS:

br  {
    content: ' '
}
br:after {
    content: ' '
}

Esto hará

Monday<br>05 August

Parece

Monday 05 August

Puede cambiar el atributo content en br:after a ', ' si desea separar por comas, o poner cualquier cosa que desee dentro de ' ' para que sea el delimitador! Por cierto

Monday, 05 August

Se ve limpio; -)

Ver aquí para una referencia.

Al igual que en las respuestas anteriores, si desea hacerlo específico de la etiqueta, puede hacerlo. Como si tú si desea que esta propiedad funcione para tag <h3>, simplemente agregue un h3 cada uno antes de br y br:after, por ejemplo.

Funciona más generalmente para una pseudo-etiqueta.

 84
Author: Host-website-on-iPage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-20 19:31:48

Si se añade el estilo

br{
    display: none;
}

Entonces esto funcionará. Sin embargo, no estoy seguro de si funcionará en versiones anteriores de IE.

 16
Author: Tim B James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-29 11:30:55

Así es como lo hago:

br { 
    display: inline;
    content: ' ';
    clear:none;
}
 8
Author: Neo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-02 01:47:43

Puede usar elementos span en lugar del br si desea que funcione el método del espacio en blanco, ya que depende de pseudo-elementos que están "no definidos" para los elementos reemplazados.

HTML

<p>
   To break lines<span class="line-break">in a paragraph,</span><span>don't use</span><span>the 'br' element.</span>
</p>

CSS

span {white-space: pre;}

span:after {content: ' ';}

span.line-break {display: block;}

span.line-break:after {content: none;}

DEMO

El salto de línea se logra simplemente estableciendo el elemento span apropiado en display:block.

Mediante el uso de ID y / o Clases en su marcado HTML, puede apuntar fácilmente a cada uno o combinación de span elementos por CSS o usar selectores CSS como nth-child().

Por lo que puede, por ejemplo, definir diferentes puntos de interrupción mediante el uso de consultas de medios para un diseño adaptable.

Y también puede simplemente agregar/ eliminar/ alternar clases mediante Javascript (jQuery).

La "ventaja" de este método es su robustez - funciona en todos los navegadores que soportan pseudo-elementos (ver: Puedo usar - CSS Generated content).

Como alternativa, también es posible agregar un salto de línea a través de pseudo-elementos:

span.break:before {  
    content: "\A";
    white-space: pre;
}

DEMO

 4
Author: Netsurfer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-06 21:59:11

Para eso puedes hacer esto:

br{display: none;}

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:

pre {white-space: normal;}

O puedes seguir el estilo de Aneesh Karthik C como :

br  {content: ' '}
br:after {content: ' '}

Creo que lo tienes

 1
Author: dawadisuren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:08

Para mí se ve mejor así:

Some text, Some text, Some text

br {
  display: inline;
  content: '';
}

br:after {
  content: ', ';
  display: inline-block;
}
<div style="display:block">
  <span>Some text</span>
  <br>
  <span>Some text</span>
  <br>
  <span>Some text</span>
</div>
 1
Author: Ruslan P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:49:52

Si bien esta pregunta parece que ya se ha resuelto, la respuesta aceptada no resolvió el problema para mí en Firefox. Firefox (y posiblemente IE, aunque no lo he probado) saltar espacios en blanco mientras se lee el contenido de la etiqueta" contenido". Aunque 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 no rompibles en lugar de los normales, como se muestra a continuación.

.noLineBreaks br:before{
content: '\a0'
}

Echa un vistazo.

 0
Author: Santo Guevarra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 20:57:04

Según su pregunta, para resolver este problema para Firefox y Opera utilizando Aneesh Karthik C enfoque que necesita para agregar "float" right" atributo.

Compruebe el ejemplo aquí. Este CSS funciona en Firefox (26.0), Opera (12.15), Chrome (32.0.1700) y Safari (7.0)

br {
   content: " ";  
   float:right; 
}

¡Espero que esto responda a su pregunta!!

 0
Author: shinesecret,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:14

Simplemente puede convertirlo en un comentario..

O puedes hacer esto:

br {
display: none;
}

Pero si no lo quieres, ¿por qué estás poniendo eso ahí?

 -1
Author: B.A.S.E - Programing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-09 12:19:06