Avatar billede viciodk Praktikant
20. april 2003 - 01:04 Der er 64 kommentarer og
1 løsning

Skygge på tabel

Hvordan kan man lægge skygge på en tabel vha. CSS? Det skal også virke i andre browsere end Internet Explorer.
Avatar billede 4us.dk Nybegynder
20. april 2003 - 01:12 #1
#tabel {
        padding: 5px;
        filter: progid:DXImageTransform.Microsoft.dropShadow( Color=000000,offX=4,offY=4,positive=true);
      }

Aner ikke om den kun virker i IE...

<table id="tabel">
Avatar billede bearhugx Nybegynder
20. april 2003 - 01:21 #2
Noget lignende dette, du leder efter ????

<table style="border-right:2px solid #333; border-bottom:2px solid #333">
...
</table>
Avatar billede viciodk Praktikant
20. april 2003 - 01:27 #3
4us.dk -> Det virker kun i IE... :) bearhugx -> Ja, noget i den stil, men den HELT øverste del af skyggen i højre side og den HELT ventre del af skyggen nederst skal ikke være der.. altså skyggen skal falde mere naturligt :)
Avatar billede 4us.dk Nybegynder
20. april 2003 - 01:32 #4
viciodk -> Den kode jeg gav, laver billedet, som det er her i højre side:
http://www.friserverplads.dk/tommy_olesen/default.htm

Tror det er det, som du leder efter :)

Det skal bare virke i alle browsere, troubles! :)
Avatar billede bearhugx Nybegynder
20. april 2003 - 01:36 #5
arbejder på det :-)
Avatar billede viciodk Praktikant
20. april 2003 - 01:42 #6
Lyder godt, bearhugx :) Spørgsmålet er bare om det overhovedet er muligt.
Avatar billede bearhugx Nybegynder
20. april 2003 - 01:48 #7
Ikke med mindre du vil have javascript ind og kunstigt placere et sort lag bag ved tabellen...

Evt vil jeg forslå at man bruger grafik til at lave sådanne "skygger" .. Det er lidt omstændigt - men man er sikker på at det virker (i alle browsere)...
Avatar billede viciodk Praktikant
20. april 2003 - 01:53 #8
Jeg har prøvet med skygger vha. billeder... :) Det er sådan nogle små 8x8 pixel billeder der skal være i hvert hjørne og så fire billeder til hver side. Problemet er bare at man skal opdatere siden nogle gange før alle de små 8x8 billeder vises. Det er som om Internet Explorer glemmer dem, så man skal højreklikke på dem og vælge Vis Billede. Netscape, Mozilla og Opera har ingen problemer med dette.. har tænkt på at lave 2 bokse forskudt og give dem forskellige z-index, men ville lige høre om det kan laves på en mere "rigtig" måde hvis du forstår :)
Avatar billede bearhugx Nybegynder
20. april 2003 - 01:55 #9
At lave to bokse er det, som jeg ville forsøge - et lag med tabellen - og et forskudt lag nedenunder...
Avatar billede viciodk Praktikant
20. april 2003 - 02:41 #10
Okay, prøver lige at kigge på det.. læg du også bare et svar, bearhugx :)

Venter lige til i morgen med at lukke spørgmålet, så olebole eller andre kan nå at kigge forbi :)
Avatar billede olebole Juniormester
20. april 2003 - 17:35 #11
<ole>

