Eu estou querendo saber quais opções um tem no xhtml 1.0 estrito para criar uma linha em ambos os lados do texto da seguinte forma:
Seção Um ----------------------- Próxima seção ----------------------- Seção dois
Eu pensei em fazer algumas coisas extravagantes como esta:
<div style="float:left; width: 44%;"><hr/></div>
<div style="float:right; width: 44%;"><hr/></div>
Next section
Ou, alternativamente, porque o problema acima tem problemas de alinhamento (vertical e 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>
Isso também tem problemas de alinhamento, que eu resolvo com essa bagunça:
<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>
Além dos problemas de alinhamento, ambas as opções parecem "imprecisas", e eu ficaria muito grato se você já tivesse visto isso antes e tivesse uma solução elegante.
.divider
).Respostas:
Não sei se isso foi resolvido, mas o flexbox oferece uma solução:
Veja http://jsfiddle.net/MatTheCat/Laut6zyc/ para obter uma demonstração.
Hoje, a compatibilidade não é tão ruim (você pode adicionar todas as sintaxes antigas do flexbox) e é degradada normalmente.
fonte
E se:
Confira este JSFiddle .
Você pode usar
vw
ou%
torná-lo responsivo .fonte
font-size
.A maneira de resolver isso sem saber a largura e a cor do plano de fundo é a seguinte:
Estrutura
CSS
Exemplo: http://jsfiddle.net/z8Hnz/
Linha dupla
Para criar uma linha dupla, use uma das seguintes opções:
1) Espaço fixo entre linhas
Exemplo: http://jsfiddle.net/z8Hnz/103/
2) Espaço personalizado entre linhas
Exemplo: http://jsfiddle.net/z8Hnz/105/
Versão SASS (SCSS)
Com base nesta solução, adicionei o SCSS "com propriedade de cor" se isso pudesse ajudar alguém ...
exemplo de uso:
fonte
Você pode fazer isso com :: before e :: after sem saber a largura da cor do contêiner ou do plano de fundo e obter um estilo maior das quebras de linha. Por exemplo, isso pode ser modificado para criar linhas duplas, linhas pontilhadas, etc.
JSFiddle
Uso de CSS e HTML:
Versão SCSS:
fonte
Tente o seguinte:
Visualização ao vivo no jsFiddle .
fonte
.divider hr
largura depende de quanto tempo o texto é. Sugestão:.divider
e as.divider hr
larguras devem ser especificadas emem
unidades. Para obterhr
largura, use (.divider
largura menos o número de caracteres) / 2.Acabei de encontrar o mesmo problema, aqui está uma maneira de resolvê-lo:
Ele funciona sem definir um plano de fundo no elemento de texto, ou seja, ficará bem, independentemente do plano de fundo por trás dele.
Você pode experimentá-lo aqui: http://jsfiddle.net/88vgS/
fonte
ATUALIZAR: isso não funcionará usando HTML5
Em vez disso, consulte esta pergunta para obter mais técnicas: desafio de CSS, posso fazer isso sem introduzir mais HTML?
Eu costumava
line-height:0
criar o efeito no cabeçalho do meu site guerilla-alumnus.comOutro bom método está em http://robots.thoughtbot.com/
Ele usa uma imagem de fundo e flutua para obter um efeito legal
fonte
fonte
Se você pode usar CSS e deseja usar o
align
atributo obsoleto , um conjunto de campos / legenda com estilo funcionará:O objetivo de um conjunto de campos é agrupar logicamente os campos do formulário. Como willoler apontou, um
text-align: center
estilo para não funcionará paralegend
elementos.align="center"
é HTML reprovado, mas deve centralizar o texto corretamente em todos os navegadores.fonte
<legend>
assume as características de um visorblock
ouinline-block
elemento, como pode ser acolchoada e marginada, o que significatext-align:center
não deve trabalhar ...legend
elemento,align="center"
é a única solução que eu pude encontrar que centraliza de forma confiável alegend
.Grade de inicialização:
HTML:
CSS:
fonte
vertical-center
classe não existe mais no bootstrap (4.3.1). Você poderia atualizar sua resposta para dizeralign-items-center
?Você pode apenas usar a posição relativa e definir uma altura no pai
fonte
Heres uma solução simples com apenas css, sem truques de fundo ...
HTML:
exemplo violino: https://jsfiddle.net/0Lkj6wd3/
fonte
Corte do mal ...
fonte
Combinando um post de 2 anos, mas aqui está como eu abordo essas situações usando apenas um elemento e CSS.
E aqui está um violino para conferir: http://jsfiddle.net/sRhBc/ (imagem aleatória do Google tirada para a fronteira).
A única desvantagem dessa abordagem é que ela não suporta o IE7.
fonte
Apenas use
fonte
Woohoo meu primeiro post, mesmo que este seja um ano de idade. Para evitar os problemas de coloração de segundo plano nos wrappers, você pode usar o bloco embutido com hr (ninguém disse isso explicitamente). O alinhamento de texto deve centralizar corretamente, pois são elementos embutidos.
fonte
Eu uso um
h1
com um vão no meio.Exemplo HTML:
Exemplo de CSS:
Simples assim.
fonte
span
, você pode considerar usar adiv
. Ele serve ao mesmo propósito, exceto que é naturalmente um elemento de bloco. :)h1
é um elemento inline.span
é bom para o material de embrulho, mas a razão de eu preferir umdiv
neste caso, é porque o uso Youri CSS para definir ospan
quedisplay:block;
. Não vejo o objetivo de transformar um elemento embutido em um elemento de bloco, quando há elementos de bloco adequados (div
) prontamente disponíveis.h1
na verdade é um elemento BLOCK. Desculpe pela confusão. Ainda assim, não vejo o objetivo de transformar umspan
elemento em bloco, mas é justo o suficiente.Olhando para cima, modifiquei para:
CSS
HTML
Parece funcionar bem.
fonte
Tomando a solução do @ kajic e colocando o estilo em CSS:
Então CSS (mas depende do CSS3 no uso do enésimo seletor):
Felicidades.
(PS No tbody e tr, o Chrome, o IE e o Firefox inserem pelo menos automaticamente um tbody e tr, e é por isso que minha amostra, como a @ kajic's, não as incluiu para manter as coisas mais curtas na marcação html necessária. foi testado com as versões mais recentes do IE, Chrome e Firefox, a partir de 2013).
fonte
PÁGINA DE DEMO
HTML
CSS
fonte
Isso funcionou para mim e não requer a cor de fundo atrás do texto para ocultar uma linha de borda; em vez disso, usa a tag hr real. Você pode brincar com as larguras para obter diferentes tamanhos de linhas de hora.
fonte
Eu fiz um violino que usa o FlexBox e também fornece estilos diferentes de RH (linha dupla, símbolos no centro da linha, sombra projetada, inserção, tracejado, etc.).
CSS
HTML
Ou aqui está um violino interativo: http://jsfiddle.net/mpyszenj/439/
fonte
Você pode tentar fazer um
fieldset
alinhamento do elemento "legend" (o texto da "próxima seção") ao meio do campo apenas com oborder-top
conjunto. Não tenho certeza de como uma legenda é posicionada de acordo com o elemento fieldset. Eu imagino que pode ser apenas um simplesmargin: 0px auto
de fazer o truque, no entanto.exemplo:
fonte
Você pode conseguir isso sem
<hr />
. Semanticamente, o design deve ser feito com os meios de CSS; nesse caso, é bem possível.fonte
Sempre há o bom e velho FIELDSET
fonte
html
css
fonte
Você pode criar um bloco de invólucro com alguma imagem de plano de fundo apropriada (e também definir alguma cor de plano de fundo para o bloco de texto centralizado).
fonte
CSS
HTML
Você pode modificar a largura na classe "side" e "middle" com base no comprimento do seu texto na tag "span". Certifique-se de que a largura do "meio" mais 2 vezes a largura do "lado" seja igual a 100%.
fonte
Fundo transparente e responsivo, altura e estilo variáveis do divisor, posição variável do texto, distância ajustável entre o divisor e o texto. Também pode ser aplicado várias vezes com seletores diferentes para vários estilos de divisor no mesmo projeto.
SCSS abaixo.
Marcação (HTML):
CSS :
Sem
text-position
ele, o padrão é centralizar.Demo:
Mostrar snippet de código
E o SCSS , para modificá-lo rapidamente:
mexer aqui .
fonte
fonte