当前位置: 首页 > 面试题库 >

角材料固定工具栏和粘页脚

毕富
2023-03-14
问题内容

我已经对这个问题打了一段时间,并提出了解决方案。我想要一个固定的工具栏(navbar)以及一个粘性(浮动)页脚。页脚应漂浮在主要部分的底部,但在没有内容时应粘在底部。看来我可以做一个,但不能两个都做。通过这种方法,工具栏是固定的,但页脚不粘。当主要部分为空时,它会紧靠工具栏。

<body ng-controller="MainCtrl" layout="row">

  <div layout="column" flex>
    <md-toolbar class="md-medium-tall">
        <div class="md-toolbar-tools">
            <span>HEADER</span>
            <span flex></span>
            <md-button class="md-raised" ng-click="toggleContent(!displayContent)">onOff</md-button>
            <span flex></span>
            <md-button class="md-raised" ng-click="toggleNum()">half/full</md-button>
        </div>
    </md-toolbar>


    <md-content>
        <div layout="column" flex>
            <div ng-if="displayContent" style="background-color:SteelBlue;color:white;" ng-repeat="card in cards|limitTo: displayLim">body {{card.title}}</div>
            <div style="background-color: red;" flex></div>
            <div style="background-color:orange;color:white;" >footer item</div>
        </div>  
    </md-content>           
  </div>    
</body>

下面的代码用作页脚,但工具栏也会滚动。

<body ng-controller="MainCtrl" layout="row">

  <div layout="column" flex>
    <md-toolbar class="md-medium-tall">
        <div class="md-toolbar-tools">
            <span>HEADER</span>
            <span flex></span>
            <md-button class="md-raised" ng-click="toggleContent(!displayContent)">onOff</md-button>
            <span flex></span>
            <md-button class="md-raised" ng-click="toggleNum()">half/full</md-button>
        </div>
    </md-toolbar>

    <div layout="column" flex>
      <div ng-if="displayContent" style="background-color:SteelBlue;color:white;" ng-repeat="card in cards|limitTo: displayLim">body {{card.title}}</div>
      <div style="background-color: red;" flex></div>
      <div style="background-color:orange;color:white;" >footer item</div>
    </div>  
  </div>    
</body>

这似乎是完成我想做的事情的正确方法,但是我无法做到完美。

除此方法外,我还使用了一种更传统的方法,即使用从算出的主截面高度来实现粘性页脚calc(100vh - header - footer)。当BAM
..角材料决定使它们的工具栏大小随视口大小而变化时,我几乎弄清楚了。我可能会提出变更请求,以便可以<div flex></div>在本md- content节中使用空白,但我想先找出是否有人有更好的解决方案。


问题答案:

我终于弄清楚了问题所在。在div的主要内容部分嵌套时,md- content存在关于野生动物园的问题。我通过添加flex="none"到顶级div来修复它。

这仅适用于Chrome:

<md-content layout="column" flex>
 <div flex layout="column">
  <section>
    <div ng-if="displayContent" style="min-height:20px;background-color:SteelBlue;color:white;" ng-repeat="card in cards|limitTo: displayLim track by $index">{{card.title}}
    </div>
  </section>
  <div flex></div>
  <footer flex="none" style="background-color:orange;color:white;">
    <div>footer item</div>
  </footer>
 </div>
</md-content>

这适用于Chrome和Safari:

<md-content layout="column" flex>
 <div flex layout="column">
  <section flex="none">
    <div ng-if="displayContent" style="min-height:20px;background-color:SteelBlue;color:white;" ng-repeat="card in cards|limitTo: displayLim track by $index">{{card.title}}
    </div>
  </section>
  <div flex></div>
  <footer flex="none" style="background-color:orange;color:white;">
    <div>footer item</div>
  </footer>
 </div>
</md-content>


 类似资料:
  • 我正试图用有棱角的材料做一个形状。此表单允许客户修改其个人数据(带有输入字段)。对于这种情况,我使用“mat form field”组件 但是也有一些字段他不能修改(比如他的名字)。对于这种情况,我不知道使用什么元素。我想要一些与材料设计兼容的,但我找不到。 这是我的密码: 有什么好主意吗? 谢啦

  • 我在Angular 5中构建了一个动态表单组件(基于https://angular.io/guide/dynamic-form的留档和示例)。 一切正常,直到我尝试使用有棱角的材料。 我在这里读过很多关于类似问题的文章,但它们似乎都是因为人们没有导入正确的模块,或者没有使用mdInput或mat Input而不是matInput。我遇到的问题并非如此。 任何想法或建议将不胜感激。 已更改代码-因错

  • $mdBottomSheet是一个Angular服务,用于在应用程序上打开一个底部工作表,并提供一个简单的promise API。 SN 方法和描述 1 $mdBottomSheet.show(options); 显示包含指定选项的底部工作表。 SN 参数和描述 1 * options 一个options对象,具有以下属性 - templateUrl - {string=} - 将用作底部工作表内

  • 我有一个应用程序可以加载Angular 2.0。0,所有rc版本之后的9/14/16版本。我试图添加AngularMaterial2,谷歌团队发布的官方MD版本。我正在从他们的入门网站复制/粘贴代码,但我使用的是Atom而不是angular cli,因为我已经构建了应用程序的开始部分。Atom typescript找到了所有内容,并表示没有错误。但是,尽管经过了大量的试用,当修改后的应用程序无法加

  • 我试图创建自己的自定义angular material组件,该组件能够使用控件。 除此之外,我希望该控件使用指令。 我的目的只是创建一个更好看的组件,该组件包含一个集成的clear按钮和自定义css箭头,如下图所示。我使用标准组件成功地获得了它,并添加了我想要的内容,但现在我想将它导出到泛型组件中。 null 即使正确选择了值,我的窗体也无效。 选择某个选项后,占位符自身设置不正确。 自动完成筛选