有没有办法不使用表格就完成这个HTML布局?

有没有办法不使用表格就完成这个HTML布局?,html,css,Html,Css,我正在开发一个非常动态的内容网站,它需要回流并适应不断变化的内容。其中一个主要要求是有一个页眉和页脚(也有不同长度和高度的动态内容),它们之间的内容总是占据它们之间剩余的任何空间 对于表,这很简单: 标题 内容 页脚 表格{高度:100%;} tr.content{高度:100%;} 将这样一个表粘贴到任何容器中(如果我们说的是顶层页面布局,则包括视口),就这样,满足了需求,完成了工作 但就我的一生而言,我似乎找不到一种用CSS来实现这一点的方法。我本以为,在我第一次开始推广“整个HTML

我正在开发一个非常动态的内容网站,它需要回流并适应不断变化的内容。其中一个主要要求是有一个页眉和页脚(也有不同长度和高度的动态内容),它们之间的内容总是占据它们之间剩余的任何空间

对于表,这很简单:


标题
内容
页脚
表格{高度:100%;}
tr.content{高度:100%;}
将这样一个表粘贴到任何容器中(如果我们说的是顶层页面布局,则包括视口),就这样,满足了需求,完成了工作

但就我的一生而言,我似乎找不到一种用CSS来实现这一点的方法。我本以为,在我第一次开始推广“整个HTML内容”的15年多时间里,一个基本的东西,比如与其他东西相关的大小调整,到现在可能已经被细化到近乎完美的程度,但事实似乎并非如此

我错过什么了吗?使用一个表来布局页面感觉非常错误(当它涉及到内容的子表时更是如此),但是如果唯一的其他选项是JavaScript,那么我宁愿回到90年代的HTML

下面是一个代码笔,说明了我需要什么,通过上面显示的HTML+CSS实现:

这里有两个选项:

  • 使用
    divs
    并使用表格布局CSS,例如

    显示:表格
    
    显示:表格行
    
    显示:表格单元格

  • 使用


  • 正如Paul Redmond所提到的,…
    flexbox
    同样微不足道

    div{
    边框:1px纯灰;
    利润率:25px;
    }
    .集装箱{
    高度:250px;
    宽度:350px;
    显示器:flex;
    弯曲方向:立柱;
    }
    标题,
    页脚{
    flex:0自动;
    背景:浅灰色;
    }
    主要{
    柔性生长:1;
    背景:浅蓝色;
    }
    
    Lorem ipsum dolor sit amet,奉献精英。塞德,ab。
    Lorem ipsum dolor sit amet,奉献精英。她是一个聪明的女人!一个自由的囚犯,一个被指控的人,一个被指控的人,一个化名ab,一个被指控的人!
    
    键入以下代码并以.html格式保存。我想这会对你有帮助

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    
    <body>
        <style>
    .div1 {
        border: 3px solid #052d31;
        position: relative;
        clear: left;
        float: left;
        margin: 3px;
        }
       </style>
    
        <div class="div1">
            <p>change this text the div will resize dynamically</p>
        </div>
    
        <div class="div1">
            <p>change this text</p>
        </div>
    </body>
    </html>
    
    
    .1分部{
    边框:3px实心#052d31;
    位置:相对位置;
    清除:左;
    浮动:左;
    保证金:3倍;
    }
    更改此文本,div将动态调整大小

    更改此文本


    如果您知道页眉和页脚的高度,您可以始终使用
    calc()
    作为中间框的高度(也称为
    #content{min height:calc(100%-footerheight-headerheight);}
    )。将divs与display:table一起使用基本上是一样的-您仍然使用无关的标记来分隔布局。它们的名字差别不大。至于Flexbox,这是我一直缺少的东西。我最后一次听说“flex”是,正如我所相信的,IE实现正确CSS布局的尝试失败了,最终放弃了。谢谢,我去看看。