我有固定位置的模态形式。
HTML:
<div class="wrap">
<div class="box">
<div class="header">
Form header
</div>
<div class="content">
Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content
Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content
Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content
Content Content Content Content Content Content Content Content Content Content Content
</div>
</div>
</div>
.wrap {
position: fixed;
background-color: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.box {
position: fixed;
background: #fff;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
border-radius: 2px;
top: 50%;
left: 50%;
max-height: calc(100% - 50px);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.header {
padding: 10px;
background-color: #f5f5f5;
border-radius: 2px;
}
.content {
padding: 10px 15px;
border-top: 1px solid #ddd;
max-height: 100%;
overflow-y: scroll;
}
JSFiddle
您可以使用flexbox,它可以很好地处理标题和内容区域的动态高度。
将容器设置为display:flex;flex-direction:column;
,将内容设置为flex:1;
,这样它就可以展开以获取除头之外的所有可用空间。
.wrap {
position: fixed;
background-color: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.box {
position: fixed;
background: #fff;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
border-radius: 2px;
max-height: calc(100% - 50px);
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
width: 50%;
height: 100%;
display: flex;
flex-direction: column;
}
.header {
padding: 10px;
background-color: #f5f5f5;
border-radius: 2px;
}
.content {
flex: 1;
padding: 10px;
border-top: 1px solid #ddd;
overflow-y: auto;
}
<div class="wrap">
<div class="box">
<div class="header">
Header
</div>
<div class="content">
<div style="height:2000px;">Content</div>
</div>
</div>
</div>
我创建了一个固定在页面底部的容器。但是,容器随后溢出页面,填充规则被完全忽略。我在论坛上搜索过,但找不到一个解决问题的方法。我试过使用position absolute,也试过使用Javascript计算滚动条宽度,但都没有用。 null null
问题内容: 好的,我注意到了一些东西,但是在CSS规范中找不到。样式化元素将相对于浏览器视口绝对定位。如果将固定位置的元素放置在另一个元素内会怎样?CSS示例如下: 和HTML: 据我所知,该元素相对于其最近的父元素也是固定位置的。这在所有浏览器中都可以使用吗?另外,它是错误还是故意行为? 到目前为止,我在互联网上没有找到关于此主题的任何内容,只是“固定位置使其固定在页面上”。 问题答案: 固定和
问题内容: 我实际上有两个问题,但是让我先解决主要问题,因为我认为另一个更容易解决。 我在菜单左侧的滚动条的左侧有一个固定位置的div。右侧是可以正确滚动的标准div。问题是,当浏览器的视口太小而看不到整个菜单时,..没有办法让它滚动到我能找到的位置(至少没有使用CSS)。我试过在CSS中使用不同的溢出,但是没有什么可以使div滚动。包含菜单的div设置为min- height:100%和posi
all内包含left,right,其中因为left内容多,所以all整体是有上下滚动的滚动条的,怎么使right一直固定显示。
溢出滚动不会在固定的div上工作,这里是代码本演示
问题内容: 我有一个position:fixed的元素,所以随页面滚动,但是我想要它如何。当用户向上滚动时,我希望元素在某个点处停止滚动,比如说距页面顶部250px时,这可能吗?任何帮助或建议都将有所帮助,谢谢! 我有一种感觉,我需要使用jquery来做到这一点。我尝试获取用户所在位置的滚动或位置,但感到非常困惑,是否有任何jQuery解决方案? 问题答案: 这是我刚刚编写的一个快速jQuery插