2013-03-16 23 views
16

Mam dwie kolumny na mojej stronie HTML.Niezależne przewijanie kolumny na stronie HTML

<div id="content"> 
    <div id="left"></div> 
    <div id="right"></div> 
</div> 

Każdy z nich zajmuje pół strony

#left { 
    float: left; 
    width: 50%; 
} 

#right { 
    float: left; 
    width: 50%; 
} 

Czy to możliwe, aby tak było, że płyną niezależnie? Chodzi mi o to, że chcę przewinąć w dół w lewej kolumnie, ale pozostać na górze prawej kolumny, zamiast przewijać w dół obie kolumny w tym samym czasie.

+0

Żaden z tych prac dla mnie (FF na Linux Mint KDE) ...? – HyperNeutrino

Odpowiedz

25

See this fiddle

#content, html, body { 
    height: 98%; 
} 
#left { 
    float: left; 
    width: 50%; 
    background: red; 
    height: 100%; 
    overflow: scroll; 
} 
#right { 
    float: left; 
    width: 50%; 
    background: blue; 
    height: 100%; 
    overflow: scroll; 
} 
+8

Możesz użyć 'overflow: auto', aby paski przewijania były wyświetlane tylko w razie potrzeby. (Przynajmniej pozioma jest denerwująca.) – Pietu1998

+0

@ Pietu1998 Dobre wezwanie na 'przepełnienie: auto;'. Nie widzę jednak poziomych pasków przewijania, ale oglądałem go tylko w Chrome. – dezman

+0

OK. Używam Firefoksa i pojawiają się one dla mnie. Nie mam pewności co do innych przeglądarek. – Pietu1998

3

Tak. Będziesz musiał ograniczyć ich wysokość. See this fiddle dla przykładu roboczego.

#content { 
    height: 10em; 
} 
#left { 
    float: left; 
    width: 50%; 
    background-color:#F0F; 
    max-height:100%; 
    overflow: scroll; 
} 

#right { 
    float: left; 
    width: 50%; 
    background-color:#FF0; 
    max-height:100%; 
    overflow: scroll; 
} 
2

Ustaw wysokość kolumn i ustaw overflow: auto. Możesz również umieścić wszystkie reguły wewnątrz tego samego selektora CSS. Tak:

#left, #right { 
    float: left; 
    width: 50%; 
    height: 200px; /* Set your height here */ 
    overflow: auto; 
} 
2

w prostych, napisać CSS tędy

#content div{ 
    height: 300px; 
    width:200px; 
    float: left; 
    border:1px solid blue; 
    overflow-y: auto; 
} 

sprawdź LIVE DEMO

9

wcześniejszym księgowań poprawiła trochę:

  • 100% html i rozmiar ciała .... bez paska przewijania
  • marże dla lewego i prawego pudełka
  • poszczególne paski przewijania tylko w razie potrzeby („Auto”)
  • kilka innych szczegółów: Wypróbuj !

Fiddle: 2 independently scrolling divs

html, body { 
    height: 100%; 
    overflow: hidden; 
    margin: 0; 
} 
#content { 
    height: 100%; 
} 
#left { 
    float: left; 
    width: 30%; 
    background: red; 
    height: 100%; 
    overflow: auto; 
    box-sizing: border-box; 
    padding: 0.5em; 
} 
#right { 
    float: left; 
    width: 70%; 
    background: blue; 
    height: 100%; 
    overflow: auto; 
    box-sizing: border-box; 
    padding: 0.5em; 
} 
Powiązane problemy