Estou trabalhando em um site que tem quebras de linha inseridas como <br>
em alguns dos títulos. Supondo que eu não possa editar o código-fonte HTML, há uma maneira com o CSS de ignorar essas quebras?
Estou otimizando o site para celular, então não quero usar JavaScript.
br
elementos! Os motivos já são explicados inúmeras vezes! Na minha resposta, mostrei um método alternativo para atingir o objetivo de forma válida, robusta e em vários navegadores.Respostas:
Com css, você pode "ocultar" as tags br e elas não terão efeito:
Se você deseja ocultar apenas alguns dentro de um tipo de título específico, apenas torne seu css mais específico.
fonte
Observação: esta solução funciona apenas para navegadores Webkit, que aplicam pseudoelementos incorretamente a tags de fechamento automático.
Como adendo às respostas acima, é importante notar que, em alguns casos, é necessário inserir um espaço em vez de simplesmente ignorar
<br>
:Por exemplo, as respostas acima irão virar
para
como eu tinha verificado enquanto tentava formatar meu calendário de eventos semanais. É preferível inserir um espaço após "segunda-feira". Isso pode ser feito facilmente inserindo o seguinte no CSS:
Isso vai fazer
parece
Você pode alterar o
content
atributo embr:after
para', '
se desejar separar por vírgulas ou inserir qualquer coisa que desejar' '
para torná-lo o delimitador! A propósitoparece legal ;-)
Veja aqui uma referência.
Como nas respostas acima, se você quiser torná-lo específico para tags, pode. Como se você quiser que essa propriedade funcione para tag
<h3>
, basta adicionar umh3
each beforebr
ebr:after
, por exemplo.Ele funciona mais geralmente para uma pseudo-tag.
fonte
<br />
é um elemento em que um pseudo-elemento não deve funcionar . Econtent
só funciona com pseudoelementos.Se você adicionar no estilo
Então isso vai funcionar. Não tenho certeza se funcionará em versões anteriores do IE.
fonte
É assim que eu faço:
fonte
Você pode usar
span
elementos em vez debr
se quiser que o método de espaço em branco funcione, pois depende de pseudoelementos que "não estão definidos" para elementos substituídos.HTML
CSS
DEMO
A quebra de linha é simplesmente alcançada definindo o elemento span apropriado para
display:block
.Ao usar IDs e / ou classes em sua marcação HTML, você pode facilmente direcionar cada um ou combinação de elementos span por CSS ou usar seletores CSS como
nth-child()
.Assim, você pode, por exemplo, definir diferentes pontos de interrupção usando consultas de mídia para um layout responsivo.
E você também pode simplesmente adicionar / remover / alternar classes por Javascript (jQuery).
A "vantagem" deste método é a sua robustez - funciona em todos os navegadores que suportam pseudo-elementos (ver: Posso usar - Conteúdo gerado em CSS ).
Como alternativa, também é possível adicionar uma quebra de linha por meio de pseudoelementos:
DEMO
fonte
<br>
, pelo menos não cross-browser. Então, mostrei uma alternativa.<br>
elementos resolverá o problema (presumivelmente substituindo-os por espaços). Portanto, todo o problema com o qual a questão como um todo se preocupa é quando não se tem controle do html ; complicado pela estipulação adicional de que eles realmente não queriam usar javascript (por qualquer motivo) para resolvê-lo.<br>
com CSS?" já foi respondido. E somente se você estiver no controle do HTML, isso não significa que você deseja alterá-lo. Mas, no design responsivo, muitas vezes é desejável estar no controle das quebras de linha (além da quebra automática). E, em tais casos, o método de ter espaço em branco ou não controlado por CSS (consultas de mídia) é pelo menos "um método" para atingir o objetivo.Para mim fica melhor assim:
Some text, Some text, Some text
fonte
Para isso, você pode simplesmente fazer assim:
e se estiver dentro de alguma tag PRE, então você pode e se quiser que a tag PRE se comporte como um elemento de bloco regular, você pode usar este CSS:
Ou você pode seguir o estilo de Aneesh Karthik C como:
Eu acho que você percebeu
fonte
::before
e::after
são pelo menos "indefinidos" para "elementos substituídos" comobr
. Portanto, nunca haverá um comportamento de navegador consistente em que se possa confiar! A única coisa que você pode fazer é não usar pseudoelementos com esses elementos!De acordo com sua pergunta, para resolver este problema para Firefox e Opera usando a abordagem Aneesh Karthik C , você precisa adicionar o atributo "float" right ".
Veja o exemplo aqui. Este CSS funciona no Firefox (26.0), Opera (12.15), Chrome (32.0.1700) e Safari (7.0)
Espero que isso responda a sua pergunta !!
fonte
br
já foi respondido (mais de uma vez). A questão é sobre o espaço em branco condicional . E como isso requer o uso de pseudoelementos, não funcionabr
.br
é simplesmente um absurdo! E ainda não consigo ver o que o resto da sua resposta tem a ver com "espaço em branco condicional e brekas de linha"? Talvez você possa explicar melhor, por favor?br
elementos. Se você removê-los, verá que não está funcionando para adicionar qualquer espaço.br
elementos, com espaços antes e depois do primeiro e do último. São esses espaços que fazem parecer que sua solução está funcionando, quando na verdade não está. Quando você remove esses espaços, como fiz no meu exemplo revisado, pode ver que sua solução não está adicionando nenhum espaço no Firefox.Embora esta questão pareça já ter sido resolvida, a resposta aceita não resolveu o problema para mim no Firefox. O Firefox (e possivelmente o IE, embora eu não tenha experimentado) pula os espaços em branco ao ler o conteúdo da tag "conteúdo". Embora eu entenda completamente por que o Mozilla faria isso, ele traz sua cota de problemas. A solução mais fácil que encontrei foi usar espaços inquebráveis em vez de espaços regulares, conforme mostrado abaixo.
Dê uma olhada .
fonte
before
elemento em abr
? Você nem mesmo tem umbr
em seu html no violino. Parte do problema é quebefore
não funcionabr
em alguns navegadores.Sim, você pode ignorar isso
<br>
. Você pode precisar disso especialmente no caso de design responsivo, onde você precisa remover interrupções para dispositivos móveis.HTML
CSS para exemplo de celular
Confira este Codepen:
https://codepen.io/fluidbrush/pen/pojGQyM
fonte
Você pode simplesmente convertê-lo em um comentário.
Ou você pode fazer isso:
Mas se você não quer, por que está colocando isso aí?
fonte