Avatar billede mac10 Nybegynder
07. december 2010 - 21:55 Der er 16 kommentarer og
1 løsning

width:1920px og width:960:margin:0 auto; inde i den anden virker ikke?

Hej derude,

Jeg har et <div> som er 1920px i bredden (Skal fylde hele skærmen) og jeg kan ikke sætte den til 100% da jeg har flere af elementerne ved siden af hinanden med float:left.
Jeg vil gerne gøre sådan at elementen inden i med 960 altid er i midten uanset skærmopløsning og om man minimizer vinduet.

Følgende kode virker ikke:
<div style="width:1920px;">
    <div style="width:960px;margin:0 auto;">
        Test
    </div>
</div>

Men hvis jeg sætter width til 100% så virker det:
<div style="width:100%;">
    <div style="width:960px;margin:0 auto;">
        Test
    </div>
</div>

Hvordan får jeg det til at virke med det første eksempel? Har virkelig prøvet i lang tid samt googlet i 2 timer, men er snart ved at give op :( Help?
Avatar billede majbom Novice
07. december 2010 - 22:10 #1
hvad mener du med at koden ikke virker? bliver den inderste div ikke centreret?

jeg har lige prøvet med width 100% og derefter width: 1280px (laptop) - jeg kan ingen forskel se...
Avatar billede mac10 Nybegynder
07. december 2010 - 22:22 #3
Hej splazz,

Prøv at se her:
http://billedeupload.dk/photo/2010-12/6515ee5e/css-problem.jpg.html

Den nederste er ikke centreret, og scrolleren følger bare med. Når jeg minimere den på 100% så virker det fint, men når jeg "trækker" vinduet større/mindre på den med pixels så ændre placeringen sig slet ikke :|
Avatar billede Slettet bruger
07. december 2010 - 22:26 #4
Jo, den nederste er da også centreret! Boksen er centreret inden i den ydre (usynlige) boks.
Avatar billede majbom Novice
07. december 2010 - 22:29 #5
det er jo klart når man sætter den til en fast bredde - det er jo ret uhensigtsmæssigt, medmindre du er 112% sikker på at alle dine klienter har den opløsning...
Avatar billede Slettet bruger
07. december 2010 - 22:30 #6
Hvis du adskilte de to bokse, ville den ydre stadig kunne have en fast bredde, mens den indre kan være konstant centreret i skærmvinduet.
<div id="ydre" style="width:1920px;">
</div>

<div id="indre" style="width:960px;margin:0 auto;">
  Test
</div>

Helt overordnet bør du dog ændre på opbygningen - hvis du er nød til at have en vandret scroll er der noget galt med strukturen. Er det virkelig nødvendigt at have en fast bredde for boksen, når den nu skal fylde hele skærmvinduet?
Avatar billede Slettet bruger
07. december 2010 - 22:32 #7
(Det giver altid problemer med vandret scroll.
I kodebidden herover, vil boksen ganske vist være i midten af skærmen til hver en tid, når du minimerer eller forstørre skærmvinduet. Men når du scroll'er vandret, flytter den ikke med, og det er ikke umiddelbart muligt at få den til)
Avatar billede mac10 Nybegynder
07. december 2010 - 22:38 #8
Problemet er at jeg prøver at lave en horizontal/vandret scroll med jQuery.

Her er alle boksene sat til 1920px i bredde. Grunden til dette er at uanset hvilken skærmopløsning du har så ser du KUN det du skal se. Når du så klikker på en navigation så "scroller" du til højre til næste punkt. Det virker også fint, lige indtil man minimere skærmen.

Det er denne her jeg har brugt:
http://www.thewebsqueeze.com/samples/horizontal-scrolling/jquery-on/

Så har jeg bare sat hver boks til 1920px i bredde og lavet en boks i midten med indhold. Men det er så denne boks som ikke vil være i midten :/

Jeg forstår godt problemet i det som i nævner, men er der ikke nogen løsning på det med horizontal scroll?
Avatar billede Slettet bruger
07. december 2010 - 22:47 #9
Ok.

Prøv at bruge "position: fixed;" samt en "left" eller "right" og en "top" eller "bottom" på din boks, der skal være centreret. Med denne kommando kan du fastlåse boksen på et punkt på skærmen. Du kan dog ikke centrere på denne måde, så du kan ikke få en præcis centrering. Du kan selvfølgelig komme tæt på ved at angive noget lignende "left: 45%;", men det kan ikke blive fuldstændig præcist.
Avatar billede wanze Nybegynder
07. december 2010 - 22:55 #10
http://billedeupload.dk/photo/2010-12/6515ee5e/css-problem.jpg.html

Så vidt jeg kan se er de begge da centreret, men fordi du scroller horisontalt, så ser den nederste ikke centreret ud.
Avatar billede mac10 Nybegynder
07. december 2010 - 22:59 #11
Problemet er at jeg ikke kan bruge "left", "top", osv. da det er fastsat til skærmen.

Jeg har 4 elementer ved siden af hinanden med float:left

Boks 1    -    Boks 2    -    Boks 3    -    Boks 4

Hver enkelte boks skal være 100% i bredden så de fylder hele vinduet pga. de har hver deres baggrundsbillede. Inde i hver boks er der en .content som skal være centeret i forhold til den boks den er i og ikke i forhold til skærmen. Hvis hver .content fik en left/top så ville de alle sammen være i kanten af skærmen selv når jeg scroller "sidelens" hen til boks nummer 2.
Avatar billede Slettet bruger
07. december 2010 - 23:07 #12
Har du testet det med at sætte hver boks til 100%? Har du rent faktisk prøvet og set, hvad der skete?

Inde i hver boks er der en .content som skal være centeret i forhold til den boks den er i og ikke iil  forhold til skærmen.
Skal den centreres i forhold til boksen, har du jo ingen problemer? Jeg tror du mener, at den skal være inde i boksen, men centreres i forhold til skærmen. Hmm... den var værre.
Avatar billede mac10 Nybegynder
07. december 2010 - 23:17 #13
steeven, du må ikke misforstå mig.

Hvis vi kalder dem ydre og indre.

De ydre bokse skal være 100% i forhold til skærmen. De indre bokse skal være 960px og være centeret i forhold til skærmen eller de ydre, det er jo ligegyldigt for de ydre skal jo have samme width som skærmen.

Hvis jeg sætter width til 100% så falder de jo bare udenfor skærmen.

For at det kan lade sig gøre skal man have en "container"/"wrapper" uden om det hele som har en vis størrelse.

Hvis hver min ydre boks med float:left har 2000px i width og jeg har 4 så skal min wrapper have en width på 8000px for at det kan lade sig gøre. Hvis jeg sætter en af mine ydre bokse til 100% width så vil den jo prøve at gøre sig selv til 8000px og ødelægge det hele.

Har desværre prøvet det, og må ærligt erkende at det er lang tid siden at jeg har givet op med CSS, men lige nu er jeg faktisk lige ved at sige fuck det og prøve noget andet for det virker jo næsten fysisk umuligt det jeg forespørger? :|
Avatar billede Slettet bruger
07. december 2010 - 23:37 #14
Hmm...

Jeg har ikke mulighed for at teste det selv, men prøv engang noget i retning ad dette:

Sæt din container / wrapper til "width=400%".
Sæt hver af dine 4 ydre bokse til "width=25%".


Hvad sker der så?

I mit hoved vil containeren nu fylde 4 gange skærmens bredde, mens hver af de fire ydre bokse vil fylde en fjerdedel af dette, hvilket netop svarer til skærmens bredde.
Avatar billede Slettet bruger
07. december 2010 - 23:38 #15
(Ja, det er en svær og tilsyneladende nær umulig opgave - men lad os lige teste det til ende, før vi giver op)
Avatar billede mac10 Nybegynder
07. december 2010 - 23:51 #16
Omg det virkede det med de 400% og 25%!

Så længe folk bare ikke minimizer/maximer så rykker den sig underligt, men nu passer den ihvertfald ligegyldigt hvilken skærmopløsning man har.

Du har lige sørget for at jeg kommer til at sove rigtig godt i nat! :)

Smid et svar så ligger jeg flere point oven i hatten for din meget værdsatte indsats her om natten!

Jeg siger rigtig mange gange tak og bukker ydmygt.
Avatar billede Slettet bruger
08. december 2010 - 23:46 #17
Nej tak, ikke flere point, end du har tilbudt allerede.

Men det var da så lidt!

Du havde rodet dig ud i en ny løsning, som gav problemer, og har spurgt om en løsning til det, frem for at spørge ind til det oprindelige problem først.
En smule spøjst.

Men ikke desto mindre er jeg glad for, at du fik det løst. Jeg er glad for at kunne 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

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