如何使用css修复侧边栏和标题

Posted

技术标签:

【中文标题】如何使用css修复侧边栏和标题【英文标题】:How to make sidebar and header fixed using css 【发布时间】:2018-08-06 17:11:05 【问题描述】:

如何修复侧边栏?

我正在使用 Angular,router-outlet 是页面的组件,我希望侧边栏和标题不要移动。我应该在我的 CSS 中添加什么?这是我的代码

<div class="whole-page" *ngIf="showSidebar; else login">
      <!--header-->
      <div class="ui top attached demo menu" >
          <a class="item" (click)="sidebar.toggle()">
              <i class="sidebar icon"></i>
          </a>
          <h3>Attendance Management System</h3>
          <div class="right menu">
              <div class="item">User</div>
              <a class="item"><i class="sign out alternate icon"></i></a>
          </div>
      </div>

      <!--sidebar-->
      <sui-sidebar-container class="ui bottom attached segment">
        <sui-sidebar class="inverted vertical" #sidebar>
            <a class="item" routerLink="/attendance-record">Attendance Record</a>
            <a class="item" routerLink="/timestamp-cebu">Timestamp Cebu</a>
        </sui-sidebar>
        <sui-sidebar-sibling [isDimmedWhenVisible]="false">
            <div class="pages">
                <router-outlet></router-outlet>
            </div>
        </sui-sidebar-sibling>
      </sui-sidebar-container>
</div>

目前,此侧边栏的外观已被剪切为附上的照片

我拥有的唯一 CSS 是 whole-page 类和 pages 类,如下所述

.whole-page 
    height: 100%;

.pages
    padding: 30px;    
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;

【问题讨论】:

【参考方案1】:

您可以为侧边栏和标题创建单独的组件。这样你就可以随心所欲地使用它们了。

我相信这种情况类似于 How to use flex-layout in nested components in angular 5?这个。

【讨论】:

【参考方案2】:

你可以试试这个代码,希望它对你有用。

html

<div class="whole-page" *ngIf="showSidebar; else login">
    <!--header-->
    <div class="ui top attached demo menu header" >
        <h3>Attendance Management System</h3>
    </div>
    <!--sidebar-->
    <sui-sidebar-container class="ui bottom attached segment">
        <sui-sidebar class="inverted vertical side-bar" #sidebar>
            <li>
                <a class="item" routerLink="/attendance-record">Attendance Record</a>
            </li>
            <li>
                <a class="item" routerLink="/timestamp-cebu">Timestamp Cebu</a>
            </li>
            <li>
                <a class="item" routerLink="/attendance-record">Attendance Record</a>
            </li>
            <li>
                <a class="item" routerLink="/timestamp-cebu">Timestamp Cebu</a>
            </li>
        </sui-sidebar>
        <sui-sidebar-sibling class="content" [isDimmedWhenVisible]="false">
            <div class="pages">
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
                <p>Hello World</p>
            </div>
        </sui-sidebar-sibling>
    </sui-sidebar-container>
</div>

CSS:

.header
    height: 60px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: black;
    color: white;
    z-index: 3;


.side-bar
    width: 25%;
    float: left;
    position: fixed;
    background: red;
    height: 100vh;
    top: 60px;


.content
    background: green;
    width: 75%;
    display: inline-block;
    position: absolute;
    right: 0;
    top: 60px;

【讨论】:

这适用于标题,但对于侧边栏,它仍然被剪切。不过还是谢谢 在侧边栏中使用overflow: auto;【参考方案3】:

使用下面的代码固定标题和侧边栏,您也可以根据需要更改属性

.ui.bottom 
    position: fixed;
    left: 20px;
    top: 84px;
    width: 100%;
    max-width: 229px;
    background: #000;
    color: #fff;
    padding: 20px;
    box-sizing: border-box;

.ui.top 
    position: fixed;
    left: 0;
    right: 0;
     top:0;
    padding: 10px;
    box-sizing: border-box;
    background: #000;
    color: #fff;
    text-align: center;

【讨论】:

你能指定ui底部和ui顶部的位置吗?这些类是什么? 检查你的 div

以上是关于如何使用css修复侧边栏和标题的主要内容,如果未能解决你的问题,请参考以下文章

如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航

如何在ios中同时实现标签栏和侧边菜单?

在adminiTE与yii2的集成中创建固定的导航栏和固定滚动的侧边栏

css Nuvo-Express css用于将边框顶部添加到过程侧边栏。侧栏和顶栏的颜色相似时使用。用高光替换颜色

如何创建旁边有 2x3 网格的侧边栏

如何使用一些热键隐藏标题和侧边栏