Det bedste, jeg kan komme op med er dette. Du kan selv rette, hvor mange skygge-steps, du vil have og du kan rode lidt med størrelsen af 'offset' og opaciteten af skyggerne. Det virker i IE5.5+, NS6+ og Mozilla. Opera skulle kunne forstå det fra version 7 ... version 6 var en ussel bruser, der er skiftet ud af de fleste.
I IE4 til og med 5.0 burde den lave en hård, massiv skygge ... har ikke testet.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title> TITLE </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.shadeHolder {
    position: relative;
}
.shadeTBL {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 5;
    background-color: #ffffff;
}
.shader {
    position: absolute;
    filter: alpha(opacity=20);
    -moz-opacity: 0.2;
}
</style>
<script type="text/JavaScript">
var d=document;
function gA(o,tN){return o.getElementsByTagName(tN)}
function pI(s){return parseInt(s)}
function doShade(tbl) {
    var w, h, a, offset, cont = (d.all)? tbl.parentElement : tbl.parentNode;
    w=pI(tbl.offsetWidth); h=pI(tbl.offsetHeight);
    a = new Array();
    for (var i=1; i<5; i++) { // Antal skygge-steps
        offset = i * 2 + "px";
        a[a.length] = '<img class="shader" src="test_img/blue.gif" ';
        a[a.length] = 'style="width:'+w+'px;height:'+h+'px;left:'+offset+';top:'+offset+';z-index:'+i+'">';
    }
    cont.innerHTML += a.join("");
}
function initShadeTBLs() {
    if (d.layers) return;
    var aTbl = gA(d,"TABLE");
    for (var i=0; i<aTbl.length; i++) {
        if ( aTbl[i].className=="shadeTBL" ) doShade( aTbl[i] );
    }
}
window.onload = initShadeTBLs;
</script>
</head>
<body>

<div class="shadeHolder">
    <table class="shadeTBL" cellspacing="0" cellpadding="0" border="3">
    <tr>
        <td>Lorem ipsum dolor sit amet, consectetur<br>
            adipisicing elit, sed do eiusmod tempor incididunt<br>
            ut labore et dolore magna aliqua.</td>
    </tr>
    </table>
</div>

<br><br>

<div class="shadeHolder">
    <table class="shadeTBL" cellspacing="0" cellpadding="0" border="3">
    <tr>
        <td>Ut enim ad minim veniam, quis nostrud<br>
            exercitation ullamco laboris nisi ut aliquip ex<br>
            ea commodo consequat. Duis aute irure dolor in<br>
            reprehenderit in voluptate velit esse cillum</td>
    </tr>
    </table>
</div>

</body>
</html>

Du skal bruge en 1*1 pixel gif i den farve, du vil skygge med. Her ligger den med stien 'test_img/blue.gif' - det kan du bare rette  :)
/mvh

/mvh
</bole>
Avatar billede olebole Juniormester
20. april 2003 - 17:41 #12
Funktionen doShade() kunne evt. skrives om til:

