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

带有固定页眉和页脚以及可滚动内容的模式对话框

公冶鸣
2023-03-14

我正在尝试创建一个模式对话框,它具有固定的页眉和页脚,并且模式对话框中的内容(在本例中为用户列表)是可滚动的...

到目前为止,我的最佳尝试给了我一个结果:

我想看过这张照片后,我就不必再描述问题出在哪里了...我也假设你会知道解决方案是什么样子的...:)

但为了确定我还是会写出来...模式对话框需要有一个固定的页眉(标题“编辑板”、“板名”和“板类型”所在的区域)和页脚(“保存”按钮所在的区域)必须是固定的/不可滚动的...唯一需要滚动的是用户列表。

代码:

HTML:

<div id="addBoardModal" class="modal modal-fixed-footer">
    <form class="Boards_new" autocomplete="off">
      <div class="modal-header">
        <h5>{{title}}</h5>
        <div class="input-field">
           <!--INPUT FORM-->
        <div class="BoadType">
           <!--RADIAL BUTTON THING--> 
      <div class="modal-content">
            <div class="shareMembers" style="margin-top:18px;">
                <div class="row">
                    <h5 class="left">Share</h5>
                      <!--LIST OF USERS !!!THIS HAS TO BE SCROLLABLE!!!-->
                </div>
            </div>
      <div class="modal-footer">
        <!--JSUT THIS SAVE BUTTON-->
      </div>

CSS:

.modal {
  @extend .z-depth-4;
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  background-color: #fafafa;
  padding: 0;
  max-height: 70%;
  width: 55%;
  margin: auto;
  //overflow-y: auto;
  border-radius: 2px;
  will-change: top, opacity;

     @media #{$medium-and-down} {
       width: 80%; }

  h1,h2,h3,h4 {
    margin-top: 0; }

.modal-header{
  border-bottom: 1px solid rgba(0, 0, 0, 0.1); 
  width: 100%; 
  height: 15rem; 
  padding:24px;
}

.modal-header > .input-field{width:100%;}

.modal-content {
  padding: 24px;
  position: absolute; 
  width: 100%; 
  overflow-y: auto; 
  -webkit-overflow-scrolling: touch;
}

.modal-close {cursor: pointer;}

.modal-footer {
  border-radius: 0 0 2px 2px;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  background-color: #fafafa;
  padding: 4px 6px;
  height: 56px;
  width: 100%;

.btn, .btn-flat {
  float: right;
  margin: 6px 0;
}
}
}

所以如果有人能告诉我,我在代码中做错了什么,或者我应该做一些不同的事情,那将是很好的...

我用这些例子编写了这个...例子1和例子2

注意:我使用的是物化框架

共有2个答案

宇文弘懿
2023-03-14

用这个试试它管用

 <div id="addBoardModal" class="modal modal-fixed-footer">
        <form class="Boards_new" autocomplete="off">
          <div class="modal-header">
            <h5>{{title}}</h5>
            <div class="input-field">
               <!--INPUT FORM-->
            <div class="BoadType">
               <!--RADIAL BUTTON THING--> 
           <div class="modal-content" style="height:150px;overflow:scroll"> 
                <div class="shareMembers" style="margin-top:18px;">
                    <div class="row">
                        <h5 class="left">Share</h5>
                          <!--LIST OF USERS !!!THIS HAS TO BE SCROLLABLE!!!-->
                    </div>
                </div>
          <div class="modal-footer">
            <!--JSUT THIS SAVE BUTTON-->
          </div>
慕容嘉熙
2023-03-14

您可以使用calc()函数来尝试max-height,例如:

.modal-content {
  height: auto !important;
  max-height: calc(100vh - 340px) !important;
}

看看下面的片段(使用全屏):

null

$(document).ready(function(){
    // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
    $('.modal-trigger').leanModal();
  });
.modal {
  overflow: hidden;
}

.modal-header {
  padding: 15px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.modal-header h4 {
  margin: 0;
}

.modal-content {
  height: auto !important;
  max-height: calc(100vh - 340px) !important;
}

.content-row {
  display: flex;
  align-items: center;
  padding: 10px;
  border-bottom: 1px solid #ddd;
}

.content-row:last-child {
  border-bottom: none;
}

.icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #33b5e5;
  color: #fff;
}

.name {
  padding: 0 10px;
}

.role {
  padding: 0 10px;
  flex: 1;
  text-align: right;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.css" rel="stylesheet"/>

  <!-- Modal Trigger -->
  <a class="modal-trigger waves-effect waves-light btn" href="#modal1">Modal</a>

  <!-- Modal Structure -->
  <div id="modal1" class="modal modal-fixed-footer">
    <div class="modal-header">
      <h4>Modal Header</h4>
    </div>
    <div class="modal-content">
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
      <div class="content-row">
        <div class="icon">1</div>
        <div class="name">Name</div>
        <div class="role">Role</div>
      </div>
    </div>
    <div class="modal-footer">
      <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat ">Agree</a>
    </div>
  </div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/js/materialize.min.js"></script>
 类似资料:
  • 我将页眉和页脚设置为Position:Fixed。但如果是可滚动的内容,则文本将转到页眉/页脚区域:下面是我的完整代码:http://jsfidle.net/kaqz1km2/6/ 在这种情况下,我不想使用background-image或background-color。 下面是CSS: null null

  • 我正在用CSS来创建具有固定页眉和页脚以及可滚动内容的可滚动“窗口”。这里被接受的答案是我已经得出的最接近解决这个问题的答案,但这需要设置“内容”类div的高度。 我的目标是:1。如果内容小于机身高度,则不滚动2。如果内容长于正文高度减去页眉和页脚,则滚动。 如何实现这一点?

  • 我有一个模态,页眉和页脚是粘性的,中间部分是基于内容滚动的。 在桌面上,它的工作非常好,但在移动和平板电脑上,页脚被拉伸,没有显示100%。 我希望实现高度响应对话框与页眉/页脚粘性和内容部分滚动。 我在这里做错了什么? null null

  • 问题内容: 我正在尝试创建一个包含三个div的页面:页眉,页脚和内容区域。这些应该占据屏幕的100%。 页眉和页脚很小,不会改变,内容区域可以是任何大小,因此我添加了使其变大时滚动的功能。 我正在使用以下CSS设置html和正文高度,因此容器上的技巧将起作用: 我的文档结构为: 问题答案: 方法1-Flexbox 它适用于已知和未知的高度元素。确保设置外股利和重置默认的。 方法2-CSS表 对于已

  • 问题内容: 我正在尝试使用bootstrap 3表制作具有固定标题和可滚动内容的表。不幸的是,我发现的解决方案不适用于引导程序或使样式混乱。 这里有一个简单的引导表,但是由于某种原因我不知道tbody的高度不是10px。 例: 问题答案: 这是有效的解决方案:

  • 我正在纠结于应用程序的布局。我只想用HTML&CSS来实现它,但绝望正在逼近。我需要: 固定高度、100%宽度、静态标题 固定高度、100%宽度、静态页脚 固定宽度的内容区域,居中和全部剩余高度 内容区域需要: 两列,均为全高 上面的内容相当简单,但可能需要更改以适应下一部分。 每一列都需要: 静态标头 静态页脚 页眉和页脚之间的可滚动内容区域 我花了一天的时间尝试各种方法(甚至是基于--喘息--