Avatar billede alex15 Nybegynder
12. november 2007 - 23:34 Der er 21 kommentarer og
1 løsning

Hvad er forskellen på "hop: 10px;" og "margin: 10px;"

Hej eksperter

Nårh så kom jeg til næste spørgsmål.

Står og skal lave en boks til min menu. Og vil gerne have boksen til at være 50 px fra toppen af selve vinduet, 1000 px bred og 18 px høj. Og så skal teksten stå HELT ude til venstre i boksen, dog være i midten rent højde mæssigt. hvis i forstår

Havde selv forestillet mig at koden skulle se ca. således ud i min css fil:

#menuleft
{
    text-align: left;
    width: 1000px;
        top: 50px;
        height:18px;
    margin-top:;
        font-size: 7.5px;
    z-index:1;
}

Men synes ikke rigtig den gør som jeg beder den om :P hehe..!
Avatar billede alex15 Nybegynder
12. november 2007 - 23:53 #1
Samt vil jeg gerne høre hvad:

position:relative;

&

margin-top: 85px auto; (her "auto")

mere præcis gør? for det er åbenbert noget som kan gå ind og betyde ret meget hvor den enkelte boks er på siden, men også hvor resten af boksene som ellers ikke burge have ngoet med den at gøre, placere sig.
Avatar billede roenving Novice
13. november 2007 - 00:37 #2
position:relative; betyder, at elementet skal positioneres ud fra sin egentlige position efter dokument-flowet, men evt. flyttet noget med f.eks. top og left (kan give overraskende virknnger, hvis andre elementer skal starte umiddelbart efter !-)

margin: auto; betyder, at der skal sættes en lige stor margin på begge sider af et element, der har en eksplicit bredde (skrives ofte, som du har vist det, med en lodret margin og auto vandret !-)

-- så mon det ikke skal være:
#menuleft{
    text-align: left;
    width: 1000px;
    height:18px;
    margin:50px auto 0; /* 3 parametre betyder top right/left bottom; */
    font-size: 7.5px;
    line-height: 15px; /* Du skal nok lige fifle med denne værdi, før det bliver perfekt !-) */
    z-index:1;
}
Avatar billede roenving Novice
13. november 2007 - 01:13 #3
-- og spørgsmålet fra overskriften:

margin skal efter rekommendationerne indregnes som en del af elementet (og kan derfor ikke give de overraskende bivirkninger !-)

top angiver en forskydning fra det sted, som elementet ellers ville have haft; med position:relative; 'optager' elementet stadig den oprindelige plads, med position:absolute; optager elementet ingen plads i forhold til dokument-flowet (det kan dog hentes hjem med en ekstra ting, der clearer floats m.v. !-)
Avatar billede alex15 Nybegynder
13. november 2007 - 09:23 #4
Arhh.. Så har jeg lige angivet et laaaang svar tilbage, trykket send, og så sletter den bare teksten..! Typisk.. Nårh men om igen..!!

Ja okay, tror jeg har forstået det der margin auto 0 nu. Men hvordan kan man gøre så ens side kun er 1000 px bred? mener lige nu er der ingen grænser for hvor bred den rentfaktisk er. Så er bare lige så bred som ens computer skræm er. Kunne man bare skrive:

width: 1000px;

inde i: body, html{}

Eller hvordan gør man det mest korrekt?

Hvad betyder line-heigt ??? ud over det retter på hvor teksten står henne, højde mæssigt i boksen?

Okay, så derfor skal jeg helt lave være med at bruge position:relative kan jeg godt høre på det hele.

Men man skal heller ikke bruge position:absolute; vel?
Avatar billede roenving Novice
15. november 2007 - 00:23 #5
Brug et indre element, som omkranser alle andre elementer, skitse:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- head-elementer -->
<style type="text/css">
html,body{margin:0;padding:0;height:100%;}
#site{height:500px;width:1000px;margin: 0 auto;position:relative;background-color:#a30;/*baggrund med for at det er synligt !-)*/}
</style>
</head>
<body>
  <div id="site">&nbsp;

    <!-- Alt andet indhold, også absolut positioneret, hvilket position:relative; sørger for virker -->

  </div>
</body>
</html>

line-height betyder tekstens højde fra stedet hvor teksten starter til dens grundlinje, og det er bare en nem måde at flytte tekst på plads, en anden kunne være at sætte padding-top til f.eks. 5px !-)

-- og position:relative; er nødvendigt, hvis man vil have adgang til position:absolute; indenfor et bestemt område, da absolut position ellers beregnes ud fra browser-vinduets indre kanter !o]

-- absolut positionering er absolut brugbart, men man skal absolut(?) ikke bruge det til grundlæggende design, men som spændende krydderi !-)
Avatar billede alex15 Nybegynder
16. november 2007 - 08:07 #6
"line-height betyder tekstens højde fra stedet hvor teksten starter til dens grundlinje, og det er bare en nem måde at flytte tekst på plads, en anden kunne være at sætte padding-top til f.eks. 5px !-)" --- (Perfekt, så forstår jeg det)

