2012-09-03 4 views
1

Sur cette page, j'ai une image avec un effet brillant dans une div sous l'image.comment appliquer un style à une image

http://www.joelin.org/home2.html

Je veux essentiellement de déplacer l'effet brillant sur le dessus de l'image. J'ai essayé

1) en ajoutant le style directement à la balise img, aucun effet 2) la création d'un div autour de l'image, mettre la div brillante en elle (mais le div brillant a fini par être sous l'image)

D'autres pensées?

+1

utiliser des couches positionnées absolus avec z-index à l'intérieur d'une enveloppe positionnée par rapport. Mais l'image que vous voulez au-dessus de l'autre ne s'étendra pas. Commencez par cette recherche, https://www.google.se/search?q=absolute+relative+positioning+css&sugexp=chrome,mod=7&sourceid=chrome&ie=UTF-8 –

+0

Tout en utilisant les styles sur le 'div' sur la 'img' devrait fonctionner. Vous pouvez essayer d'ajouter 'display: block' si cela ne fonctionne pas, mais je pense que les tags d'image sont des blocs par défaut. Tous les styles spécifiés sont compatibles avec les images, il ne devrait donc pas y avoir de problème. – Blieque

+0

Faire de l'image un arrière-plan à la div. – Phrogz

Répondre

3

Est-ce quelque chose comme ceci que vous cherchez à atteindre?

HTML:

<a href='#' class='img-wrapper'> 
    <img src='http://imgsrc.hubblesite.org/hu/db/images/hs-2012-10-a-web.jpg'> 
</a> 

CSS:

.img-wrapper, .img-wrapper img { 
    display: inline-block; 
    position: relative; 
    width: 13em; 
    height: 8em; 
    border-radius: 1em; 
} 
.img-wrapper:after { 
    position: absolute; 
    top: 0; right: 0; bottom: 0; left: 0; 
    border-radius: 1em; 
    box-shadow: inset 0 1em 0 0 rgba(192, 192, 192, .5); 
    pointer-events: none; /* so that you can get image from right-click menu 
           won't work in IE and Opera */ 
    content: ''; 
} 

Si vous n'avez pas besoin de la balise img et vous pouvez avoir l'image comme une image d'arrière-plan, il devient plus facile. Un seul élément:

<div class='glossy'></div> 

et juste ce CSS:

.glossy { 
    width: 13em; 
    height: 8em; 
    border-radius: 1em; 
    background: linear-gradient(rgba(192, 192, 192, .5) 12.5%, transparent 12.5%), 
     radial-gradient(100% 100%, transparent 71%, rgba(192, 192, 192, .5) 71%) 
      no-repeat 0 1em, 
     radial-gradient(0% 100%, transparent 71%, rgba(192, 192, 192, .5) 71%) 
      no-repeat 100% 1em, 
     url(http://imgsrc.hubblesite.org/hu/db/images/hs-2012-10-a-web.jpg); 
    background-size: 1px 100%, 1em 1em, 1em 1em, cover; 
} 
+0

il l'a fait! wow, je n'aurais pas pu comprendre tout ça ... merci !! – Joe

1

Vous pouvez essayer d'utiliser le positionnement absolu pour la div poser au-dessus de l'image. Vous aurez besoin d'utiliser z-index pour superposer correctement. Essayez quelque chose comme ceci:

.imageClass 
{ 
    z-index: 1; 
} 

.glossyDiv 
{ 
    position: absolute; 
    top: 999px; 
    left: 999px; 
    z-index: 5; 
    /* you'll need to figure out where your image sits in relation to the 
    top and left of the screen, replace the 999s with the correct values */ 
} 

Cela devrait obtenir le div sur l'image. Vous pouvez modifier cela pour que le div soit positionné par rapport à son conteneur si c'est comme ça que vous avez configuré votre HTML. L'index z contrôle la manière dont les éléments sont superposés/superposés. Par conséquent, si vous définissez le div sur un index plus élevé, il se rapprochera du «devant» de l'écran et les nombres inférieurs l'affecteront à l'arrière. Notez que z-index ne fonctionnera que sur les éléments "positionnés" source

+0

Pratique et inutilement complexe pour localiser la position absolue de chaque image. (JS requis, qui n'est pas nécessaire en général pour résoudre ce problème.) – Phrogz

+0

j'appris quelque chose sur le positionnement here..thx (est allé avec l'autre solution) – Joe

Questions connexes