Forum » Izdelava spletišč » HTML in CSS težava pri razporeditvi DIV elementov
HTML in CSS težava pri razporeditvi DIV elementov
SkIDiver ::
Imam HTML datoteko s tremi div elementi. Posamezni div pa vsebuje ostale HTML elemente.
Težava je, da nikakor ne morem razporediti div elementov s pomočjo CSS-ja kot prikazuje spodnja slika.
Če div-a z id=1 in 2 spravim v svoj položaj z lastnostjo float:left; se div z id=3 raztegne do vrha. Kako dosežem, da se div z id=3 ne bo raztegnil do vrha (če vrh slike predstavlja vrh strani v brskalniku) in bo ostal pod div z id=1 in 2?
Širino strani sem določil v CSS-ju kot je prikazano spodaj. Višina strani ni določena.
Težava je, da nikakor ne morem razporediti div elementov s pomočjo CSS-ja kot prikazuje spodnja slika.
Če div-a z id=1 in 2 spravim v svoj položaj z lastnostjo float:left; se div z id=3 raztegne do vrha. Kako dosežem, da se div z id=3 ne bo raztegnil do vrha (če vrh slike predstavlja vrh strani v brskalniku) in bo ostal pod div z id=1 in 2?
Širino strani sem določil v CSS-ju kot je prikazano spodaj. Višina strani ni določena.
body{ width:800px; margin:auto; }
- spremenil: SkIDiver ()
blackbfm ::
1 in 2 naj bosta display: inline-block, pa nastavi jima višino...float pa odstrani
če pa hočeš točno tako kot si napisal pa pri div 3 nastavi margin-top
če pa hočeš točno tako kot si napisal pa pri div 3 nastavi margin-top
Zgodovina sprememb…
- spremenilo: blackbfm ()
SkIDiver ::
Najlepša hvala! Rešitev sem dosegel, da sem div id=2 odstranil float:left in dodal display: inline-block. Če div id=1 nima float:left potem je vsak div v svoji "vrstici".
k--p ::
Lahko tudi dodaš še v div 3 float:left; ali pa clear:left.
Pa priporocljivo je se uporabit clearfix trick, ker se ti drugace parent element pomanjsa (v tvojem primeru body), ko elementom znotraj spremenis float. Je isto, kot da bi jih "vzel ven" iz parenta.
Pa priporocljivo je se uporabit clearfix trick, ker se ti drugace parent element pomanjsa (v tvojem primeru body), ko elementom znotraj spremenis float. Je isto, kot da bi jih "vzel ven" iz parenta.
Zgodovina sprememb…
- spremenilo: k--p ()
SkIDiver ::
Najlepša hvala za pomoč. Mogoče kakšna referenca o clearfix trick-u? Body mi je res razširilo iz 800px na 802px. Nič groznega, vendar me vseeno zanima kako dosežem svoje.
k--p ::
Clear-fix se uporabi, da ko elemente znotraj parent elementa floatas, da se le-ta ne pomanjsa, ker vec ne vsebuje floatanih elementov. http://nicolasgallagher.com/micro-clear...
Parentu dodas npr. class cf, ter copy-paste-aš kodo z linka v css.
To, da ti je razsirilo parent pa je verjetno nekaj drugega, ker float vpliva predvsem na visino parent elementa. Mogoce mas dodan se kak padding oz. border v velikosti 1px na vsaki strani. To se dodatno prišteje širini.
Parentu dodas npr. class cf, ter copy-paste-aš kodo z linka v css.
To, da ti je razsirilo parent pa je verjetno nekaj drugega, ker float vpliva predvsem na visino parent elementa. Mogoce mas dodan se kak padding oz. border v velikosti 1px na vsaki strani. To se dodatno prišteje širini.
SkIDiver ::
Spet pri težavi z div-i
Zgodba podobna kot zgoraj, samo da je v igri več DIV elementov. V osnovi uporabljam tri DIV elemente, da razporedim vsebino strani. TOP za vrh strani, CONTENT za osrednji del in RIGHTS za nogo.
CONTENT DIV imam razdeljen na LEFT in CENTER z DIV-i. Težava mi povzroča CENTER DIV-ki se pomakne na levi rob, jaz pa želim, da je pozicioniran pri desnem robu LEFT DIV-a. Torej nekako tako kot pri zgornji sliki div id=1 in div id=2 s tem, da sta oba DIV-a ovita še v dodatni DIV element CONTENT.
Takšno delitev z DIV-i uporabljam za kasnejše lažje spreminjanje vsebine in izgleda spletne strani.
PS: Robove sem dodal, da vidim velikost in pozicijo posameznega DIV-a.
HTML koda:
CSS:
Zgodba podobna kot zgoraj, samo da je v igri več DIV elementov. V osnovi uporabljam tri DIV elemente, da razporedim vsebino strani. TOP za vrh strani, CONTENT za osrednji del in RIGHTS za nogo.
CONTENT DIV imam razdeljen na LEFT in CENTER z DIV-i. Težava mi povzroča CENTER DIV-ki se pomakne na levi rob, jaz pa želim, da je pozicioniran pri desnem robu LEFT DIV-a. Torej nekako tako kot pri zgornji sliki div id=1 in div id=2 s tem, da sta oba DIV-a ovita še v dodatni DIV element CONTENT.
Takšno delitev z DIV-i uporabljam za kasnejše lažje spreminjanje vsebine in izgleda spletne strani.
PS: Robove sem dodal, da vidim velikost in pozicijo posameznega DIV-a.
HTML koda:
<body> <div id="top"> <div id="logo"> </div> </div> <div id="content"> <div id="left"> <div id="navigation"> </div> </div> <div id="center"> <div id="note"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> </div> </div> <div id="rights"> </div> </body>
CSS:
body { width:1000px; margin:auto; margin-top:10px; background-color:rgb(255,255,255); border-style:solid; border-width:1px; border-color:red; } #top { width:auto; height:121px; border-style:solid; border-width:1px; border-color:red; } #logo { width:300px; height:inherit; margin:0px; padding:0px; border-style:solid; border-width:1px; border-color:red; } #content { width:1000px; height:400px; margin:20px 0px 0px 0px; border-style:solid; border-width:1px; border-color:red; } #left { float:left; width:250px; height:inherit; border-style:solid; border-width:1px; border-color:red; } #navigation { border-style:solid; border-width:1px; border-color:red; } #center { width:750px; height:inherit; border-style:solid; border-width:1px; border-color:green; } #note { border-style:solid; border-width:1px; border-color:red; }
JayKay ::
centru daj float:left; in ne pozabi da border doda k sirini elementa: 250+2x1px + 750 +2x1px > 1000px
SkIDiver ::
Centru sem že dodal float:left;. Ga vrže pod LEFT in CONTENT na levi rob
Vem, da border doda. V končni obliki ne bo robov, zato jih nisem vračunal v 1000px širine
PS: Sicer lahko rešim, če dodam margin-left:250px; v CENTER ampak ne želim takšne rešitve.
Vem, da border doda. V končni obliki ne bo robov, zato jih nisem vračunal v 1000px širine
PS: Sicer lahko rešim, če dodam margin-left:250px; v CENTER ampak ne želim takšne rešitve.
Zgodovina sprememb…
- spremenil: SkIDiver ()
JayKay ::
#center { width:750px; height:inherit; border-style:solid; border-width:1px; border-color:green; }
kje?
SkIDiver ::
Po tvojem predlogu sem dodal, pa ni bilo spremembe. Sem pa CENTER nastavil width:746px; in voila. Seveda, robovi Hvala za pomoč in opozorilo, ki sem ga napačno razumel
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
! | Vse, kar ste si želeli vprašati o CSS, pa si niste upali. (strani: 1 2 3 4 … 23 24 25 26 )Oddelek: Izdelava spletišč | 344174 (3311) | sunniegoldie |
» | Tabela/razpredelnica v html kodiOddelek: Programiranje | 856 (766) | Yacked2 |
» | CSS dimenzije in pozicijeOddelek: Izdelava spletišč | 1339 (1067) | marjan_h |
» | [CSS] Div brez 5mm razmakaOddelek: Izdelava spletišč | 564 (533) | Veron |
» | kako naj napravim spletno stran da bo animirala v operiOddelek: Izdelava spletišč | 1117 (1004) | pitagora |