Avatar billede thj_ether Nybegynder
01. februar 2003 - 18:07 Der er 18 kommentarer og
1 løsning

Opacity kun på baggrunden..?

Hej..
Jeg er ved at lave noget design, med et simpelt pattern som baggrund. Jeg vil så have en grå tabel, som der er ca 50% gennemsigtig. Jeg har lavet noget, men så bliver teksten i tabellen også 50% gennemsigtig, og den skal slet ikke være gennemsigtig. Håber i ved hvad jeg mener, her kommer mine koder lige:

### default.php :
<html>
<head>
    <title>Tagwall v1.0 - Tommy Holm Jacobsen</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="./styles/default.css">
</head>

<body>
<table width="800" cellpadding="0" cellspacing="0" align="center" class="head">
    <tr>
        <td class="opacity">
        <div align="center" class="overskrift">Tagwall v1.0</div>
        <div align="center" class="text">Lavet af, Tommy 'ether' Holm Jacobsen</div>
        <div align="left" class="text"><b><a href="./add_tag.php">Tilføj besked..</a></b></div>
        </td>
    </tr>
</table>
</body>
</html>


### default.css
BODY {
    background: url('../images/pattern.GIF');
}
A:link, A:visited, A:active {
    text-decoration: none;
    color: #000000;
    font-weight: none;
}
A:hover {
    text-decoration: none;
    color: #333333;
    font-weight: none;
}
.head {
    border: solid 1px #000000;
    padding: 2;
}
.overskrift {
    font-family: verdana;
    font-size: 20px;
    font-weight: bold;
    color: #000000;
}
.text {
    font-family: verdana;
    font-size: 10px;
    font-weight: none;
}
.opacity {
    background: #333333;
    filter: alpha(opacity=50);
}

På forhånd tak.
Mvh. Tommy Holm Jacobsen
aka. ether
Avatar billede bearhugx Nybegynder
01. februar 2003 - 18:29 #1
Hmm jeg har prøvet at sætte opacity=100 for en div inde i en celle - men åbenbart ser det ud til at "filter"-attributter nedarves igennem DOM'en - dvs. at alle underelementer af tabellen, som har fået sat opacity=50 vil have samme opacity...

Den kode, jeg har forsøgt mig med er :
    <style type="text/css">
        table {
            background-color:#00ff00;
            filter : alpha(opacity=30);
        }
        .opaqueText {
            filter : alpha(opacity=100);
        }
    </style>
   
    <body>   
        <table width="250">
            <tr>
                <td>HI</td>
            </tr>
            <tr>
                <td><div class="opaqueText">class....</div></td>
            </tr>           
        </table>
    </body>
Avatar billede bearhugx Nybegynder
01. februar 2003 - 18:31 #2
(dog skal man måske lige huske på at "filter" ikke engang er med i CSS Level 2 -- og at det kun er IE som understøtter det...)

Så hvis man vil have cross-browser-design, så skal man ikke begynde med "filter".

/Søren Munk Skrøder
Avatar billede thj_ether Nybegynder
01. februar 2003 - 19:08 #3
ok, men er der andre muligheder at lave det gennemsigtigt på?
Avatar billede bearhugx Nybegynder
01. februar 2003 - 19:28 #4
Dette er lidt et hack - men du kunne jo lave en grafikfil (gif) i den rigtige farve (din ønskede baggrundfarve) - og så lægge den ind som baggrund i tabellen

Jeg er lige igang med at udarbejde et eksempel...

/Søren
Avatar billede thj_ether Nybegynder
01. februar 2003 - 19:49 #5
da der er pattern som baggrund, vil det jo aldrig blive helt det samme, som det andet..
siden er forresten her: http://ether.dk/scripts/tagwall10/
Avatar billede bearhugx Nybegynder
01. februar 2003 - 19:54 #6
Som sagt er det et hack -- Jeg har lavet et eksempel - baggrundfarve blå, med hver anden pixel transparent (dvs. samme farvemættethed som 50%)

Derudover bruger det samme baggrund som dig (pattern.gif)

det kan ses på www.the-source.dk/eksperten/312256/index.html
Avatar billede bearhugx Nybegynder
01. februar 2003 - 19:57 #7
Men jeg kan da godt se, at de ikke helt giver den samme effekt (primært pga. at "hver-anden-pixel"-approachen giver et 'mønster' selv, som gør at baggrundsmønsteret (pattern.gif) ikke træder så godt frem)
Avatar billede thj_ether Nybegynder
01. februar 2003 - 20:05 #8
hmm ja.. syntes ikke jeg er helt tilfreds med det resultat det giver.. jeg så det engang på en hjemmeside, men den hjemmeside er nede i øjeblikket.. han gjorde det på en eller anden måde, gad godt vide hvordan.
Avatar billede bearhugx Nybegynder
01. februar 2003 - 20:07 #9
me too... Desværre kan jeg ikke hjælpe dig med denne ting :-(
Avatar billede thj_ether Nybegynder
01. februar 2003 - 20:15 #10
okey, men mange tak fordi du prøvede..
Avatar billede bearhugx Nybegynder
01. februar 2003 - 20:16 #11
sure thing... Men hvis du en dag finder ud af det, så skriv lige en kommentar her, så jeg også kan finde ud af, hvordan...
Avatar billede olebole Juniormester
01. februar 2003 - 22:02 #12
<ole>

Du kan stadig bruge opacity og så kombinere med lidt JavaScript (fungerer i øvrigt også i NS):

<html>
<head>
<style type="text/css">
#bg {
    position: absolute;
    background-color:#00ff00;
    filter : alpha(opacity=30);
    -moz-opacity: 0.3;
    z-index: 1;
    visibility: hidden;
}
#myTBL {
    width: 250px;
    height: 100px;
    position: relative;
    z-index: 2;
}
</style>
<script type="text/JavaScript">
var d=document;
function getPos(elm) {
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy}
}
window.onload = window.onresize = function() {
    var pos, myTBL, bg = d.getElementById("bg");
    myTBL = d.getElementById("myTBL");
    pos = getPos( myTBL );
    bg.style.left = pos.x;
    bg.style.top = pos.y;
    bg.style.width = myTBL.offsetWidth;
    bg.style.height = myTBL.offsetHeight;
    bg.style.visibility = "visible";
}
</script>
</head>
<body>
<br><br><br>
<div align="center">
<table id="myTBL" border="1">
    <tr>
        <td>HI</td>
        <td>HI</td>
    </tr>
    <tr>
        <td>HI</td>
        <td>HI</td>
    </tr>         
