Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS] Width: 100% strony
Forum PHP.pl > Forum > Przedszkole
d.stp
Witam, robię szablon panelu administracyjnego autorskiego i mam problem z jego zakodowaniem, a konkretniej chodzi o to że chcę zrobić:

HEADER - szerokość 100%, wysokość np. 50px, poistion: absolute;
LEWA_STRONA - tło lewej strony jest np. czarne, szerokość jest ustawiona stała np. 200px.
PRAWA_STRONA - tutaj chcę żeby PRAWA_STRONA miała szerokość 100% niezależną od rozdziałki osoby która przegląda stronę.

i tu zaczyna się problem. Najlepiej jakby było coś w stylu: prawa_strona { width: 100% - 200px; } biggrin.gif

Jak dam prawa_strona:

{
float: right;
width: 100%;
}

a lewa_strona {
float: left;
width: 200px;
}

to prawa_strona ucieka mi poniżej lewa_strona czyli tak jakby się nie mieści.

Co robić?
miras
  1.  
  2. prawa_strona
  3. {
  4. float: right;
  5. width: 100%;
  6. }
  7.  
  8. lewa_strona {
  9. float: left;
  10. width: 200px;
  11. position: absolute;
  12. }
d.stp
Jest prawie dobrze, problem w tym że prawa_strona nachodzi mi na lewa_strona ;(
trueblue
Cytat(d.stp @ 11.12.2014, 22:40:56 ) *
Najlepiej jakby było coś w stylu: prawa_strona { width: 100% - 200px; } biggrin.gif

Do tego możesz użyć box-sizing:border-box i wewnątrz element pozycjonowany absolutnie, ewentualnie calc.

miras, nie ma czegoś takiego jak float i absolute.
Pawel_W
@miras
float i width: 100%? jaki to ma sens?
float i position: absolute - tak samo

coś takiego może zadziałać
  1. .lewa_strona {
  2. float:left;
  3. width:200px;
  4. }
  5.  
  6. .prawa_strona {
  7. padding-left: 200px;
  8. }
miras
Zapomniałem usunąć float'a, ale faktycznie moje rozwiązanie nie jest dobre, bo divy wtedy się tylko pokrywają zamiast być obok siebie..
d.stp
Paweł, twój sposób w sumie działa, ale zniknął mi cały content biggrin.gif to co mam w prawa_strona dopiero jak float dam to się pokazuje ale pod lewa_strona
Pawel_W
coś musiałeś zepsuć bo u mnie działa

http://jsfiddle.net/tfg7wLa3/
d.stp
Jest ok, to przez clear: both; które miałem.

Od razu mam pytanie, bo chcę zrobić taki szablon full auto width; i mam content (prawa_strona) i tam powiedzmy 4 boxy. Chcę żeby każdy miał 25% szerokóści to dodałem:

li {
width: 25%;
float: left;
}

no i dobra, ładnie pięknie, ale chcę żeby te boxy miały odstęp od siebie z 20px więc:

li { margin: 0px 25px 0px 0px;
.last { margin: 0; }

i wiadomo... ostatni box wyrzuca mi pod resztę
Pawel_W
w takim wypadku możesz zrobić to co zasugerował trueblue, mianowicie
- albo ustawić box-sizing: border-box + padding (margin nie zadziała)
- albo calc (tutaj trochę gorzej ze wsparciem przeglądarek)
d.stp
hmm.. dałem dla <li>

li {
box-sizing: border-box;
padding: 15px 20px 15px 20px;
}

i dalej nie ma odstępu. Dodam że li ma ustalone tło, to może przez to?

@edit:

zmieniłem w LI: float left na display: inline-block; i niby jest teraz odstęp ale co z tego jak znowu ostatni box spadł pod resztę, a odstęp jak dałem 20px z lewej i prawej to jest dużo mniejszy ;o
trueblue
http://jsfiddle.net/xbqd9jvt/
d.stp
Dzięki, ale mi chodzi o to jak to zastosować dla <li> :/
trueblue
Nie możesz zmienić div na li?
Pokaż swoją strukturę html.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.