É possível segmentar a <br/>
tag de quebra de linha com CSS?
Gostaria de ter uma linha tracejada de 1px sempre que houver uma quebra de linha. Estou personalizando um site com meu próprio CSS e não posso alterar o HTML definido, caso contrário, usaria de outra maneira.
Não acho que seja possível, mas talvez haja uma maneira de alguém conhecer.
html
css
line-breaks
dc3
fonte
fonte
Respostas:
BR
gera uma quebra de linha e é apenas uma quebra de linha. Como esse elemento não tem conteúdo, existem apenas alguns estilos que fazem sentido para aplicar nele, comoclear
ouposition
. Você pode definirBR
a borda, mas não a verá, pois não possui dimensão visual.Se você deseja separar visualmente duas frases, provavelmente deseja usar a régua horizontal que se destina a esse objetivo. Como você não pode alterar a marcação, receio que, usando apenas CSS, você não consiga isso.
Parece, já foi discutido em outros fóruns. Extrato de Re: Configurando a altura de um elemento BR usando CSS :
Também encontrei um esclarecimento na especificação CSS 1 (nenhuma especificação de nível superior menciona):
Os testes de Grant Wagner mostram que não há como estilizar
BR
como você pode fazer com outros elementos. Há também um site on-line onde você pode testar os resultados no seu navegador .Atualizar
A Pelms fez algumas investigações adicionais e apontou que o IE8 (no Win7) e o Chrome 2 / Safari 4b permitem estilizar
BR
um pouco. De fato, verifiquei a página de demonstração do IE com o mecanismo IE8 do IE Net Renderer e funcionou.Update 2 C69 fez algumas novas investigações, e verifica-se que você pode estilizar o marcador para
br
muito fortemente (embora, não cross-browser), mas isso não afetará a linha-quebrar-se, porque parecem pertencer a contêiner pai.fonte
Tente o seguinte, montei-o usando a Atualização 2 de outra resposta com votos altos e funcionou perfeitamente para mim:
fonte
Há um bom motivo para você precisar estilizar uma
<br>
tag.Quando faz parte do código, você não deseja (ou não pode) alterar e deseja esse particular
<br>
não seja exibido.Pode economizar muito tempo e às vezes o seu dia.
fonte
Para o benefício de futuros visitantes que possam ter perdido meus comentários:
não funciona.
Foi testado no IE 6, 7 e 8, Firefox 2, 3 e 3.5B4, Safari 3 e 4 para Windows, Opera 9.6 e 10 (alpha) e Google Chrome (versão 2) e não funcionou em nenhum dos eles. Se em algum momento no futuro alguém encontrar um navegador que suporte uma borda em um
<br>
elemento, fique à vontade para atualizar esta lista.Observe também que tentei várias outras coisas:
Desses, o seguinte funciona no Opera 9.6 e 10 (alpha) (obrigado porneL!):
Não é muito útil quando é suportado apenas em um navegador, mas sempre acho interessante ver como diferentes navegadores implementam a especificação.
fonte
content:""; display:block
à segunda regra.Sei que você não pode editar o HTML, mas se você pode modificar o CSS, pode adicionar javascript?
Nesse caso, você pode incluir jquery, então você pode fazer
fonte
processa como abaixo no IE8 ... embora não seja muito útil em apenas um navegador.
(NB eu estou usando o IE 8.0.7100 (no Win7 RC) se isso faz alguma diferença)
Além disso,
ou,
br { content: "" }
fornece uma linha tracejada no Chrome 2 / Safari 4b, mas perde a quebra de linha que (a menos que alguém possa encontrar uma maneira de reintroduzir isso) a torna menos que inútil.
por exemplo ,
teste IE8 , teste Chrome / Safari e outro
fonte
BR
. Obrigado, atualizei minha resposta com os resultados dos seus testes.Meus próprios testes mostram conclusivamente que as
br
tags não gostam de ser segmentadas para css.Mas se você pode adicionar estilo, provavelmente também pode adicionar uma tag de script ao cabeçalho da página? Link para um externo
.js
que faz algo parecido com isto:Em resumo, não é o ideal, mas aqui está a minha solução.
fonte
isso parece resolver o problema:
fonte
BR é um elemento embutido, não um elemento de bloco.
Então, você precisa:
Caso contrário, os navegadores que são um pouco mais exigentes sobre essas coisas se recusam a aplicar bordas aos seus elementos BR, já que os elementos embutidos não têm bordas, preenchimento ou margens.
fonte
ATUALIZADO 13/09/2019:
O objetivo de estilizar a
<br>
tag dessa maneira é fazer uma quebra de linha "maior" (ou seja, com um pouco de espaço extra entre as linhas).A classe "oldbig" (abaixo) foi testada e funcionou corretamente no Chrome 66.0.3359.181, Firefox Quantum 60.0.2, Edge 42.17134.1.0 e IE 11.48.17134.0, para estilizar. Infelizmente, ele quebrou na versão 76 do Chrome e seus derivados (por volta de agosto de 2019). O sintoma é que o espaço extra entre as linhas não é mais exibido.
A classe "newbig" foi testada e está funcionando corretamente nas versões atuais do Chrome (76.0.3809.132), Opera, Firefox, Edge, IE, Brave e Palemoon:
Aqui está uma demonstração:
Este é o resultado, exibido no Chrome v.76:
fonte
Isso funcionará, mas apenas no IE. Eu testei no IE8.
fonte
Coloquei uma
<br>
marca em uma<span>
marca e pude usádisplay:none;
-la<span>
para controlar quando não usar a<br>
marca usando as Consultas de Mídia.fonte
<br>
diretamente o em vez de envolvê-lo em um espaço?pergunta antiga, mas essa é uma correção bastante clara e pode ser usada por pessoas que ainda estão se perguntando se é possível :):
Com essa correção, você também pode remover BRs em sites (basta definir a largura para 0px)
fonte
Por que não usar apenas a tag HR? É feito exatamente para o que você deseja. É como tentar fazer um garfo para comer sopa quando há uma colher bem na sua frente na mesa.
fonte