</table>
</div>

<div id="bg">&nbsp;</div>

</body>
</html>

/mvh
</bole>
Avatar billede bearhugx Nybegynder
02. februar 2003 - 00:53 #13
Hmm... Ole... Jeg er glædeligt overrasket - very clever indeed :-)

Jeg har selv med det samme taget "ideen" til mig :-)
(og har lagt dit eksempel ind på www.the-source.dk/eksperten/312256/olebole.html, hvor man kan se din kode, modificeret lidt, så den viser, hvordan det ser ud, når thj_ethers baggrund osv. kommer på :-)

/Søren

PS:  Ole >> Det kan da ikke passe, at du kun har 202 points (som der står i Kategori-top-10'en)
///-snip-///
1 pelkjaer 1.400
2 callesen 730
3 jakoba 559
4 hells 506
5 phoenixv 388
6 knudgert 367
7 7th 245
8 schaefner 230
9 /cdc 205
10 olebole 202
///-----///
Avatar billede olebole Juniormester
02. februar 2003 - 01:11 #14
Tak, Søren ... det glæder mig, du kan lide indianer-tricket. Der har i tidens løb været en del forskellige forsøg på at løse problemet, men denne løsning synes jeg selv er den mest generiske. Samtidig X-browser ... quite 'sexy'  :)

Hvad points angår, så ved jeg zq ikke, om det passer. Egentlig er jeg ret ligeglad - men på den anden side irriterer det mig da lidt, nu du nævner det. Havde _de_ bare været rigtige, var der da _noget_, der virkede på Eksperten  *LoooL*  :D
/mvh
Avatar billede bearhugx Nybegynder
02. februar 2003 - 01:26 #15
apropos Points - så er det kun point.stat'en for (D)HTML::CSS, så du kan skam være rolig ... selvom du _kun_ har skrabet 202 p ind her, er du allerede på top-10 --- og en som mig, som kun har tjent 15p må se mig forvist til 135. pladsen :-)))

ang. -moz-opacity, så fandt jeg også ud af, at den eksisterede ---
Jeg går ud fra at den så virker i både Mozilla, Phoenix og Netscape, right ???
(if so, så ryger parameteren ind i mine fadein/out-routiner også :-))

PPS. (off-topic) Jeg fandt skam ud af at putte den ekstra attribut på HTML-elementerne  -så nu kan min routine fade forskellige HTML-elementer uafhængigt af hinanden :-))) (it's quite a spectacle :-)))
Avatar billede olebole Juniormester
02. februar 2003 - 01:35 #16
Hehe ... bare rolig - det var kun en joke  ;o)
Jeg har været med længe og har en samlet 3.plads og en 1.plads i JavaScript og én i (D)HTML gennem laaaaaang tid som bedste resultat. Så jeg har leget det, jeg skal med Top 10 listerne  :)

Jeg ved ikke med Phoenix, men det funker i både Mozilla og NS - og det er da kanon, du har fået dit fade'eri til at funke.
Til lykke med det ... FADE-AWAAAAAaaaaaayyy ...!!!  ;oD
/mvh
Avatar billede bearhugx Nybegynder
02. februar 2003 - 01:46 #17
Jeg har endda hørt nogle rygter om at opacity (og evt. også hele filter modellen skulle blive standardiseret pr. CSS level 3) ... Og det kunne jo være fedt, om man på et tidspunkt ikke mere skulle tænke x-browser design -- men at man kunne lave alle de flotte/effektfulde ting via standardiserede (D)HTML
Avatar billede thj_ether Nybegynder
03. februar 2003 - 06:44 #18
ah, det ser sq godt ud det der olebole, mange tak :)
du får lidt points
Avatar billede 7th Praktikant
03. februar 2003 - 07:07 #19
Utestet i NS og andre browsere, men til andre brugere har jeg løst problemet på denne måde http://home1.stofanet.dk/jong/test/ - princippet ligesom olebole, blot lagt ind i tabelcelle med.

alpha.htm
faded.htm
test.htm
div løsninger så opacity ikke arves.

none-faded.htm
hvad der sker når man ikke bruger div.
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