簡體   English   中英

如何將滾動條設置為僅在一個div中顯示

[英]How do I set my scrollbar to display only in one div

我正在研究一個角度SPA,應該在單獨的選項卡中生成幾個可搜索的數據列表。 我按照以下方式組織了它們:

    <body>
      <tabset>
        <tab>
          <div class="listedData">
            <ul>
              <li class="searchBar"></li>
              <li ng-repeat="iterateHere"></li>
            </ul>
          </div>
          <div class="dataDetails">
          </div>
        </tab>
        //... other tabs
      </tabset>    
    </body>

我希望頁面占據屏幕的高度,並且由於數據列表可能會占用更多的空間,因此我只想<ul>內部設置滾動條(最好跳過第一個元素searchBar ),但我可以接受。

為此,我將css定義如下:

html, body {
  height: 100%;
  width: 100%;
  padding: 0px;
  margin: 0px;
}
.listedData {
  ul {
    width: 15%;
    float: left;
    max-height: 95%;
    overflow-y: auto;  
  }
}

但是我沒有得到期望的結果,即列表只是延伸到屏幕之外以包圍所有元素,並且我可以滾動整個頁面以查看它們。 我嘗試為鏈中的所有標簽( <tabset><tab><div> )設置height屬性,但沒有區別。 有沒有辦法通過純CSS完成我的想法,還是我被迫通過JavaScript做到了?

要在ul上設置百分比值,您必須設置包裝div的高度。

如果要使用滾動條,可以使用以下樣式。 我為示例更改了html和一些值,以使其更加清晰。

 html, body { height: 100%; width: 100%; padding: 0px; margin: 0px; } .listedData { height: 35%; width: 100%; } .listedData ul { width: 20%; max-height: 70%; overflow-y: auto; } 
 <body> <tabset> <tab> <div class="listedData"> <ul> <li class="searchBar">content li 1</li> <li ng-repeat="iterateHere"> content li 2</li> <li ng-repeat="iterateHere"> content li 3</li> <li ng-repeat="iterateHere"> content li 4</li> <li ng-repeat="iterateHere"> content li 5</li> <li ng-repeat="iterateHere"> content li 6</li> <li ng-repeat="iterateHere"> content li 7</li> <li ng-repeat="iterateHere"> content li 8</li> <li ng-repeat="iterateHere"> content li 9</li> </ul> </div> <div class="dataDetails"> </div> </tab> //... other tabs </tabset> </body> 

Obs:要使滾動僅跳過seachbar,將更加困難。 我建議將輸入放在ul元素之前。 它將具有更好的可用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM