ugrás a tartalomhoz

CSS oldalszerkezet

Speeder_ · 2005. Aug. 1. (H), 13.44
Hello,

Már egy ideje próbálkozok vele, de sehogy sem sikerül összehozni. Leírom, hogy pontosan mit szeretnék megcsinálni.

<div class="contain">
<div class="header">Header</div>
<div class="menu">Menu</div>
<div class="content">Content</div>
<div class="footer">Footer</div>
</div>

A .contain-nek 90% széles és 100% magasnak, a .header-nek 100% széles (a .contain 100%, vagyis az egész oldal 90%) és 100px magasnak, a .menu-nek 20% szélesnek és automatikusan növekvő magasságának, a .content-nek 80% szélesnek és automatikusan növekvő magasságának, a .footer-nek 100% szélesnek és 75px magasnak kell lennie.
Ez így még nagyjából menne is, de vannak még itt gondok. Úgy szeretném megcsinálni, hogy FireFox-ban, IE-ben is működjön. Mindegyik elemnek (kiv. contain) mindenhol 2px padding kell. A .menu-nek és a .content-nek egy sorban kell lennie. Ha a .menu magasabb, mint a .content, akkor se legyen fehér rész a .content alatt, hanem automatikusan nőjjön az is, ugyanez fordítva is igaz legyen, tehát ha több oldal a tartalom, akkor a menü menjen keresztül több oldalon még akkor is, ha csak egy sor van benne.

Nem tudom, hogy mennyi fogalmaztam érthetően. Remélem mindenki érti :)
 
1

Re

attlad · 2005. Aug. 1. (H), 14.33
2px padding-gal IE 6 előtti verzióknál lehet eltérés erre CSS hacket kéne alkalmaznod, IE 6 már jól kezeli ha strict DOCTYPE-ot adsz meg, pl. HTML 4.01 Strict. A többi szerintem mind a két böngészőben kb. ugyanúgy működik.

Az egyenlő hosszú dobozokra itt a megoldás:
http://weblabor.hu/forumok/temak/8459

Update:
Százalékos megadás miatt lehet, hogy egyszerűbb, ha nem adsz meg padding-ot, hanem a contentben lévő elemek kapnak majd margin-t vagy padding-ot:
  1. <style type="text/css">  
  2. #content h1, #content p {  
  3.     margin: 0 2px;  
  4. }  
  5. </style>  
  6.   
  7. <div id="content">  
  8.     <h1>Cím</h1>  
  9.     <p>Ez itt egy szöveg</p>  
  10. </div>  
Attila
2

Hát nekem nem sikerült.

Speeder_ · 2005. Aug. 1. (H), 17.08
Hát nekem nem sikerült. Amit adtál linket, ott megnéztem. Itt a kód. És továbbra se jó. Se ie-be, se ff-be.
<html>
<head>
<style>
.tartalmazo {
background: red url(mindketto.png) repeat-y left top;
width: 400px;
}
.baldoboz {
background-color: yellow;
width: 200px;
float: left;
}
.jobbdoboz {
background-color: blue;
width: 200px;
float: right;
}
.lezaro {
height: 0;
clear: both;
}
</style>
</head>
<body>
<div class="tartalmazo">
<p class="baldoboz">Azt szeretném elérni,
hogy a jobb oldalon látható kék boboz,
ugyanezt a méretet vegye fel,
(mint ez a sárga doboz).</p>
<p class="jobbdoboz">Jobb oldali kék doboz.</p>
<p class="lezaro"></p>
</div>
</body>
</html>
3

Milyen képet használsz?

kgyt · 2005. Aug. 1. (H), 17.21
A háttérkép legyen félig sárga, félig kék!

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
4

Csak statikus szélességnél

Speeder_ · 2005. Aug. 1. (H), 17.28
Ez a megoldás csak akkor jó, ha a .tartalmazo div szélessége állandó lenne. De én azt úgy akarom beállítani, hogy mindig az oldal 90%-a legyen.
5

Link

attlad · 2005. Aug. 1. (H), 18.12
http://wellstyled.com/files/css-2col-fluid-layout/example3.html ez esetleg?

Attila
6

Udv! Ajanlom neked is

noocx · 2005. Aug. 1. (H), 19.13
Üdv!

Itt is érdemes lehet körülnézned:
http://webhost.bridgew.edu/etribou/layouts/skidoo/