"-- og position:relative; er nødvendigt, hvis man vil have adgang til position:absolute; indenfor et bestemt område, da absolut position ellers beregnes ud fra browser-vinduets indre kanter !o]" --- (Det var den måde jeg valgte og løse hele problemer på, lavede min body, html om til at være position:relative. For så virkede det helt perfekt med at sætte de der forskellige bokse ind senere hen.) Men er det en forkert måde og gøre det på? min csskode ser sådeles ud nu:

css kode:

body, html
{
    position:relative;
    max-width:980px;
    height:100%;
    padding:0;
    margin:0 auto;
    text-align:center;
    font-family:verdana,arial,sans-serif;
    background-color:#0000CC;
}

#menuleft
{
    position:absolute;
    text-align: left;
    width: 490px;
    height:18px;
    font-size: 10px;
    line-height: 18px;
    z-index:1;
    top: 67px;
    left: 0px;
    background-color:#CC33CC;
}

--- og så virker det som det skal. Ser det ud til indtil videre..! Er det ikke også en holdbar løsning?
Avatar billede roenving Novice
19. november 2007 - 08:02 #7
-- jeg ville absolut benytte et container-element, så jeg ikke fik problemer med forskellige forttolkninger af html-standarden !-)
Avatar billede alex15 Nybegynder
19. november 2007 - 09:30 #8
Hmm okay. så du ville ikke lave det på den måde som jeg har gjort det? du ville hellere lave en div som du kaldte f.eks. #site og så skulle hele hjemmesiden være inde i dette div eller hva???
Avatar billede roenving Novice
19. november 2007 - 09:34 #9
Jepz !-)
Avatar billede alex15 Nybegynder
19. november 2007 - 10:24 #10
Arhhh.. hehe.. nu havde jeg ellers fået den anden måde til at virke ;)
Avatar billede alex15 Nybegynder
19. november 2007 - 10:32 #11
Men hvordan skal jeg så lave denne #site?

Min html, body ser lige nu således ud:

body, html
{
    position:relative;
    max-width:980px;
    height:100%;
    padding:0;
    margin:0 auto;
    text-align:center;
    font-family:verdana,arial,sans-serif;
    background: #ebeff8 url('billeder/banner/top.jpg') repeat-x scroll top left;
}

skal min #site så bare have præcis de samme informationer eller hva?
Avatar billede roenving Novice
19. november 2007 - 10:41 #12
Næsten:

body, html{
    height:100%;
    padding:0;
    margin:0;
    text-align:center;
    font-family:verdana,arial,sans-serif;
}
#site{
    position:relative;
    width:980px;
    height:100%;
    padding:0;
    margin:0 auto;
    background: #ebeff8 url('billeder/banner/top.jpg') repeat-x scroll top left;
}
Avatar billede alex15 Nybegynder
19. november 2007 - 10:44 #13
hmm.. har lavet den sådan her, og det ser ud som om det virker, er det gjort rigtig:

html, body
{
    margin:0 auto;
    background: #ebeff8 url('billeder/banner/top.jpg') repeat-x scroll top left;
}

#site
{
    position:relative;
    width:980px;
    height:100%;
    margin:0 auto;
    text-align:center;
    font-family:verdana,arial,sans-serif;
}
Avatar billede alex15 Nybegynder
19. november 2007 - 10:48 #14
sådan her virker det for mig og se faktisk mest korrekt (en blanding af vores 2)

html, body{
    height:100%;
    margin:0;
    text-align:center;
    font-family:verdana,arial,sans-serif;
    background: #ebeff8 url('billeder/banner/top.jpg') repeat-x scroll top left;
}
#site{
    position:relative;
    width:980px;
    height:100%;
    margin:0 auto;
}
Avatar billede roenving Novice
19. november 2007 - 10:49 #15
Får du så ikke baggrunden udenfor eller skævt for dit site-element ?-)

-- og hvis 100% højde skal virke efter hensigten skal det også sættes for html- og body-elementerne !-)
Avatar billede alex15 Nybegynder
19. november 2007 - 10:51 #16
Nej faktisk ikke.. Hvis jeg sætter:

background: #ebeff8 url('billeder/banner/top.jpg') repeat-x scroll top left;

ind i #site elementet, så vælger den kun og lave den ønskede baggrund inde i #site, og ikke over hele hjemmesiden.
Avatar billede roenving Novice
19. november 2007 - 10:56 #17
Okay !-)

-- men du skal nok sætte padding på html,body-reglen, da der er browser-forskelligheder med den !o]
Avatar billede alex15 Nybegynder
19. november 2007 - 10:57 #18
okay, så skal altså indsætte:

padding:0;

i

html, body{}???
Avatar billede alex15 Nybegynder
27. november 2007 - 09:54 #19
Tror efterhånden også at du har svaret på mit spørgsmål :) så laver du ikke også lige et svar nu hvor du er igang ;)
Avatar billede roenving Novice
27. november 2007 - 17:24 #20
Jepz !-)

Velbekomme '-)
Avatar billede roenving Novice
27. november 2007 - 17:49 #21
-- og tak for point ;~}
Avatar billede alex15 Nybegynder
27. november 2007 - 17:55 #22
jamen det var da så lidt.. - Mig som takker fordi du gider bruge tiden på at hjælpe :)
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