Avatar billede nemlig Professor
12. april 2011 - 13:21 Der er 24 kommentarer og
1 løsning

Lodret centrering af text i DIV

Hejsa.
Jeg kan bare ikke få det til at virke.
Jeg har en DIV, hvor jeg ønsker at centrere texten både vandret og lodret, men den lodrette centrering virker ikke:

.trinAktiv {
    float:left;
    width: 245px;
    height: 30px;
    border: 0px;
    margin-top: 4px;
    margin-bottom: 0px;
    text-align: center;
    color:    #ffffff;
    font-family: Arial;
    font-size:     12pt;
    vertical-align: middle;
    background-image: url('../grafik/bgknap.gif');
    }

Nogen der kan gennemskue det?
Kan man alternativt angive en parameter for, hvor langt fra toppen, texten skal vises?
Avatar billede showsource Seniormester
12. april 2011 - 13:44 #1
margin er den "udvendige" side af en box.
padding er den "indvendige"

Forstår ikke lige "lodret" ?
Avatar billede nemlig Professor
12. april 2011 - 13:49 #2
Jeg vil gerne have teksten til at stå centreret - både lodret og vandret.
Vandret klares med: text-align: center;
Lodret troede jeg, kunne klares med: vertical-align: middle;
Avatar billede nemlig Professor
12. april 2011 - 13:53 #3
Prøv fx at tjekke her:

http://www.fam-johansen.dk/skabelon/

Næsten øverst har jeg 4 punkter: 1. Vælg periode, 2. Priser osv.

Disse tekster vil jeg gerne have til at stå i midten. Lige nu står de i toppen.
Avatar billede nemlig Professor
12. april 2011 - 13:56 #4
Jeg kan løse det ved at sætte:
height 5px mindre
+
padding-top til 5px.

Men det er vist lidt uautoriseret!
Avatar billede Slettet bruger
12. april 2011 - 14:06 #5
Hvis ikke du kender højden på den tekst der skal centreres vertikalt er det umuligt!

- medmindre du justerer med script efter den er vist (og du kan spørge den hvor høj den blev)

Brandirriterende..
Avatar billede showsource Seniormester
12. april 2011 - 14:06 #6
hmm, jeg er faktisk ikke klar over hvordan vertical-align bliver brugt ?
Avatar billede Slettet bruger
12. april 2011 - 14:07 #7
Hvis du kender højden, skal du bare give den en top-margin = det halve.
Avatar billede Slettet bruger
12. april 2011 - 14:08 #8
stryg det sidste : )
Avatar billede nemlig Professor
12. april 2011 - 14:12 #9
OK - men jeg har det trods alt til at virke med padding-top og en mindre height.
Avatar billede Slettet bruger
12. april 2011 - 14:16 #10
I dit tilfælde hvor du VED hvor høj teksten er, kan du bare give boksen en passende padding-top.
Avatar billede Slettet bruger
12. april 2011 - 14:20 #11
Jeg skal lære at reloade, inden jeg skriver : )
Avatar billede tjens Nybegynder
12. april 2011 - 14:47 #12
vertical-align virker på indhold af tabeller.
Derfor bliver vertical-align aktivt hvis du tilføjer:

display: table-cell;

Og da din "menu" er en vandret linie, vil det ikke forstyrre designet.
Måske kan float:left; undværes.
Avatar billede nemlig Professor
12. april 2011 - 14:56 #13
#12. "display: table-cell;" havde jeg faktisk prøvet, men det gjorde ingen forskel.

Jeg opdaterer lige www.fam-johansen.dk/skabelon, så du kan se, at det ikke virker - eller måske kan du se, hvad jeg har gjort forkert!
Avatar billede tjens Nybegynder
12. april 2011 - 15:07 #14
#13 Jeg havde ellers testet det, men nu hvor jeg også indsætter float:left; i mit eksempel går det galt.

Prøv at slette linien float:left;
Avatar billede nemlig Professor
12. april 2011 - 15:11 #15
#14 Så går det helt galt med placeringen.
Avatar billede tjens Nybegynder
12. april 2011 - 15:17 #16
Du har glemt at sætte display:table-cell på de passive
Avatar billede nemlig Professor
12. april 2011 - 15:25 #17
Er nu rettet. Men det ser skidt ud i Firefox.
Avatar billede tjens Nybegynder
12. april 2011 - 15:33 #18
to ting:
- du har float:left på din top. Hvorfor det?
- top og boks1 er omkranset af en <div>. hvorfor er passiv/aktiv linien ikke det?

Derudover: undgå float i et fast design som det aktuelle.
Avatar billede nemlig Professor
12. april 2011 - 15:47 #19
#18 Tak for din tålmodighed indtil nu.
Jeg er nok ikke så skarp på CSS, men øver mig og bliver også klogere.
Det hjalp at få fjernet "float:left" fra DIV-top.

Som jeg ser det, så har jeg en overordnet DIV-Yderkrans, og alle andre DIV ligger inde i DIV-Yderkrans, herunder Top, Boks1, Boks2, Passiv/aktiv linjen m.fl.
Skal Passiv/aktiv linjen være omkranset af <div></div>?
Avatar billede nemlig Professor
12. april 2011 - 15:55 #20
Jeg synes, det er ved at se ret fornuftigt ud.
Det eneste, der bekymrer mig, er at hvis jeg i IE vælger at vise i kompatibilitetstilstand, så ser det ikke godt ud med min aktiv/passiv linje, idet bredde og højde fjernes.
Avatar billede tjens Nybegynder
12. april 2011 - 16:01 #21
#19 DIV er et blok-element, så hvergang der starter en ny, kommer der et linieskift, og DIVen reserverer plads i hele bredden.

Så jeg synes at du skal have en <div id="progress"> uden om de fire statusfelter, da det netop er en bred linie i designet. Dermed kan de visse css-linier fra trinAktiv og trinPassiv flyttes til denne, så de ikke skal stå 2 gange.
Og har du ikke også flere linier end nødvendigt?

Jeg synes også at du skal ændre de 4 gange span til 4 gange div.

display:table-cell annullerer div's ønske om at fylde hele bredden, og lader flere divs stå på række.

Det kan du også bruge til boks1 og 2:
Der er ingen tekst der skal bruge float i dit design: Se om du kan få dem alle fjernet.
Avatar billede nemlig Professor
12. april 2011 - 16:26 #22
#21 Hold da op, hvor lærer jeg meget nyt. Tak for dine tilbagemeldinger.

Jeg bliver dog udfordret med "display:table-cell", når jeg anvender den i Boks1 og 2, da alle margin-afstande nulstilles.
Hvordan får jeg så afstande mellem boksene?

Og helt galt kommer det til at se ud, når siden vises i kompatibilitetstilstand. Men det skal jeg måske lægge noget i.

Og du skriver at jeg skal sætte <div id="progress">, hvilket jeg har gjort. Men jeg er ikke med på, om jeg skal definere noget i CSS-filen?
Avatar billede tjens Nybegynder
12. april 2011 - 17:24 #23
Jeg har søgt lidt på IE og table-cell, og det kom først med i IE 8.

Så jeg må nok anbefale at droppe table-cell igen, og lave "trin"-linien om til en table med 1 tr og 4 td, hvis det skal virke i MSIE før version 8.

Beklager at jeg fik ledt på vildspor.
Avatar billede nemlig Professor
12. april 2011 - 17:50 #24
Du har sandelig være til meget mere gavn - så mange tak for det.
Sender du et svar.
Avatar billede tjens Nybegynder
12. april 2011 - 17:55 #25
OK. Og tak for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester