Avatar billede majbom Novice
14. juni 2007 - 14:43 Der er 17 kommentarer og
1 løsning

justere billeder ift div

hejsa

jeg roder lidt med noget css-positionering, og det er jeg ikke så god til :S

jeg har dette: www.nyform-sport.dk/site/kort.php

de tre prikker i øverste venstre hjørne af danmarkskortet, vil jeg gerne have til at ligge oven i hinanden, så man kun kan se én.

det lyder umiddelbart tosset kan jeg godt se :)

men indtil videre er det for at se at de rykker sig i forhold til hinanden.

prikkerne bliver sat ind således:
<div id="pointer_div" style="background-image:url('img/dkkort-tomt.gif');height:500px;width:395;background-repeat:no-repeat;">
<?
while($area = mysql_fetch_array($res)){
  $zindex = $i + 2;
  $coord[$i]['x'] = $area['x_koordinat'];
  $coord[$i]['y'] = $area['y_koordinat'];
  echo "<img src=\"img/circle.gif\" id=\"circle_".$i."\" style=\"position:relative;z-index:".$zindex.";\" onMouseOver=\"document.getElementById('beskrivelse').innerHTML='".$area['navn']."';\">";
  $i++;
}
?>

og senere bliver positionen bestemt:

echo "<script language=\"JavaScript\">";
  for($i=0;$i<=sizeof($coord)-1;$i++){
      echo "\ndocument.getElementById('circle_".$i."').style.left=(".$coord[$i]['x']."-6);\ndocument.getElementById('circle_".$i."').style.top=(".$coord[$i]['y']."-6);";
  }
echo "\n</script>\n";

som den hurtige nok har gættet er mit problem, at når prikkerne bliver vist på kortet, bliver den første prik vist rigtigt, nummer 2 prik, bliver flyttet prik et's bredde til højre, prik 3 bliver flyttet prik et OG to's bredde til højre.

så efter 20 prikker, ser det helt tosset ud! :)

kan jeg ikke få den til at positionere ift div'ens øverste venstre hjørne?

på forhånd mange tak :)
Avatar billede w13 Novice
14. juni 2007 - 14:54 #1
php er ikke lige mig.. men jeg mener da, at hvis du nu satte left og top til f.eks. 5px på alle prikkerne, så burde det da vel virke..

Men jeg ved jo så ikke, om det er din php-kode, der rykker dem i forhold til hinanden.
Avatar billede w13 Novice
14. juni 2007 - 14:57 #2
Ok, jeg kan jo se i din kode, at de alle er sat til 0.. hmm.. Du bør nok sætte dette tal i apostrof ' da det ellers ikke er korrekt ved højere px-tal. Og der bør egentlig også stå "px" efter tallet. Ikke at jeg er så sikker på, det skulle gøre nogen forskel..
Avatar billede majbom Novice
14. juni 2007 - 15:02 #3
det gør ingen forskel at sætte px bagpå, det er jo i javascript at jeg tilretter prikkernes positioner, så jeg tror ikke der skal ''er på tallene, da den så vil tolke det som en streng så vidt jeg ved...
Avatar billede w13 Novice
14. juni 2007 - 15:20 #4
Jeg mener netop, at det er påkrævet, der står px bagefter og at det derfor skal være en string. http://msconline.maconstate.edu/tutorials/JSDHTML/JSDHTML13/jsdhtml13-02.htm
Avatar billede majbom Novice
14. juni 2007 - 15:27 #5
ja okay.. men det hjælper stadig ikke :)
Avatar billede mclemens Nybegynder
14. juni 2007 - 17:11 #6
Sæt hoveddiv'en til position:relative;
(pointer_div, som p.t. ikke har position angivet)

og de andre billeder (cirkler) til position:absolute;
(de står p.t. til relative og påvirker derfor hinanden)
- Så placerer du dem udfra top og left antal px fra hoveddiv'en
Avatar billede mclemens Nybegynder
14. juni 2007 - 17:15 #7
<div id="pointer_div" style="background-image:url('img/dkkort-tomt.gif');height:500px;width:395;background-repeat:no-repeat;position:relative;">


echo "<img src=\"img/circle.gif\" style=\"position:absolute;left:".$coord[$i]['x']-6."px;top:".$coord[$i]['y']-6."px;z-index:".$zindex.";\" onMouseOver=\"document.getElementById('beskrivelse').innerHTML='".$area['navn']."';\">";

... burde nok kunne klare det (har tilføjet position:relative, skiftet de andre til absolute - overført top og left (burde virke, dog er de -6 vel ikke nødvendigt? ), fjernet id - men måske skal det bruges til noget andet end js scriptet?...)
Avatar billede mclemens Nybegynder
14. juni 2007 - 17:17 #8
... Javascriptet bør ikke være nødvendigt med ovenstående,
formoder at js'en var et forsøg på lapning af problemet.
Avatar billede mclemens Nybegynder
14. juni 2007 - 17:21 #9
En lille forklaring, px (eller procent) er kun nødvendig efter tallet såfremt tallet ikke er 0, i tilfældet her lagde de sig ikke ovenpå hinanden grundet relative, som placerer elementer relativt til deres oprindelige placering i dokumentet, mens absolute placerer relativt til første parent relative element.
Avatar billede majbom Novice
14. juni 2007 - 19:18 #10
jeg prøver at se på det i morgen (det er på arbejdet :))
men umiddelbart ser det fornuftigt ud (som om jeg har forstand på dét! :))

de -6 pixels er for at centrere billedet ift positionen (det er 10x10px)

jeg havde først prøvet med top og left i <img>-tagget til at starte med, men det drillede, så jeg prøvede det med scriptet, da det virkede inden jeg lavede det om, til at stå i <img>-tagget...
Avatar billede majbom Novice
15. juni 2007 - 08:56 #11
kanonfedt, nu virker det bare!

mclemens, smider du lige et svar?

go' weekend og tak for hjælpen, til alle der hjalp :)
Avatar billede mclemens Nybegynder
15. juni 2007 - 10:10 #12
Jeps, kommer her :o)
Tak for point og en god
weekend til dig ogaå ;)
Avatar billede roenving Novice
15. juni 2007 - 14:28 #13
>>mclemens 14/06-2007 17:21:37

... mens absolute placerer relativt til første parent _positionerede_ element.
Avatar billede majbom Novice
15. juni 2007 - 14:37 #14
-> roenving - kunne du ikke komme med en lidt mere detaljeret beskrivelse af din kommentar, så jeg osse får noget ud af det? ;)
Avatar billede roenving Novice
15. juni 2007 - 14:46 #15
Jo da ...

-- et absolut positioneret element positioneres i forhold til det nærmest omkransende element, der er positioneret (og det kan være både relativt og absolut positioneret !-)

-- findes der ikke et sådant element positioneres i forhold til dokument-elementet (altså html- eller body-elementet afhængig af doctype !-)
Avatar billede majbom Novice
15. juni 2007 - 15:00 #16
okay, det gav lidt mere mening :) takker
Avatar billede mclemens Nybegynder
15. juni 2007 - 15:04 #17
Hmm, har ikke lagt mærke til at absolute også kunne bruges,
da jeg som regel brugte relative ... tak for rettelsen Roenving :o)
Avatar billede roenving Novice
15. juni 2007 - 15:16 #18
>>mclemens

-- præcis, hvad jeg gættede på ...

-- og velbekomme !-)
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