当前位置: 首页 > 知识库问答 >
问题:

在内部div中设置最大高度不起作用[重复]

麻鸿熙
2023-03-14

我有一个完全居中的div(itemSoldOutView)。在这个div中还有另一个div(itemSoldOutViewContent),它的最大高度应该是父div的90%。因此,如果内容太多,它就会滚动(注意:只有内部内容div应该滚动)。但这不起作用。如何设置正确的高度?

这是我的代码(JSFIDDLE):

#shadow { 
    position:fixed; 
    left:0; 
    top:0; 
    width:100%; 
    height:100%;
    background: darkgray;
    z-index:2;
}

#itemSoldOutView {
    background: white;
    position: absolute;
    padding: 15px;
    max-height: 80%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#itemSoldOutViewContent {
    overflow: auto;
  max-height: 90%;
}

#itemSoldOutViewCancel {
    position: fixed;
    right: 5px;
    top: 5px;
    width: 16px;
    height: 16px;
    background: red;
}
<div id="shadow">
    <div id="itemSoldOutView">
        <div id="itemSoldOutViewTitle">
            <div id="itemSoldOutViewCancel"></div>
            <h3>This is the title text:</h3>
        </div>
        <div id="itemSoldOutViewContent">
            // much content
        </div>
    </div>
</div>

共有3个答案

谯和煦
2023-03-14

在css中,您可以使用

#itemSoldOutView{
   box-sizing: border-box;
}
#itemSoldOutViewTitle h3{
   position: fixed;
}

但由于您的内容超过了div的容量,因此内容将不断溢出。如果你想摆脱它,那么使用

#itemSoldOutView{
   box-sizing: border-box;
   overflow: scroll;
}
#itemSoldOutViewTitle h3{
   position: fixed;
}
百里涛
2023-03-14

您需要在container div中将最大高度替换为高度,并添加溢出:隐藏

#itemSoldOutView {
    background: white;
    position: absolute;
    padding: 15px;
    overflow: hidden;
    height: 80%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

然后在div中,您要滚动add(添加)overflow-y(溢出):滚动

工作小提琴

另一个编辑:

实际上,您应该使内部div小一点以显示所有可滚动的项目,在这里我将max-高度减少到80%:

css prettyprint-override">#shadow { 
    position:fixed; 
    left:0; 
    top:0; 
    width:100%; 
    height:100%;
    background: darkgray;
    z-index:2;
}

#itemSoldOutView {
    background: white;
    position: absolute;
    padding: 15px;
    overflow: hidden;
    height: 80%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#itemSoldOutViewContent {
    overflow-y: scroll;
    max-height: 80%;
}

#itemSoldOutViewCancel {
    position: fixed;
    right: 5px;
    top: 5px;
    width: 16px;
    height: 16px;
    background: red;
}
<div id="shadow">
    <div id="itemSoldOutView">
        <div id="itemSoldOutViewTitle">
            <div id="itemSoldOutViewCancel"></div>
            <h3>This is the title text:</h3>
        </div>
        <div id="itemSoldOutViewContent">
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            bla<br>
            blabla<br>
            last blabla
        </div>
    </div>
</div>
沈飞舟
2023-03-14

如果您想要一个可滚动的div,只需在CSS中放入溢出:scroll。这里的错误是将溢出属性放在了itemSoldOutView中

还从父元素继承高度。

看到这把小提琴了吗

 类似资料:
  • 我正在尝试为图像设置,即在几个嵌套容器内。图像的父级之一具有像素高度。但是图像仍然超过父级的高度。 嵌套容器有不同的用途: div.grid-container具有固定的宽度和高度(以像素为单位),以限制元素的总体大小 image-container用于内部用途(fiters、mirror、javascript行为) img本身不能超过总尺寸 我认为,如果父母中的一方有固定的高度,那么将“最大高度

  • 问题内容: 将div高度设置为0px似乎无效。 div展开以显示其内容,我们如何防止这种情况发生? 问题答案: 如果您 真的 想确定它没有高度,可以使用以下方法: 如果您在IE上仍然遇到问题,也可以添加 在针对IE的样式表中添加了条件注释。这将触发IE中的hasLayout属性。 并且display:none与将其设置为零高度不同。只需查看各种clearfix解决方案,以解决 不 从流程中删除它的

  • 问题内容: 在下面的代码中,我希望带有“ y”的div将div的高度与3个“ x”相匹配。 需要注意的是内部div是浮动的。 问题答案: 如果您不反对使用jQuery,可以使用EqualHeight,它应该做您想要的

  • 问题内容: 我在上设置了20px的高度,但是当它在浏览器中呈现时,其高度仅为14px。 有任何想法吗? 问题答案: 您不能使用和设置和的元素。使用代替。 根据CSS2规范 10.6.1内联非替换元素 该属性不适用。内容区域的高度应基于字体,但是此规范未指定如何。UA可以例如使用字体的em-box或最大升序和降序。(后者将确保在em- box上方或下方具有部分文字的字形仍位于内容区域内,但导致不同字

  • 问题内容: 我正在研究一个简单的Java聊天客户端gui应用程序。(服务器等由其他人完成)。 这不是一个大项目,但是我唯一的问题是,无论如何尝试调整上述GUI上任何组件的大小,都将无法正常工作。 例如: 不行 谢谢您的帮助。 问题答案: 在Swing中,您有两个用于布局的选项:手动执行所有操作或为您处理。 仅当您不使用时,通话才有效。由于您使用的是A,因此您必须使用其他方式来指定所需的内容。 尝试

  • 问题内容: 我正在尝试将表格列分为两列。我希望最右边的列停靠在页面的右边,并且此列应具有不同的背景色。右侧的内容几乎总是小于左侧的内容。我希望右侧的div始终足够高,以到达其下一行的分隔符。如何使背景色填充该空间? 编辑:我同意这个示例非常类似于表,并且实际表将是一个不错的选择。但是我的“真实”页面最终将变得不像表格一样,我只想首先掌握此任务! 另外,由于某种原因,当我在IE7中创建/编辑帖子时,