function doShade(tbl) {
    var w, h, a, offset, cont = (d.all)? tbl.parentElement : tbl.parentNode;
    w=pI(tbl.offsetWidth); h=pI(tbl.offsetHeight);
    a = new Array();
    var steps = (d.all && !window.createPopup)? 1 : 4; // Antal skygge-steps
    for (var i=1; i<steps+1; i++) {
... osv - osv - osv ...

Så kommer der kun et enkelt, massivt skygge-step i de IE-versioner, der ikke forstår alpha-filtret - men 4 i alle andre, ligesom før  :)
/mvh
Avatar billede olebole Juniormester
20. april 2003 - 17:53 #13
Husk, at hvis du hæver antallet af skygge-steps, skal du også hæve z-index for klassen 'shadeTBL'.
Nu har jeg siddet og rodet lidt med det og er nået frem til:

    var steps = (d.all && !window.createPopup)? 1 : 4; // Antal skygge-steps
    for (var i=1; i<steps+1; i++) {
          offset = i + "px";

Og disse styles på skyggerne:

.shader {
    position: absolute;
    filter: alpha(opacity=10);
    -moz-opacity: 0.1;
}

Og min gif er #000080.
Avatar billede olebole Juniormester
20. april 2003 - 17:57 #14
... og den sidste:
Du kan naturligvis også bruge en transparent gif og skrive:

.shader {
    position: absolute;
    background-color: #000080;
    filter: alpha(opacity=10);
    -moz-opacity: 0.1;
}

Slut-prut ...  :)
Avatar billede olebole Juniormester
20. april 2003 - 18:43 #15
Njaaahhhhh ....... ikke helt slut  :D
Denne rettelse sætter opaciteten dynamisk. Opaciteten falder nu for hvert skygge-billede, hvilket giver en betydelig pænere skygge. Den minder faktisk nu meget om en gaussian blur:


.shader {
    position: absolute;
    background-color: #000080;
}
</style>
<script type="text/JavaScript">
var startOpacity = 25; // Sæt selv start-opaciteten
var d=document;
function gA(o,tN){return o.getElementsByTagName(tN)}
function pI(s){return parseInt(s)}
function doShade(tbl) {
    var w, h, a, offset, opac, cont = (d.all)? tbl.parentElement : tbl.parentNode;
    w=pI(tbl.offsetWidth); h=pI(tbl.offsetHeight);
    a = new Array();
    var steps = (d.all && !window.createPopup)? 1 : 4; // Antal skygge-steps
    for (var i=1; i<steps+1; i++) {
        offset = i + "px";
        opac = startOpacity / i;
        a[a.length] = '<img class="shader" src="test_img/t.gif" ';
        a[a.length] = 'style="width:'+w+'px;height:'+h+'px;left:'+offset+';top:'+offset+';z-index:'+i+';';
        if (d.all) a[a.length] = 'filter:alpha(opacity='+opac+')">';
        else a[a.length] = '-moz-opacity:'+(opac/100)+'">';
    }
    cont.innerHTML += a.join("");
}

Resten skal være som før.
/mvh
Avatar billede doggy82 Praktikant
11. maj 2003 - 02:08 #16
.:. :.: .:. :.: .:. .:. :.: .:. :.: .:. :.: .:.

Kode-mester olebole, jeg har lige et spørgsmål.
Hvordan hæver man z-index'et ?
jeg ville gerne ha' en større skygge :-)

.:. :.: .:. :.: .:. .:. :.: .:. :.: .:. :.: .:.
Avatar billede roenving Novice
11. maj 2003 - 02:20 #17
.shadeTBL {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 5;
    background-color: #ffffff;
}

Det er det her z-index ole hentyder til ...

Det skal være større end antallet af skygge-steps ...
Avatar billede doggy82 Praktikant
11. maj 2003 - 02:54 #18
nååååå der oppe havde jeg ikke kigget.
Tak skal du ha'
Avatar billede doggy82 Praktikant
11. maj 2003 - 03:00 #19
Den er fandme smuk den gaussian lign. skygge
- godt arbejde olebole :-)
Avatar billede roenving Novice
11. maj 2003 - 03:00 #20
Velbekomme ...
Avatar billede olebole Juniormester
11. maj 2003 - 03:41 #21
Nemlig ... Tak, for uddybningen, roenving  ;)

doggy82 >> "smuk" er et stort ord!
Nu hører jeg jo på den anden side ikke til dem, der falder for smiger ......... jeg LEVER for det ...!!!  :D

Jeg må dog  indrømme, at denne løsning er én af dem, der har fået 'æren' af at blive arkiveret i min 'lille', eksklusive mappe: 'D:\JS-stumper'  ;o)
/mvh
Avatar billede olebole Juniormester
11. maj 2003 - 03:42 #22
PS: Jeg tillader mig hermed at lægge et svar  :)
Avatar billede olebole Juniormester
11. maj 2003 - 03:44 #23
HOLD NU KÆFT, DIN GAMLE NAR ...!!! Du er sgu da lkke til at holde ud at høre på!
SÅ GÅ DOG I SENG ...!!!
Avatar billede olebole Juniormester
11. maj 2003 - 03:47 #24
*-\
Avatar billede roenving Novice
11. maj 2003 - 03:47 #25
Det er 3 (tre) uger siden du skulle ha' svaret ,-)
Avatar billede doggy82 Praktikant
11. maj 2003 - 03:48 #26
lol jeg tænkte det samme for en time siden...

Den virker godt på en ternet baggrund tile
- så kan man ikke se kanterne ned i hjørnet :-)
Prøv det!

