Combinar estilo com conteúdo não é um tabu para muitos. <div style = "border-left: thin # 0000ff sólida"> Não tenho nada a dizer e eu estou dizendo que </ div>
ctpenrose
15
@ctpenrose Na verdade, não é um tabu, mas separá-los é útil, pois você pode ajustar facilmente em um só lugar, se necessário. Colocá-lo em um arquivo CSS separado é melhor para o desempenho, pois ele pode ser armazenado em cache pelo navegador e você acaba transmitindo menos bytes pela conexão toda vez que solicitar o HTML renderizado.
Kris van der Mast
235
Você pode usar a tag de regra horizontal para criar linhas verticais.
Bravo, senhor. Esse é um truque legal. Ainda é necessário configurá-lo para display:inline-blockque, caso contrário, não ficará bem ao lado de outros elementos inline.
Alex W
2
Eu não acho que isso funcione no Firefox, no entanto. A linha está lá, mas não parece ser visível ...
Giulio porque na verdade não divide a tela em duas colunas. novamente, você precisa usar alguma equipe de css para obter o resultado desejado, assim como div.
Ismail Sahin
Eu gosto mais disso porque evita a estranheza de ter uma div oculta, com apenas um lado dela tendo uma borda visível. Concedido, não é o modo como você normalmente usa as horas, mas ainda faz mais sentido para mim.
levininja
71
Você pode usar um espaço vazio com <div>o estilo exatamente como deseja que a linha apareça:
HTML:
<divclass="vertical-line"></div>
Com altura exata (substituindo o estilo em linha):
div.vertical-line{width:1px;/* Line width */background-color: black;/* Line color */height:100%;/* Override in-line if you want specific height. */float: left;/* Causes the line to float to left of content.
You can instead use position:absolute or display:inline-block
if this fits better with your design */}
Ótimo truque para obter uma linha com o mesmo padrão <hr>. Provavelmente também precisa styling extra para flutuar no lado do conteúdo (exemplo: float:left;)
temor
Essa regra "vertical" ainda separa elementos (texto) verticalmente como regra horizontal normal.
precisa
20
Não há vertical equivalente ao <hr>elemento. No entanto, uma abordagem que você pode querer tentar é usar uma borda simples à esquerda ou à direita do que estiver separando:
* Você pode precisar mexer um pouco, display:inline-block|inlineporque inlinenão se expandirá para conter a altura do elemento. Use a margem para centralizar a linha dentro de um contêiner.
Triste com as limitações, mas isso parece muito, muito útil em outros lugares.
Smar
Ele não preenche todo o tamanho de div, como corrigir?
Otávio Barreto
11
@ OtávioBarreto Pode ser necessário mexer na displaypropriedade comentada . Defina-o como inlineou inline-block. Veja as notas acima e o exemplo de URL.
Qwerty
9
Uma outra opção é usar uma imagem de 1 pixel e definir a altura - essa opção permitirá que você a flutue para onde você precisa.
Simplesmente alterei o valor do valor "esquerdo" do pixel para posicioná-lo. Usei a linha vertical para alinhar o conteúdo da minha página da Web e depois a removi.
Se seu objetivo é colocar linhas verticais em um contêiner para separar elementos filho lado a lado (elementos de coluna), considere estilizar o contêiner da seguinte maneira:
Isso adiciona uma borda esquerda a todos os elementos filhos, começando no segundo filho. Em outras palavras, você obtém bordas verticais entre filhos adjacentes.
>é um seletor de filhos. Corresponde a qualquer filho do (s) elemento (s) especificado (s) à esquerda.
*é um seletor universal. Corresponde a um elemento de qualquer tipo.
:not(:first-child) significa que não é o primeiro filho de seus pais.
Eu acho que isso é melhor do que um simples .child-except-first {border-left: ...} regra , porque faz mais sentido que as linhas verticais venham das regras do contêiner, não das regras dos diferentes elementos filhos.
Se isso é melhor do que usar um elemento de regra vertical improvisado (estilizando uma regra horizontal, etc.) dependerá do seu caso de uso, mas essa é uma alternativa, pelo menos.
<svgheight="210"width="500"><linex1="0"y1="0"x2="0"y2="100"style="stroke:rgb(255,0,0);stroke-width:2"/>
Sorry, your browser does not support inline SVG.
</svg>
Prós:
Você pode ter linhas de qualquer comprimento e orientação.
Você pode especificar a largura, cor facilmente
Contras:
Agora, o SVG é suportado nos navegadores mais modernos. Mas alguns navegadores antigos (como o IE 8 e anteriores) não são compatíveis.
<divstyle="width:50%"><divstyle="border-right:1px solid;"><ul><li>
Empty div didn't shows line
</li><li>
Vertical line length depends on the content in the div
</li><li>
Here I am using inline style. You can replace it by external style or internal style.
</li></ul></div></div>
<divstyle="width:50%"><divstyle="border-left:1px solid;"><ul><li>
Empty div didn't shows line
</li><li>
Vertical line length depends on the content in the div
</li><li>
Here I am using inline style. You can replace it by external style or internal style.
</li></ul></div></div>
A propriedade width determina a espessura da linha. A propriedade height determina o comprimento da linha. A propriedade background-color determina a cor da linha.
<vr>
Respostas:
Coloque um
<div>
contorno na marcação onde deseja que a linha apareça a seguir e use CSS para estilizá-la:fonte
Você pode usar a tag de regra horizontal para criar linhas verticais.
Usando largura mínima e tamanho grande, a regra horizontal se torna vertical.
fonte
display:inline-block
que, caso contrário, não ficará bem ao lado de outros elementos inline.Você pode usar um espaço vazio com
<div>
o estilo exatamente como deseja que a linha apareça:HTML:
Com altura exata (substituindo o estilo em linha):
Estilize a borda se quiser uma aparência 3D:
Você também pode experimentar combinações avançadas:
fonte
Você também pode criar uma linha vertical usando a linha horizontal HTML
<hr />
fonte
<hr>
. Provavelmente também precisa styling extra para flutuar no lado do conteúdo (exemplo:float:left;
)Não há vertical equivalente ao
<hr>
elemento. No entanto, uma abordagem que você pode querer tentar é usar uma borda simples à esquerda ou à direita do que estiver separando:fonte
Elementos personalizados em HTML5 (ou CSS puro)
1. javascript
Registre seu elemento.
*
-
É obrigatório em todos os elementos personalizados.2. css
* Você pode precisar mexer um pouco,
display:inline-block|inline
porqueinline
não se expandirá para conter a altura do elemento. Use a margem para centralizar a linha dentro de um contêiner.3. instanciar
* Infelizmente você não pode criar tags de fechamento automático personalizadas.
uso
exemplo: http://html5.qry.me/vertical-rule
Não quer mexer com javascript?
Simplesmente aplique esta classe CSS ao seu elemento designado.
css
* Veja as notas acima.
fonte
display
propriedade comentada . Defina-o comoinline
ouinline-block
. Veja as notas acima e o exemplo de URL.Uma outra opção é usar uma imagem de 1 pixel e definir a altura - essa opção permitirá que você a flutue para onde você precisa.
Não é a solução mais elegante.
fonte
Você pode desenhar uma linha vertical usando simplesmente altura / largura com qualquer elemento html.
fonte
Não há nenhuma tag para criar uma linha vertical em HTML.
Método: Você carrega uma imagem de linha. Então você define seu estilo como
"height: 100px ; width: 2px"
Método: você pode usar
<td>
tags<td style="border-left: 1px solid red; padding: 5px;"> X </td>
fonte
Você pode usar a tag hr (linha horizontal) e girá-la 90 graus com css abaixo
http://jsfiddle.net/haykaghabekyan/0c969bm6/1/
fonte
Eu usei uma combinação do código "hr" sugerido e aqui está a aparência do meu código:
Simplesmente alterei o valor do valor "esquerdo" do pixel para posicioná-lo. Usei a linha vertical para alinhar o conteúdo da minha página da Web e depois a removi.
fonte
Para criar uma linha vertical centralizada dentro de uma div, acho que você pode usar esse código. O 'contêiner' pode ter 100% de largura, eu acho.
fonte
Por que não usar & # 124, que é o caractere especial html para |
fonte
Se seu objetivo é colocar linhas verticais em um contêiner para separar elementos filho lado a lado (elementos de coluna), considere estilizar o contêiner da seguinte maneira:
Isso adiciona uma borda esquerda a todos os elementos filhos, começando no segundo filho. Em outras palavras, você obtém bordas verticais entre filhos adjacentes.
>
é um seletor de filhos. Corresponde a qualquer filho do (s) elemento (s) especificado (s) à esquerda.*
é um seletor universal. Corresponde a um elemento de qualquer tipo.:not(:first-child)
significa que não é o primeiro filho de seus pais.Suporte ao navegador: > *: primeiro filho e : não ()
Eu acho que isso é melhor do que um simples
.child-except-first {border-left: ...}
regra , porque faz mais sentido que as linhas verticais venham das regras do contêiner, não das regras dos diferentes elementos filhos.Se isso é melhor do que usar um elemento de regra vertical improvisado (estilizando uma regra horizontal, etc.) dependerá do seu caso de uso, mas essa é uma alternativa, pelo menos.
fonte
Mais uma abordagem é possível: usando SVG .
por exemplo :
Prós:
Contras:
fonte
Linha vertical à direita da div
Linha vertical deixada para a div
fonte
Para adicionar uma linha vertical, você precisa estilizar uma hora.
Agora, quando você cria uma linha vertical, ela aparece no meio da página:
Agora, para colocá-lo onde quiser, você pode usar este código:
Isto irá posicioná-lo para a esquerda, você pode inverter para posicioná-lo para a direita.
fonte
No elemento Anterior após o qual você deseja aplicar a linha vertical, é possível definir CSS ...
fonte
Gire
<hr>
90 graus:fonte
Existe uma
<hr>
etiqueta para a linha horizontal. Pode ser usado com CSS para criar linhas horizontais também:A propriedade width determina a espessura da linha. A propriedade height determina o comprimento da linha. A propriedade background-color determina a cor da linha.
fonte
Para um estilo embutido, usei este código:
e que o posicionou diretamente no centro.
fonte
Como eu precisava de uma linha vertical embutida, passei um botão para que se tornasse uma linha.
fonte
Isso funcionou muito bem para mim
fonte
Para fazer a linha vertical centralizar no meio, use:
fonte