Avatar billede imperten Nybegynder
26. januar 2007 - 22:50 Der er 3 kommentarer

Onclick gældende for CSS-ramme.

Virker 'onclick' funktionen ikke på samme måde i en CSS-ramme, som den gør i htm tabelcelle? Der sker i hvert fald ikke noget.

  for ($i = 0; $i < 12; $i++) {
    for ($j = 0; $j < 12; $j++) {
      $x = $i * 30;
      $px = 'left:'.$x;
      $y = $j * 30;
      $py = 'top:'.$y;
      $skrift_farve = 'piluda_hvid';
      if ($i == $ax && $j == $ay) {
        $farve_felt = '#00c000';
        $farve_lys = '#80c080';
        $farve_moerk = '#006000';
      } elseif ($felt[$i][$j] == 0) {
        $farve_felt = '#ffff00';
        $farve_lys = '#ffff80';
        $farve_moerk = '#808000';
        $skrift_farve = 'piluda_sort';
      } elseif (($i + $j) % 2 == 0) {
        $farve_felt = '#ff0000';
        $farve_lys = '#ff8080';
        $farve_moerk = '#800000';
      } else {
        $farve_felt = '#0000ff';
        $farve_lys = '#8080ff';
        $farve_moerk = '#000080';
      }
      echo "<span style='position:absolute' style='$py' style='$px' style='width:30' style='height=30'
                  style='overflow:hidden' style='text-align:center' style='background:$farve_felt' style='padding-top:5'
                  style='border-top-width:2' style='border-top-style:solid' style='border-top-color:$farve_lys'
                  style='border-left-width:2' style='border-left-style:solid' style='border-left-color:$farve_lys'
                  style='border-bottom-width:2' style='border-bottom-style:solid' style='border-bottom-color:$farve_moerk'
                  style='border-right-width:2' style='border-right-style:solid' style='border-right-color:$farve_moerk'";
      $dx = abs($i - $ax);
      $dy = abs($j - $ay);
      $dz = $dx + $dy;
      if (($dx == 1 || $dy == 1) && $dz < 3 && $felt[$i][$j] != 0) {
        $gaa_til = 'piluda.php?tx='.$i.'&ty='.$j;
        echo "style='cursor:pointer' onclick=\"location.href='$gaa_til';\" ";
      }
      echo ">";
      $felt_tal = broek($felt[$i][$j]);
      skriv($felt_tal, $skrift_farve);
      echo "</span>";
    }
  }

PS: Dollarstegnene skyldes, at det er skrevet i PHP.
Avatar billede roenving Novice
27. januar 2007 - 00:02 #1
Hvad er en css-ramme ?-)

-- hvis jeg skulle gætte, så er det noget, som absolut ikke har noget specielt med css at gøre, men tilfældigvis er blevet introduceret på samme tid som css blev en mulighed for at formattere html-elementer ...

-- og alle html-elementer, der har en udstrækning, kan i dag have en onclick, og de fungerer absolut ens uanset om det er en tabelcelle eller et andet element, som f.eks. span og div ...

-- men du udskriver style på en tåbelig måde, for med så omfattende style-definitioner bør du bruge det som intenderet, nemlig lagt i et stylesheet !o]

-- i øvrigt kan det være, du skulle prøve inset eller outset i dine border-styles, det giver nok den virkning på dine borders, du ønsker; men f.eks. i tagget:

      echo "<div style='position:absolute; top:$pypx; left:$pxpx; width:30px; height=30px; overflow:hidden; text-align:center; background:$farve_felt; padding-top:5px; border:2px outset $farve_moerk; cursor:pointer;'";

Bemærk, at jeg har ændret fra span til div, for du har brug for et block-level-element, hvis du skal angive størrelse ...

-- og bemærk også, at enheder er obligatorisk i css, så en angivelse, der hedder width:30; _må_ ikke fortolkes af en browser (eller andet), sådan en skal ignoreres (desværre overholdes det ikke til punkt og prikke af visse browsere, medmindre du tvinger dem til det !-)

-- måske er det den lyse farve, du skal bruge sammen med outset, men du kan jo også prøve inset i border-stylen !o]
Avatar billede imperten Nybegynder
27. januar 2007 - 10:10 #2
Det hjalp, at jeg ændrede span til div. Jeg må hellere sætte mig dybere ind i forskellen på de 2 ting!

I øvrigt mange tak for de øvrige gode råd. Jeg kan godt se, at det er nemmere at dække alle styles ind i en blok i stedet for at gentage ordet igen og igen. Vidste blot ikke, at det var muligt.
Avatar billede roenving Novice
28. januar 2007 - 05:17 #3
En div er et block-level-element, hvor en span er et inline-element ...

-- forskellen kan illustreres ved, at du har et dokument i en tekst-editor, og der markerer tre ord midt i et afsnit. Trykker du derefter på Kursiv, forbliver de tre ord på deres plads, men de skifter udseende, kursiv er inline; trykker du derimod på Lav Tabel-knappen, splittes afsnittet og der laves en tabel mellem de to dele af afsnittet, tabellen er block-level !-)

-- en afledt konsekvens af dette er, at et inline-element kun har en udstrækning som følge af sit indhold (bruger du f.eks. fed eller større bogstaver kan teksten i ovesntående eksempel godt blive ombrudt), mens et block-level-element grundlæggende fylder det hele i bredden og har en højde, der er baseret på indholdets højde, men den slags kan reguleres !o]

-- els 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