06. april 2012 - 19:32Der er
16 kommentarer og 1 løsning
problem med styring af div tags med margin.
Hejsa
Jeg har lidt problemer med at styre mine margins på mine div tags.
jeg har et div tag som står i et andet div tag men når jeg tilføjer margin-top relaterer den sig til body elementet istedet for det div tag som er dens parent.
Hmm, jeg sad og læste lidt igår, men jeg må sige at jeg ikke forstår det hele - men det kommer nok.
Jeg fik da fat i at men på den vertikale akse ikke kan have flere på hinanden marginer, da de så falder sammen (Kolapser).
Jeg sad og testede lidt her til morgen og fandt ved et uheld ud af af hvis jeg afsætter en padding-top: 1px; på #Wrapperen, kan jeg med margin på #Banner flytte boksen vertikalt som jeg ønsker det.
Ja, din padding på #Wrapper forhindrer margin fra #Wrapper og #Banner i at kollapse, i følge denne regel: "no line boxes, no clearance, no padding and no border separate them"
Jeg ville lige høre om du også har styr på "Display: inline" ??
Jeg forsøger i min Banner blok at få sat 3 elementer ind. Et logo (img) i venstre side, en H1 i midten og et form element i højre side.
og jeg kan ikke rigtig få det virke selvom jeg bruge inline.
/Lemche
Synes godt om
Slettet bruger
09. april 2012 - 16:48#10
Hvilke problemer får du? Er det fordi du prøver at sætte bredden på de forskellige elementer du laver inline? For så skal du bruge "display: inline-block;" i stedet, da inline elementer ignorer bredden.
Som du nok kan se er jeg i min spæde start i at forstå, hvordan man sætter en side op med CSS. Jeg forsøgte engang med tables, men opgav, da jeg syntes det var for svært.
Da jeg gik igang med at læse om CSS mente jeg at have fundet de vise sten, men det er altså ikke så nemt som man først tror.
Jeg mener at have forstået BOX modellen i basis med forskellen på margin, border, og padding på de enkelte elementer, men jeg har lidt svært ved alle reglerne der forholder sig til elementerne.
Jeg troede også at det ville gøre arbejdet nemmere at man designede sin side til at starte med, med div tags, som man gav størrelse og form, hvorefter man kunne komme forskellige ting ind i disse div tags. Jeg er dog ikke helt sikker op dette mere.
Det virker ikke somom det gør tingene lettere. Jeg troede faktisk at disse div blokke flød mere på siden - altså at man kunne placerer dem hvor man ville (forskudt, oven på hinanden, ved siden af hinanden, osv.) men det kan jeg slet ikke få til at virke.
men for at vende tilbage til mit problem så ligger det i at jeg ville have en header blok (div tag) i toppen af siden. Inden i denne blok ville jeg have et logo (img) i venstre side - en overskrift i midten (H1)- og et login felt (form) i højre side.
Logoet kan jeg sagtens placerer, men så begynder problemerne at opstå. Overskriften skal centreres og nu kan jeg jo ikke længere bruge margin-left: auto til dette. Dernæst skal jeg bruge padding-left fir at få mit form felt helt til højre.
Måske er det bare mig der ikke skriver den rigtige kode eller også mengler min forståelse lidt i hvordan elementerne forholder sig til hinanden.
Så h1 og form placeres med absolut positionering i #Banner. Jeg bryder mig ikke selv om denne løsning, da det hurtigt kan blive noget rod hvis man senere skal justere på positionerne. Men den er uafhængig af hvad bredden på #Wrapper er sat til, og du behøver ikke at vide hvad bredden på logoet og din login form er.
Husk også at sætte en DOCTYPE på din html side hvis du ikke allerede har det, ellers kan du ikke regne med at css-koden fungerer som forventet.
At centrere ting med css kan give en masse hovedbrud, det er desværre ikke altid så ligetil. :) Men hvis du alligevel kender bredden på de forskellige elementer, så er den nemme måde:
Jeg har kun ændret width og tilføjet text-align. Teksten er gjort centreret og bredden er lavet så der lige akkurat er luft mellem #nr2 og #nr3 på 10px, så det svarer til din venstre margin. Du kan også fjerne venstre margin og øge width med 20px.
Hvis du tilføjer float:left på #nr2 kan du fjerne dine display:inline-block, så de bare er block som default.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.