04. september 2009 - 18:15Der er
20 kommentarer og 1 løsning
Div uden at skubbe resten
Hej eksperter,
Jeg har i behov for en div til at indeholde et skyggeelement til en baggrund (og intet andet), men denne skal selvfølgelig placeres bag alt andet og ikke skubbe det. Jeg har forsøgt mig med løsningern her: http://www.eksperten.dk/spm/884965 - altså at rykke næste objekt opad med en længde svarende til skyggebilledets højde. Problemet er imidlertid, at denne metode lader div'et hvori skygge og videre indhold blive højere, som om skygge-div'et faktisk rykkede resten, hvilket selvfølgelig ikke er ønskeligt. Er der en bedre måde at lade en div ligge bagved uden at rykke resten af indholdet, eller hvordan kan jeg undgå, at det indholdende div antager en forkert længde? Se evt. her: http://www.ovrkll.com/v3/ - eksemplet viser problemet, ved at den vertikale scrollbar opfører sig, som om div'et "main" (id) var 16 px højere.
Slip for uforudsigelige omkostninger i skyen og opnå fuld datakontrol med en AI-pod, der samler al nødvendig infrastruktur i dit eget datacenter.
Slettet bruger
04. september 2009 - 23:32#1
På testsiden kan jeg ikke se problemet. Måske kunne du beskrive det lidt nærmere?
Kunne løsningen være at lægge den ene div inden i den anden, eller skal du ligge hver for sig?
Synes godt om
Slettet bruger
05. september 2009 - 00:02#2
For at se problemet: Den røde boks markerer div'et "content". Prøver du at mindske vinduets højde, vil scrollbaren allerede dukke op, når der er 16 px fra bunden af body (vinduets bund) til bunden af "content". Dette er ikke ønskeligt og vidner om en eventuel skjult problematik, hvorfor jeg ønsker en bedre løsning.
Egentlig er jeg ligeglad med, hvordan problemet løses, så hvis du har et bedre forslag, kan vi starte fra bunden: Jeg har følgende opbygning:
|- main |- content
Jeg vil gerne have sat en div ind, så den ligger bag content. Jeg kan imidlertid ikke bruge main's indbyggede background-property, da denne skal bruges til en egentlig baggrund (og da denne skal repeates, så skyggen desværre ikke kan implementeres direkte i billedfilen). Hvordan kan jeg gøre? Jeg vil om muligt gerne undgå at opgive alting i absolutte koordinater, selvom dette selvfølgelig altid er en løsning.
I div#main > div:first-child har du height: 16px mens du i div#content har top: -16px i FF 3 giver det de 16px i bunden som skal væk, så prøv at slette dem.
I hvilken browser se du siden, for den er ikke særlig ens i FF og IE
Synes godt om
Slettet bruger
05. september 2009 - 09:27#4
Jeg bruger altid Firefox som udgangspunkt og forsøger så efter udviklingen at få det til at virke i IE også.
Hvis jeg sletter height:16px på skyggen, bliver den ikke synlig, og hvis jeg sletter top:-16px på content, bliver den rykket nedad af skyggen. Det er jo netop derfor, jeg har de to værdier :) Men jeg går ud fra, der er et alternativ, siden dette ikke er en god løsning?
Synes godt om
Slettet bruger
05. september 2009 - 13:43#5
Virker dette her ikke fint (selvfølgelig uden "top: -16px;")?
#8 Nej, det fandt jeg ud af men har endnu ikke haft tid til at kigge på. Så skal jeg vel lave et skjult H1 uden for a for semantikkens skyld samt en div med samme tekst over billedet i selve linket for at opnå samme effekt uden at bryde regler? Jeg tror sgu aldrig, jeg kommer til at bryde mig om HTML :)
Synes godt om
Slettet bruger
05. september 2009 - 19:12#10
På min computer virker siden helt fint selvom jeg propper den ene div inden i den anden, inklusiv skygge.
HTML er vidunderlig enkelt. Men det kræver naturligvis, man sætter sig ned og lærer det, før man skal bruge det til noget =)
At du ikke kan have et block element i et inline element har ikke som sådan noget med semantik at gøre. Det lader sig af helt naturlige årsager ikke gøre at have en blok midt i en linje. Det giver mening og lader sig gøre at have en passager i en bil - men ikke at have en bil i en passager ;o)
- men så længe, du tror, det handler om at drible rundt om at bryde regler, kommer du ganske logisk ikke til at synes om HTML. Det handler om at lære - og at forstå - reglerne. Så er der yderst sjældent tvivl om, hvad man skal gøre =)
Synes godt om
Slettet bruger
05. september 2009 - 19:33#13
Tja, jeg synes, at problemet med HTML er, at det oprindeligt er stykket sammen til helt enkelt at fremvise data, mens det i dag anvendes i symbiose med CSS til langt mere avancerede præsentationer, hvormed en stor del af de elementære koncepter enten fordrejes eller udebliver. For mig at se ville et XML-dokument med objekter tilknyttet et CSS fungere langt bedre til nutidens hjemmesider.
Anyway, jeg har tidligere prøvet at gøre H1 til block, hvilket også gav fejl... Hvorfor?
Og til emnet: Okaj, jeg prøver lige med to niveauer af div.
I det aktuelle eksempel er det netop koderen, der fordrejer de helt elementære koncepter. En blok af indhold kan naturligt nok ikke findes i en tekstlinje =)
Inden siden kan styles, skal HTML koden - p.gr.a. CSS' regler om kaskade og arv - være parsed. Derfor gør det ingen forskel på, om du med CSS gør et inline element til et block element.
Det gør absolut heller ingen forskel, om du giver et block element som et h1 element display:block ;o)
Har du prøvet at ændre din margin på din div#content til dette margin: -16px auto 0px auto; og slettet din top: -16px
Jeg er helt enig i hvad olebole skriver, en valid kode er et must, derefter optimer den så den giver så ens et udsendene som muligt i flest mulige browser.
Som jeg har set/husker olebole har skrivet før, en valid kode er ikke nødvendigvis en god kode, men en god kode er altid valid :-)
Pt. Tak for hjælpen. Du fik mig til at rydde op i misc mappen på min hjemmeside, som i årevis har flydt over med rod :)
Synes godt om
Slettet bruger
05. september 2009 - 21:57#18
Så dividiver jeg den sgu :)
Synes godt om
Slettet bruger
05. september 2009 - 23:33#19
Heh, du må ikke blande matematik og html sammen. Det er imod standarterne.
Synes godt om
Slettet bruger
18. august 2010 - 17:38#20
Glemt tråd, svar for point. Sorry.
Synes godt om
Slettet bruger
18. august 2010 - 18:02#21
Hvis det var mig du mente, kommer her et svar.
Synes godt om
Ny brugerNybegynder
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.