Tworzenie div pionowego przewijania za pomocą CSS


560

To

<div id="" style="overflow:scroll; height:400px;">

daje divużytkownikowi możliwość przewijania zarówno w poziomie, jak i w pionie. Jak to zmienić, aby div mógł być przewijany tylko w pionie?


36
Jest overflow-xi overflow-yw CSS3, które robią, co chcesz.
Marc B

Odpowiedzi:


698

Masz to ubezpieczone oprócz korzystania z niewłaściwej właściwości. Pasek przewijania może być wyzwolony z wszelkich nieruchomości overflow, overflow-xalbo overflow-yi każdy z nich może być ustawiony jeden z visible, hidden, scroll, auto, lub inherit. Obecnie patrzysz na te dwa:

  • auto- Ta wartość będzie patrzeć na szerokość i wysokość pudełka. Jeśli są zdefiniowane, nie pozwoli, aby pole przekroczyło te granice. Zamiast tego (jeśli treść przekracza te granice), utworzy pasek przewijania dla dowolnej granicy (lub obu), która przekracza jej długość.

  • scroll- Te wartości wymuszają pasek przewijania, bez względu na wszystko, nawet jeśli zawartość nie przekracza zestawu granic. Jeśli zawartość nie musi być przewijana, pasek pojawi się jako „wyłączony” lub nieinteraktywny.

Jeśli zawsze chcesz, aby pionowy pasek przewijania pojawiał się:

Powinieneś użyć overflow-y: scroll. Te siły pasek przewijania do pojawiają się na osi pionowej, czy nie jest to potrzebne. Jeśli nie możesz przewinąć kontekstu, pojawi się on jako „wyłączony” pasek przewijania.

Jeśli chcesz, aby pasek przewijania pojawiał się tylko wtedy, gdy możesz przewinąć pole:

Po prostu użyj overflow: auto. Ponieważ treść domyślnie po prostu przechodzi do następnego wiersza, gdy nie może zmieścić się w bieżącym wierszu, poziomy pasek przewijania nie zostanie utworzony (chyba że dotyczy elementu z wyłączonym zawijaniem słów). W przypadku paska pionowego zawartość będzie się rozszerzać do określonej wysokości. Jeśli przekroczy tę wysokość, wyświetli pionowy pasek przewijania, aby wyświetlić resztę zawartości, ale nie wyświetli paska przewijania, jeśli nie przekroczy wysokości.


4
przy użyciu przepełnienia: auto w jakiś sposób tworzy gigantyczny pusty blok miejsca na dole strony. Czy to jest częste zjawisko?
Stupid.Fat.Cat

268

Spróbuj tak

<div style="overflow-y: scroll; height:400px;">


1
Dobre rozwiązanie, ale zwój jest zawsze widoczny bez względu na wysokość
FindOutIslamNow

7
jeśli ustawisz wartość przelewu-y na „auto”, przewijanie będzie widoczne po zdefiniowanej wysokości. na przykład <div style = "overflow-y: auto; height: 200">
Umair Gul

123

Dla 100% wysokości rzutni użyj:

overflow: auto;
max-height: 100vh;

52

Użyj overflow-y: auto;na div.

Powinieneś także ustawić szerokość.


13
Dlaczego ustawianie szerokości jest konieczne?
LeeGee

1
@LeeGee potrzebujesz szerokości, aby obliczyć, czy zawartość div wykroczyła poza granice div, a tym samym czy włączyć przewijanie, czy nie.
Roberto Bonini,

Czy szerokość nie jest domyślnie 100%?
LeeGee,

1
@LeeGee Nie, to autodomyślnie. Zwykle oznacza to 100% szerokości rodzica, ale nie zawsze.
Madara's Ghost

31

Zamiast tego możesz użyć tego kodu.

<div id="" style="overflow-y:scroll; overflow-x:hidden; height:400px;">


overflow-x : Właściwość overflow-x określa, co zrobić z lewą / prawą krawędzią treści - jeśli przepełni obszar zawartości elementu.
overflow-y : Właściwość overflow-y określa, co zrobić z górną / dolną krawędzią treści - jeśli przepełni obszar zawartości elementu. Widoczne

wartości : wartość domyślna. Treść nie jest przycinana i może być renderowana poza polem zawartości. ukryty : treść jest obcięta - i nie ma mechanizmu przewijania. przewijanie : treść jest obcinana i zapewniony jest mechanizm przewijania. auto : Powoduje udostępnienie mechanizmu przewijania dla przepełnionych pól. initial : Ustawia tę właściwość na wartość domyślną.





inherit Dziedziczy tę właściwość po elemencie nadrzędnym.


15

Możesz użyć overflow-y: scrolldo przewijania w pionie.

<div  style="overflow-y:scroll; height:400px; background:gray">
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
  
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
  
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
  
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
  
  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
  
 </div>


9

Problem z tymi wszystkimi odpowiedziami był taki, że nie reagowały. Musiałem mieć ustaloną wysokość dla rodzica div, czego nie chciałem. Nie chciałem też spędzać dużo czasu, grzebiąc w mediach. Jeśli używasz kątowego, możesz użyć zestawu startowego, który wykona za ciebie całą ciężką pracę. Będziesz mógł przewijać zawartość wewnętrzną, a ona będzie reagować. Po skonfigurowaniu karty wykonaj następujące czynności: $scope.tab = { title: '', url: '', theclass: '', ative: true };... chodzi o to, że nie chcesz ikony tytułu ani obrazu. następnie ukryj kontur karty w cs w następujący sposób:

.nav-tabs {
   border-bottom:none; 
} 

a także to .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {border:none;} i wreszcie, aby usunąć niewidoczną kartę, którą możesz kliknąć, jeśli nie zaimplementujesz tego:.nav > li > a {padding:0px;margin:0px;}

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.