</noocx>
8

Felül azt írtad

kgyt · 2005. Aug. 1. (H), 21.21
Fent 400px széles tartalmazó cuccot mutattál.
Akkor dolgozzuk át, hogy menjen...
  1. <...>  
  2. <body>  
  3.   <div class="container">  
  4.     <div class="container2">  
  5.       <p class="leftbox">Azt szeretném elérni,  
  6.          hogy a jobb oldalon látható kék boboz,  
  7.          ugyanezt a méretet vegye fel,  
  8.          (mint ez a sárga doboz).</p>  
  9.       <p class="rightbox">Jobb oldali kék doboz.</p>  
  10.       <p class="closer"></p>  
  11.     </div>  
  12.   </div>  
  13. </body>  
  14. </html>   
  1. .container {  
  2.   /* Ennek a háttere egy 200px széles sárga csík */  
  3.   /* lehet 1px magas is...                       */  
  4.   backgroundtransparent url(yellow.png) repeat-y left top;  
  5.   width90%;  
  6. }  
  7. .container2 {  
  8.   /* Ennek a háttere egy 200px széles kék csík   */  
  9.   /* lehet 1px magas is...                       */  
  10.   backgroundtransparent url(blue.png) repeat-y right top;  
  11.   width100%;  
  12. }  
  13. .leftbox {  
  14.   background-color: yellow;  
  15.   colorblack;  
  16.   width200px;  
  17.   floatleft;  
  18. }  
  19. .rightbox {  
  20.   background-colorblue;  
  21.   colorblack;  
  22.   width200px;  
  23.   floatright;  
  24. }  
  25. .closer {  
  26.   height0;  
  27.   clearboth;  
  28. }  
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
7

Sikerült

Speeder_ · 2005. Aug. 1. (H), 19.54
Köszi a segítséget.
Amit attlad adott linket, ott megnéztem és az alapján sikerült megcsinálni.
noocx: Azt a linket is megnéztem, amit te adtál, egyenlőre még csak belepillantottam, de tetszik, úgyhogy el van mentve :) majd valamikor megnézem a napokban
9

PHP-vel együtt már nem jó

Speeder_ · 2005. Aug. 2. (K), 15.48
Az oldal itt van http://another.atw.hu/new/.
A teljes php itt van:
  1. <?php  
  2.     include "define.php"// A MAILADDRESS van benne  
  3.   
  4.     /* Start XHTML */  
  5.     echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 //EN" "DTD/xhtml1-strict.dtd">';  
  6.     echo '<html><head><title>Demó belépőrendszer</title>';  
  7.     echo '<link href="style.css" type="text/css" rel="stylesheet" />';  
  8.     echo '</head>';  
  9.       
  10.     /* Start Body */  
  11.     echo '<body>';  
  12.         echo '<div class="header">Demó belépőrendszer</div>';  
  13.             echo '<div class="contain">';  
  14.                 echo '<div class="menu">';  
  15.                     echo '<div class="menu-contain">';  
  16.                         echo 'Ez itt egy akkora szöveg, ami már nem fér el egy sorban.';  
  17.                     echo '</div></div>';  
  18.                 echo '<div class="content">';  
  19.                     echo '<div class="content-contain">';  
  20.                         echo 'Content';  
  21.                     echo '</div></div>';  
  22.                 echo '<div class="cleaner"></div>';  
  23.         echo '</div><div class="footer">'.MAILADDRESS.'</div>';  
  24.       
  25.     /* End Body, XHTML */   
  26.     echo '</body></html>';  
  27. ?>   
Egyébként ha a hosszabb szöveg helyére azt írom be, hogy Menu, akkor rendesen működik. Sőt akkor is működik, ha nem PHP-vel generálom az oldalt, hanem csak simán a html-t írom be.
10

HR != DIV

attlad · 2005. Aug. 2. (K), 16.07
Nincs HR elemed, hanem DIV elemed van és ilyen kiválasztót használsz a CSS-ben: hr.cleaner, div.cleaner kéne.

Attila
11

Megint sikerült :)

Speeder_ · 2005. Aug. 2. (K), 17.59
Köszi így jó lett.
Azért cseréltem ki a hr elemet div-re, mert amikor hr volt, akkor az ie-ben alul nagyobb hely volt mint a firefox-ban.