Mam witryny z ciała, które wygląda tak:HTML układ: dodanie paska bocznego kolumny do istniejącej witryny
<body>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</body>
Brak bezwzględne/względne sztuczki pozycjonowania są używane w tych div
s, ale istnieje wiele float
s, clear
s, margin
s i padding
s w stylach tych div
s i ich wewnętrznych elementów. Wszystko to daje stronę, która wygląda tak:
┌───────────────┐
│ header │
└───────────────┘
┌───────────────┐
│ content │
└───────────────┘
┌───────────────┐
│ footer │
└───────────────┘
Moje pytanie brzmi: w jaki sposób mogę dodać jeden niezależny stałej szerokości lewa kolumna (pasek boczny) z dodatkową zawartość, która zakontraktowania całej witryny (nagłówek, treść i stopki) i przesuń je w prawo.
┌────┐┌─────────┐
│side││ header │
│bar │└─────────┘
│ │┌─────────┐
│ ││ content │
│ │└─────────┘
│ │┌─────────┐
│ ││ footer │
└────┘└─────────┘
Znam jedną niemal idealne rozwiązanie, ale jest brzydki i wymaga istniejące re-gniazdowania div:
<body>
<table>
<tr>
<td id="sidebar">...</td>
<td>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</td>
</tr>
</table>
</body>
Czy to możliwe, aby to zrobić elegancko, wystarczy dodać gdzieś jednego zewnętrznego elementu paska bocznego w ciele, tj. w ten sposób?
<body>
<div id="sidebar">...</div>
<div id="header">...</div>
<div id="content">...</div>
<div id="footer">...</div>
</body>
Próbowałem naiwne podejście - takich jak stylizacji:
#sidebar { float: left; width: 20em; }
lub
#header { margin-left: 20em; }
#content { margin-left: 20em; }
#footer { margin-left: 20em; }
tego rodzaju prac, ale łamie najszybciej clear: both
lub clear: left
napotkano w nagłówku/content/footer.
Czy są zatem alternatywy dla rozwiązania stołowego?
Dzięki! Rozwiązanie to obejmuje również ponowne zagnieżdżanie nagłówka/treści/stopki, ale przynajmniej nie jest tak uciążliwe, jak rozwiązanie oparte na tabelach. Czy jest możliwe zachowanie nagłówka/treści/stopki w "treści"? Sądzę, że powinno być możliwe stylizowanie 'body' z względną pozycją i dopełnieniem? – GreyCat
Oto rozwiązanie: "body": http://jsfiddle.net/jAVQv/1/ - wygląda na to, że jest dokładnie to, czego potrzebuję. Rozumiem, że stylizacja "ciała" jest złą praktyką, ale myślę, że jest lepsza niż wszystkie alternatywy (to jest ponowne zagnieżdżanie) w tym przypadku. – GreyCat