btw du lagde ikke noget svar :D
Avatar billede olebole Juniormester
11. maj 2003 - 03:51 #27
Jo, jeg lagde et svar (11/05-2003 03:47:08) .... omend med et mindre delay  :D

Morale: Ældre herrer bør ikke ryge om lørdagen ... heller ikke om lørdagen  *-D
/mvh
Avatar billede roenving Novice
11. maj 2003 - 03:52 #28
<|-}
Avatar billede olebole Juniormester
11. maj 2003 - 03:55 #29
Mmmmmmmmmmm ........... det er alt for længe siden.
I det jeg bøjer mig mod Mekka og strækker mig i fuld længde: "Det skal aldrig mere vare så længe ...!"  *)
Avatar billede doggy82 Praktikant
11. maj 2003 - 03:56 #30
heller ikke søndag morgen vel ?

Sov godt...
Avatar billede olebole Juniormester
11. maj 2003 - 03:57 #31
'nat  :)
Avatar billede roenving Novice
11. maj 2003 - 03:57 #32
Jamen det er også det Bush siger:
Der kommer kun kun shit fra Mekka ...
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:00 #33
..måske nogle har vendt sig den modsatte vej
Avatar billede roenving Novice
11. maj 2003 - 04:00 #34
*gg*
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:02 #35
One golfer tells another: 'Hey, guess what! I got a set of golf clubs for my wife!'
The other replies: 'GREAT trade!'

fra JakobA's "gamle" site: http://hjem.get2net.dk/Jakob.Aggernaes/javascript/javascript12.html
Avatar billede olebole Juniormester
11. maj 2003 - 04:03 #36
"Ya' ain't seen nothin' yet ...!!!" lyder et gammelt citat fra en gammel nege ..... ehhhhhhhhh .... afro-amerikansk sanger/skuespiller - Al Johlson  :D

... det var til (11/05-2003 03:57:30) ... jeg kan se, der er indløbet to mere kommentarer .... næhhhhh ..... tre ... Hehe  :D
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:03 #37
The most effective way to remember your wife's birthday is to forget  it once.
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:05 #38
Johlson, ham fra "The Jazz Singer"
Ja - jeg er også film nørd.
Avatar billede olebole Juniormester
11. maj 2003 - 04:08 #39
doggy82 >> RESPEEEEEEEEEECT ...!  :)
.... og jeg, der lige troede, jeg kunne køre lidt show-off ......... dooohhhhhhh  :D
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:09 #40
så, jeg trænger til noget søvn
- og min computer trænger til en defrag.
Avatar billede olebole Juniormester
11. maj 2003 - 04:11 #41
*LooOooL*
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:13 #42
jamen det *gør* den altså.
Og at fylde op med kaffe og cola virker kun på mennesker.
Avatar billede olebole Juniormester
11. maj 2003 - 04:15 #43
Ja, Cola og mokka er ikke at anbefale i 'klaptoppen'  :D
Avatar billede roenving Novice
11. maj 2003 - 04:15 #44
Har du prøvet det på computeren, doggy ... .~)
Avatar billede roenving Novice
11. maj 2003 - 04:19 #45
Three blondes walk into a bar and ask the bartender for three shots of tequilla. He looks at them and says 'OK' and pours their shots. They all clink glasses and yell '51 days!' Then they proceed to slam the shots, looking very self-satisfied. They look back to the bartender and decide to order another round. This time they pick up the glasses again and, more gleefully yell '51 days!' The bartender finally can't stand wondering what they are talking about and asks them what they mean by 51 days. One of the blondes looks at him and says 'Well,' looking very smug. 'We just finished a jigsaw puzzle. It took us only 51 days. And on the box it said 2-4 years'
Avatar billede doggy82 Praktikant
11. maj 2003 - 04:21 #46
nææ men "I've got at sneaking suspicion" at det nok ikke er så smart
Avatar billede roenving Novice
11. maj 2003 - 04:29 #47
Det kan ihvertfalde bruges som styrkeøvelse !-)

-- så er det virkelig et 'hakkebræt'

