Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 只有css的两行布局_Html_Css - Fatal编程技术网

Html 只有css的两行布局

Html 只有css的两行布局,html,css,Html,Css,我需要为网页创建一个2行布局,以管理过滤器的部分和具有以下特征的结果的其他部分: 页面不能溢出100%的高度 第一行的高度取决于他的内容(可能是可变的,javascript函数可以通过隐藏某些元素来更改) 第二排的高度是100%和第一排高度之间的差值 在第二行中,溢出的div必须是类为“list”的div,我无法将其移动到class=“result”的div中(这将使其工作) HTML: 我尝试使用flexbox(以不同的方式),但最后一点我找不到解决方案 重要提示:我不能使用javascr

我需要为网页创建一个2行布局,以管理过滤器的部分和具有以下特征的结果的其他部分:

  • 页面不能溢出100%的高度
  • 第一行的高度取决于他的内容(可能是可变的,javascript函数可以通过隐藏某些元素来更改)
  • 第二排的高度是100%和第一排高度之间的差值
  • 在第二行中,溢出的div必须是类为“list”的div,我无法将其移动到class=“result”的div中(这将使其工作)
HTML:

我尝试使用flexbox(以不同的方式),但最后一点我找不到解决方案

重要提示:我不能使用javascript设置行的高度。我需要一个只使用CSS的解决方案


谢谢

如果使用“flex:1”属性声明.result div,它将占用外部div(.main)中剩余的所有空间。因此,如果过滤器div占用500个高度像素,则结果将在空白空间中调整,从父级填充100%。如果动态更改它,隐藏或添加元素flex:1将保证所有剩余空间都将由.result自动填充


希望有帮助

谢谢你的回答。我已经试着设置“flex:1”,但是他的孩子(高度:100%)无法检测到他父母的真实高度,这是因为这种形式的属性声明(带有百分比)总是相对于其父母,总是通过根元素“层叠”起来。如果您将height:100%设置为html和body元素,将overflow:hidden设置为.main类,您应该可以开始了。
<div class="main">
    <div class="filter">
        <div class="filtercontent">
            filter content
        </div>
    </div>
    <div class="result">
        <div class="resultcontent">
            <div class="list">
                <div class="listcontent">
                    list content    
                </div>
            </div>
        </div>
    </div>
</div>
.main {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.filter {
    width: 100%;
}

.result {
    width: 100%;
}

.resultcontent {
    height: 100%;
    width: 100%;
}

.list {
    height: 100%;
    width: 100%;
    overflow: auto;
}

.listcontent {
    height: 1000px;
    width: 2000px;
}