Estou tentando construir um layout semelhante ao seguinte:
+---+---+---+
| | | |
+---+---+---+
| |
+-----------+
onde a parte inferior está preenchendo o espaço da linha superior.
Se essa fosse uma tabela real, eu poderia fazer isso facilmente <td colspan="3">
, mas como estou simplesmente criando um layout de tabela , não posso usar <table>
tags. Isso é possível usando CSS?
colspan
atributoRespostas:
Não existe um analógico CSS simples e elegante para
colspan
.As pesquisas sobre esse mesmo problema retornarão uma variedade de soluções que incluem várias opções, incluindo posicionamento absoluto, dimensionamento e uma variedade semelhante de advertências específicas do navegador e das circunstâncias. Leia e tome a melhor decisão informada possível, com base no que você encontrar.
fonte
colspan
é a ferramenta certa para o trabalho. Minha resposta foi 75% certa e a sua 100% certa. Você deve voltar ao SO.Até onde eu sei, não há colspan em css, mas haverá
column-span
um layout para várias colunas em um futuro próximo, mas como é apenas um rascunho no CSS3, você pode fazer o check-in aqui . De qualquer forma, você pode executar uma solução alternativa usandodiv
espan
com uma exibição semelhante a uma tabela como esta.Este seria o HTML:
E este seria o css:
A única razão para usar esse truque é obter o benefício do
table-layout
comportamento, eu o uso muito se apenas definir a largura de div e span para determinada porcentagem não atender aos requisitos de design.Mas se você não precisa se beneficiar com o
table-layout
comportamento, a resposta de durilai seria adequada para você.fonte
.span { ...
, deveria serspan { ...
.div
as tags para exibir dados tabulares é tão ruim quanto usandotable
s de layout de página de controleOutra sugestão é usar flexbox em vez de tabelas. É claro que isso é um "navegador moderno", mas vamos lá, é 2016;)
Pelo menos essa pode ser uma solução alternativa para quem procura uma resposta hoje em dia, já que o post original era de 2010.
Aqui está um ótimo guia: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
fonte
fonte
Isso não faz parte do alcance do CSS.
colspan
descreve a estrutura do conteúdo da página ou dá algum significado aos dados na tabela, que é o trabalho do HTML.fonte
Para fornecer uma resposta atualizada: A melhor maneira de fazer isso hoje é usar o layout da grade css da seguinte maneira:
e o HTML
fonte
Você poderia tentar usar um sistema de grade como http://960.gs/
Seu código seria algo assim, supondo que você esteja usando um layout de "12 colunas":
fonte
Tente adicionar
display: table-cell; width: 1%;
ao seu elemento de célula da tabela.Mostrar snippet de código
fonte
Eu tive algum sucesso, embora dependa de algumas propriedades para funcionar:
table-layout: fixed
border-collapse: separate
e 'larguras' de células que se dividem / se expandem facilmente, ou seja, 4 x células com 25% de largura:
https://jsfiddle.net/sfjw26rb/2/
Além disso, a aplicação de display: table-header-group ou table-footer-group é uma maneira prática de pular elementos de 'linha' para a parte superior / inferior da 'tabela'.
fonte
se você usar div e span, ele ocupará mais tamanho de código quando a linha da tabela de datagrid estiver mais em volume. Este código abaixo é verificado em todos os navegadores
HTML:
CSS:
fonte
http://www.quackit.com/css/css3/properties/css_column-span.cfm
fonte
table-cell
intervalo de várias colunas da tabela.column-span
é para controlar um layout de coluna. O que permite que você flua texto por várias colunas, da mesma forma que os jornais.Se você vem aqui porque precisa ativar ou desativar o
colspan
atributo (digamos, para um layout para celular):Duplique os se
<td>
mostre apenas aqueles com o desejadocolspan
:fonte
As propriedades CSS "column-count", "column-gap" e "column-span" podem fazer isso de maneira a manter todas as colunas da pseudo-tabela dentro do mesmo wrapper (o HTML permanece agradável e limpo).
As únicas ressalvas são que você pode definir apenas uma coluna ou todas as colunas, e o período de coluna ainda não funciona no Firefox; portanto, é necessário algum CSS adicional para garantir que seja exibido corretamente. https://www.w3schools.com/css/css3_multiple_columns.asp
fonte
Eu vim aqui porque atualmente o bloco de tabela do WordPress não suporta o parâmetro colspan e pensei em substituí-lo usando CSS. Esta foi a minha solução, assumindo que as colunas tenham a mesma largura:
fonte
Você sempre pode
position:absolute;
coisas e especificar larguras. Não é uma maneira muito fluida de fazê-lo, mas funcionaria.fonte
Eu criei esse violino:
http://jsfiddle.net/wo40ev18/3/
HTML
CSS
fonte
As classes Media Query podem ser usadas para obter algo aceitável com marcação duplicada. Aqui está minha abordagem com o bootstrap:
colspan 1 para celular, colspan 5 para outras pessoas com CSS fazendo o trabalho.
fonte