;o]

-- forbindelsen fejlede - derfor en noget forsinket afsendelse ...
Avatar billede viciodk Praktikant
11. maj 2003 - 11:28 #48
Tak for svaret OleBole; du får naturligvis
pointene. Mange tak for hjælpen :)
Avatar billede olebole Juniormester
11. maj 2003 - 13:21 #49
... anytime  ;o)
Avatar billede doggy82 Praktikant
11. maj 2003 - 15:26 #50
God eftermiddag i "skygge forumet"
olebole du ved jo godt at det er noget rod at man ikke kan bruge cellspacing; men man er nødt til at lave så'n nogle fiflerier som <br><br>.
Jeg ville jo gerne ha' at det kunne bruges til iframes
Jeg har prøvet på at putte tables ind i tables for at kunne lave cellspacing i de yderste (som jo så ikke har class'en shadeTBL) - men det virker ikke rigtigt
Avatar billede olebole Juniormester
11. maj 2003 - 15:36 #51
Ehhhh ..... prøv lige at forklare den en gang til  :)
Avatar billede doggy82 Praktikant
11. maj 2003 - 16:38 #52
hmmmm Altså min kode ser så'n her ud:

<div class="shadeHolder">
    <table class="shadeTBL" cellspacing="0" cellpadding="0" border="0">
    <tr>
      <th width="600" height="100">
      <iframe allowtransparency="true" src="start.htm" width="100%" height="100%"
      marginwidth="10" marginheight="10" name="topframe" style="border:1px #333333 solid"
      scrolling="auto" frameborder="0">
      </iframe>
      </th>
    </tr>
    </table>
</div>

<br><br>

<div class="shadeHolder">
    <table class="shadeTBL" cellspacing="0" cellpadding="0" border="0">
    <tr>
      <th width="600" height="400">
      <iframe allowtransparency="true" src="start.htm" width="100%" height="100%"
      marginwidth="10" marginheight="10" name="mainframe" style="border:1px #333333 solid"
      scrolling="auto" frameborder="0">
      </iframe>
      </th>
    </tr>
    </table>
</div>

Det er jo ikke så indviklet, men hvis nu man skulle lave et mere indviklet ramme system vil man jo gerne kunne sætte cellspacing - i stedet for at lave tricks alá <br><br>
Hvis nu man gerne ville ha' skygger på det her:

<center>
  <table width="80%" height="100%" border="0" cellpadding="0" cellspacing="10">
    <tr>
      <th height="140" colspan="2" valign="top">
      <iframe allowtransparency="true" src="top.htm" width="100%" height="140"
      marginwidth="10" marginheight="10" name="topframe" style="border:1px black solid"
      scrolling="no" frameborder="0">
      </iframe>
      </th>
    </tr>
    <tr>
      <th width="120" height="180" valign="top">
      <iframe allowtransparency="true" src="menu.htm" width="120" height="100%"
      marginwidth="10" marginheight="10" name="menuframe" style="border:1px black solid"
      scrolling="no" frameborder="0">
      </iframe>
      </th>
      <th rowspan="2" valign="top">
      <iframe allowtransparency="true" src="forside.htm" width="100%" height="100%"
      marginwidth="10" marginheight="10" name="parentframe" style="border:1px black solid"
      scrolling="auto" frameborder="0">
      </iframe>
      </th>
    </tr>
    <tr>
      <th height="100%" valign="top">
      <iframe allowtransparency="true" src="linksmenu.htm" width="120" height="100%"
      marginwidth="10" marginheight="10" name="linksmenuframe" style="border:1px black solid"
      scrolling="auto" frameborder="0">
      </iframe>
      </th>
    </tr>
  </table>
</center>

Det er ikke fordi at jeg lige skal bruge det nu, men det ville være rart af få afklaret :-)
Avatar billede doggy82 Praktikant
11. maj 2003 - 16:40 #53
Du skal ikke bekymre dig om  allowtransparency="true",
det er bare fyld. Mine frames er altså IKKE transperante.
Avatar billede olebole Juniormester
11. maj 2003 - 17:18 #54
Hmmm .... hvis vi tager udgangspunkt i den kode, jeg skrev tidligere, kan du vel bruge noget à la:

