Avatar billede sneska Nybegynder
26. februar 2012 - 14:37 Der er 8 kommentarer og
1 løsning

css visibility on hover

Hej alle sammen :)
Jeg har et foto som jeg ved hover med mus skal vise et transperant overlay agtigt farve filter med lidt tekst.
Hvordan gør man det simplet med css?
Avatar billede The_Buzz Novice
26. februar 2012 - 15:54 #1
http://test.modified.dk/css_overlay.php - du kan se eksemplet nedenunder på denne URL...

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>CSS Opacity</title>
    <style>
        .mainclass {
            background-image:url('img/474784.jpg');
            width:1000px;
            height:599px;
            z-index:10;
        }   
            .onhover {
            width:1000px;
            height:599px;
            z-index:20;
            }
        .onhover:hover {
            background-color:red;
                opacity:0.4;
                filter:alpha(opacity=40); /* For IE8 and earlier */
        }
    </style>
   
</head>
<body>
    <div class="mainclass">
        <div class="onhover">
            &nbsp;
        </div>
    </div>
</body>
</html>
Avatar billede sneska Nybegynder
26. februar 2012 - 16:41 #2
hehe sødt billede :)
Så langt nåede jeg også, med udgangspunkt i http://www.w3schools.com/css/css_image_transparency.asp
eks.
Men problemet er teksten som er synlig hele tiden. Meningen er at man kun skal se den når der hovers på billedet.

Mit eks.;
<html>
<head>
<style type="text/css">
div.background
  {
  width:250px;
  height:150px;
  background: url(images/testboxpic.png);
  border:1px solid black;
 
  }
div.transbox:hover
  {
  width:250px;
  height:150px;
  background-color: #3399CC;
  border:1px solid black;
  opacity:0.6;
  filter:alpha(opacity=60); /* For IE8 and earlier */
  -moz-opacity:0.6;
  -khtml-opacity: 0.6;
  }
div.transbox p:hover
  {
  width:250px;
  height:150px;
  font-weight:bold;
  color:#000;
 
  }
</style>
</head>

<body>

<div class="background">
<a href="http://www.google.dk"><div class="transbox">
<p>Informativ teskt som skal inpsirere surfere til at klikke på linket :)
</p>
</div></a>
</div>

</body>
</html>
Avatar billede The_Buzz Novice
27. februar 2012 - 09:16 #3
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>CSS Opacity</title>
    <style>
        .mainclass {
            float:middle;
            background-image:url('img/474784.jpg');
            width:1000px;
            height:599px;
            z-index:10;
            margin:0 auto;
        }   
            .onhover {
            width:1000px;
            height:599px;
            z-index:20;
            }
        .onhover:hover {
            background-color:red;
                opacity:0.4;
                filter:alpha(opacity=40); /* For IE8 and earlier */
        }
        .onhover:hover + .tekstdiv {
            display:block;
        }
           
            .tekstdiv {
                margin-top:-40px;
            z-index:21;
            font-size:30px;
            display:none;
            }
    </style>
   
</head>
<body>
    <div style="text-align:center;">

    <div class="mainclass">
        <div class="onhover">
            &nbsp;
        </div>
        <div class="tekstdiv">
            Blidur og Kylling
        </div>
    </div>

    </div>
</body>
</html>

Opdateret på http://test.modified.dk/css_overlay.php
Avatar billede sneska Nybegynder
27. februar 2012 - 11:18 #4
Hej The_Buzz :)
Tak for hjælp !
Jeg er nød til at spørge om det kunne være gjort med visibility ? altså uden z-index ? :)
Avatar billede The_Buzz Novice
27. februar 2012 - 11:28 #5
Jeg har udelukkende sat Z-index på fordi nogle gamle browsere - f.eks. ie 6 og lavere ikke helt forstod DIV ordentlig

Jeg vil tro, at hvis du fjerner Z-index i de der - så vil det stadig vises uden.

Dog vil jeg altid selv bruge display:none og display:block til DIV's og ikke visibility - hvorfor kan jeg ikke helt forklare, men http://www.w3schools.com/cssref/pr_class_visibility.asp visibility har bare sommetider opført sig barnligt overfor mig :)
Avatar billede The_Buzz Novice
27. februar 2012 - 11:29 #6
Snuppet fra en side: http://webdesign.about.com/od/css/f/blfaqhidden.htm
visibility: hidden hides the element, but it still takes up space in the layout.

display: none removes the element completely from the document. It does not take up any space, even though the HTML for it is still in the source code.
Avatar billede sneska Nybegynder
27. februar 2012 - 12:17 #7
Ok jeg forstår :)
Display kan bruges som visibility til at skjule/vise elementer :)
Mange tak for info og venlighed - resultatet virker fantastisk !

Forrsten har jeg lige prøvet at udkommentere alle 3 z-index og det funger også fint :))

Hav en skøn dag !
Avatar billede sneska Nybegynder
27. februar 2012 - 16:17 #8
Øv :( det virker i alle browsere undtagen IE9
Her er min kode;
<html>
    <head>
    <style>
    *{ padding:0px; margin:0px;}
        .mainclass {
              background-image:url(images/testboxpic.png);
            width:250px;
            height:150px;
            z-index:1;
            margin:0 auto;
            border-radius: 15px;
            -moz-border-radius: 15px;
            }   
            .onhover {
            width:250px;
            height:150px;
            z-index:2;
            }
        .onhover:hover {
            background-color: #0066FF;
            opacity:0.2;
            filter:alpha(opacity=20); /* For IE8 and earlier */
            -moz-opacity:0.2;
              -khtml-opacity: 0.2;
            border-radius: 15px;
            -moz-border-radius: 15px;
           
        }
      .onhover:hover + .tekstdiv {
            display:block;
        }
           
            .tekstdiv {
            width:250px;
            height:150px;
            margin-top:-140px;
            z-index:3;
            font-size:18px;
            display:none;
            color:#000;
            text-align:center;
            text-decoration:none;
            font-family:Arial, Helvetica, sans-serif;
           
            }
            a{ text-decoration:none;}
</style>   
</head>
    <body>
        <a href="http://www.google.dk">
            <div class="mainclass">
                <div class="onhover">
                 
                </div><!--onhover-->
                <div class="tekstdiv">
                    <p class="infotxt">informativ tekst om servicen</p>
                </div><!--tekstdiv-->
            </div><!--mainclass-->
        </a>
    </body>
</html>


Eller skal jeg starte et nyt spørgsmål måske ?
Avatar billede sneska Nybegynder
27. februar 2012 - 16:21 #9
har set hvorfor-
  filter:alpha(opacity=20); /* For IE8 and earlier */ :))
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
Computerworld tilbyder specialiserede kurser i database-management

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