Meu único problema é fazer com que eles se alinhem com três lados e tenham espaçamento igual. Aparentemente, spans não podem ter largura e divs (e spans com display: block) não aparecem horizontalmente um ao lado do outro. Sugestões?
<div style='width:30%; text-align:center; float:left; clear:both;'>
É o que tenho agora.
Respostas:
Você pode usar divs com o
float: left;
atributo que fará com que eles apareçam horizontalmente um ao lado do outro, mas você pode precisar limpar os seguintes elementos para garantir que eles não se sobreponham.fonte
overflow: hidden
. Consulte: stackoverflow.com/questions/323599/…padding-left
no div à direita, ela será ignorada.<div style="display: in-line"></div><div style="display: in-line"></div>
deve funcionar bem.overflow: hidden
é a melhor solução.Você pode usar
Se você só precisa oferecer suporte a navegadores com suporte para blocos inline. Os blocos embutidos podem ter largura, mas são embutidos, como os elementos de botão.
Ah, e você pode querer adicionar alinhamento vertical: topo nos elementos para garantir que as coisas estejam alinhadas
fonte
Minha resposta:
Por quê?
Tecnicamente, um Span é um elemento embutido, porém pode ter largura, você só precisa definir sua propriedade de exibição para bloquear primeiro. No entanto, neste contexto, um div é provavelmente mais apropriado, pois estou supondo que você deseja preencher esses divs com conteúdo.
Uma coisa que você definitivamente não quer fazer é
clear:both
definir os divs. Definir dessa forma significa que o navegador não permitirá que nenhum elemento fique na mesma linha que eles. O resultado, seus elementos se acumularão.Observe o uso de
display:inline
. Isso lida com o bug de duplicação da margem ie6. Você pode resolver isso de outras maneiras, se necessário, por exemplo, folhas de estilo condicionais.Eu adicionei um wrapper (# seja lá o que for), pois estou supondo que esses não serão os únicos elementos na página, então quase certamente você precisará separá-los dos outros elementos da página.
De qualquer forma, espero que isso seja útil.
fonte
você pode fazer:
ou
Qualquer um fará com que os divs sejam dispostos horizontalmente.
fonte
Eu faria algo assim, pois dá a você 3 colunas de tamanho uniforme, espaçamento e escalas (regulares) iguais. Observação: isso não foi testado, portanto, pode precisar de ajustes para navegadores mais antigos.
fonte
Eu usaria:
É a primeira vez que uso esta 'ferramenta de código' do estouro ... mas devo fazer isso agora ...
fonte
O que você gostaria de fazer é procurar layouts baseados em grade CSS. Este método de layout envolve a especificação de algumas classes CSS para alinhar o conteúdo da página a uma estrutura de grade. Está mais relacionado com o layout de impressão do que com base na web, mas é uma técnica usada em muitos sites para fazer o layout do conteúdo em uma estrutura sem ter que recorrer a tabelas.
Experimente isso para iniciantes da Smashing Magazine.
fonte
Observe a propriedade css Float. http://w3schools.com/css/pr_class_float.asp
Funciona com elementos de bloco como div. Alternativamente, o que você está tentando mostrar, as tabelas não são ruins se você está realmente tentando mostrar uma tabela com algumas informações.
fonte
Eu tentaria dar a todos eles o
display: block;
atributo e o usofloat: left;
.Você pode então definir
width
e / ouheight
como quiser. Você pode até especificar algumas regras de alinhamento vertical.fonte
outro ... tente usar
float: left;
ouright;
, troque owidth
por outros valores ... deve funcionar ... note também que os 10% que não são usados pelo div estão entre eles ... desculpe pelo inglês ruim :)fonte