<table cellspacing="10" cellpadding="20" border="1">
<tr>
    <td>
    <div class="shadeHolder">
        <table class="shadeTBL" cellspacing="0" cellpadding="0" border="3">
        <tr>
            <td>Lorem ipsum dolor sit amet, consectetur<br>
                adipisicing elit, sed do eiusmod tempor incididunt<br>
                ut labore et dolore magna aliqua.</td>
        </tr>
        </table>
    </div>
    </td>
</tr>
<tr>
    <td>
    <div class="shadeHolder">
        <table class="shadeTBL" cellspacing="0" cellpadding="0" border="3">
        <tr>
            <td>Lorem ipsum dolor sit amet, consectetur<br>
                adipisicing elit, sed do eiusmod tempor incididunt<br>
                ut labore et dolore magna aliqua.</td>
        </tr>
        </table>
    </div>
    </td>
</tr>
</table>

/mvh
Avatar billede doggy82 Praktikant
11. maj 2003 - 17:31 #55
Ja da! Det var *det* jeg mente med tables ind i tables
- jeg havde bare glemt <td>'erne i min kode.
Ja ja jeg er jo ny til det her :)
Taksa endnu en gang.
Avatar billede olebole Juniormester
11. maj 2003 - 17:39 #56
... anytime  ;o)
Avatar billede doggy82 Praktikant
12. maj 2003 - 12:13 #57
Jeg gider altså ikke oprette et nyt spørgsmål før jeg har undersøgt sagen nærmere, men når jeg uploader mit "skygge eksperiment" er skyggerne lige pludselig blevet hvide ?!!?

http://home21.inet.tele.dk/doggy82/skygge.htm

- syntes bare lige du sku' vide det olebole
Avatar billede doggy82 Praktikant
12. maj 2003 - 12:15 #58
næææ nu virker det.
Mærkeligt....
Avatar billede olebole Juniormester
12. maj 2003 - 14:24 #59
;o)
Avatar billede milo Nybegynder
22. september 2003 - 17:24 #60
Du er gal i skralden olebole ;) du imponerer gang på gang.

Dog virker dette ikke i konquror :) men i alt andet jeg har testet...

Tak - selvom tråden er pænt gammel.
Avatar billede olebole Juniormester
22. september 2003 - 17:47 #61
Hvis du med 'gal i skralden' mener 'vred', tager du helt fejl.
Mener du derimod 'tindrende vanvittig og syg i roen', rammer du til gengæld ret præcist  ;o)

Konq har jeg ikke selv testet i, så det kan du sagtens bilde mig ind. Den kalder sig jo også 'Besejreren'.

Ja, både tråden og jeg er pænt gamle  :D
... og selv tak  :)
/mvh
Avatar billede milo Nybegynder
22. september 2003 - 17:57 #62
Mener det på en gode måde ;)

Ved godt du ikke er et support firma, men jeg vil alligevel lige spørge om du ikke har en mail jeg må sende dig et link til, til et site jeg er igang med. Ønsker ikke url spredt :-)

Jeg oplever problmer med ovenstående, i opera 7, hvor du jo ellers skriver at det burde virke :-)
Avatar billede olebole Juniormester
22. september 2003 - 19:04 #63
Sådan opfattede jeg dig også, milo  ;o)

Jeg ønsker til gengæld ikke min e-mail-adresse robotteret til spam, så du får den som en 'rebus':
  kodehode [krøllet-elefant-næse] yahoo [prik] dk

/mvh
Avatar billede milo Nybegynder
22. september 2003 - 21:13 #64
Hvis jeg ellers har tydet din rebus korrekt, så burde du have en mail nu ;)
Avatar billede doggy82 Praktikant
22. september 2003 - 23:48 #65
lol - det er jo herlig nat-læsning det her.
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