Avatar billede reimers Nybegynder
13. april 2006 - 22:36 Der er 7 kommentarer

Problem med transparente div-bokse i IE

Hej alle sammen,

Jeg har problemer med at lave indkapslede, transparente div-bokse ved brug af Internet Explorers "filter.alpha(opacity=X)"-funktion.

Problemstillingen opstår når jeg forsøger at benytte filter-funktionen på en div-boks (divboks1) med en anden div-boks indkapslet (divboks2). Divboks2 er placeret forskudt af divboks1, således at den rager ud over divboks1's rammer. Dette er normalt ikke noget problem, men ved benyttelse af filter-funktionen vises kun den del af divboks2, der er indenfor divboks1's rammer.

Kode-eksempel:

<html>

<body style="background-color: #0000CC;">

<div id="divboks1a" style="filter:alpha(opacity=75); background-color:#FFFF00; width: 100px; height: 100px; position:absolute; top: 10px; left: 10px; z-index: -1; overflow:visible;">
    <div id="divboks2a" style="background-color: #999999; position:absolute; top: 20px; left: 20px; width: 100px; height: 100px; z-index: 2; float: right;">
    </div>
</div>

<div id="divboks1b" style="background-color:#FFFF00; width: 100px; height: 100px; position:absolute; top: 10px; left: 200px; z-index: -1; overflow:visible;">
    <div id="divboks2b" style="background-color: #999999; position:absolute; top: 20px; left: 20px; width: 100px; height: 100px; z-index: 2; float: right;">
    </div>
</div>

</body>
</html>

Håber nogen kan løse problemet.

Med venlig hilsen

Reimers

p.s. Jeg benytter Internet Explorer 6.
Avatar billede mclemens Nybegynder
13. april 2006 - 22:45 #1
noget i denne stil?

<div style="position:relative;">

<div id="divboks1a" style="filter:alpha(opacity=75); background-color:#FFFF00; width: 100px; height: 100px; position:absolute; top: 00px; left: 00px; z-index: -1; overflow:visible;">
</div>

    <div id="divboks2a" style="background-color: #999999; position:absolute; top: 20px; left: 20px; width: 100px; height: 100px; z-index: 2; float: right;">
    </div>

</div>
Avatar billede mclemens Nybegynder
13. april 2006 - 22:46 #2
hov, position:absolute; top: 00px; left: 00px;
på den første af de to indvendige div's var unødvendige :P
Avatar billede roenving Novice
13. april 2006 - 22:47 #3
-- og det er position, z-index og overflow vel også ?-)
Avatar billede mclemens Nybegynder
13. april 2006 - 22:50 #4
ja, men jeg ved ikke om der skal flere ting ind så jeg lod dem være...
- men, joh hvis den bare skal bruges til det her så:

<div style="position:relative;">

<div id="divboks1a" style="filter:alpha(opacity=75);background:#FFFF00;width:100px;height:100px;">
</div>

<div id="divboks2a" style="background: #999999; position:absolute; top: 20px; left: 20px; width: 100px; height: 100px;">
    </div>

</div>
Avatar billede roenving Novice
13. april 2006 - 23:08 #5
-- og for at få de fleste browsere med bør man jo så:

style="filter:alpha(opacity=75);-moz-opacity:0.75;-khtml-opacity:0.75;opacity:0.75;background:#ff0;width:100px;height:100px;"
Avatar billede reimers Nybegynder
14. april 2006 - 06:59 #6
SV: mclemens:
Problemstillingen er lidt mere konceptuel. Du har lavet to div-bokse, der begge er indkapslet i en ydre div-boks, og lavet den ene af de indre bokse transparent. Det er nødvendigt, at den ydre div-boks er transparent. I det hele taget virker det ikke som om det er muligt at benytte nogle af filter-funktionerne, uden at den indre div-boks bliver reduceret.

Motivationen for at løse problemet på denne måde:

Jeg benytter Suckerfish horisontal 3-level dropdown menu (http://www.htmldog.com/articles/suckerfish/dropdowns/example/bones3.html) og ønsker at lave dropdown-menuerne transparente. Strukturen ser ud på følgende måde:

<ul id="nav">
  <li><a href="#">Percoidei</a>
    <ul>
      <li><a href="#">Remoras</a>
        <ul>
          <li><a href="#">Echeneis</a>
            <ul>
              <li><a href="#">Sharksucker</a></li>
              <li><a href="#">Whitefin Sharksucker</a></li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

Jeg kan f.eks. lave det første menu-niveau transparent, men så bliver det ikke muligt at vise undermenuerne.
Avatar billede mclemens Nybegynder
29. juli 2006 - 11:36 #7
.lukketid?

[ I det hele taget virker det ikke som om det er muligt at benytte nogle af filter-funktionerne, uden at den indre div-boks bliver reduceret. ]

Den røg vist lidt i glemme bogen, jeg kan heller
ikke undgå at opacity nester sig ned til underelementerne
- kunne derfor ikke løse problemet dengang (kan stadig ikke) ...
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