Come mettere un'immagine su un'altra immagine più grande, come su youtube, un pulsante di riproduzione viene visualizzato in cima alla miniatura del video?Come posizionare un'immagine rispetto ad un'altra?
risposta
Se hai un buon controllo sulle dimensioni dell'immagine, abbiamo usato lo sfondo per vari elementi - ad esempio, imposta lo sfondo di una cella di tabella su un'immagine e inserisci una scheda img all'interno della cella.
Non sono sicuro che YouTube utilizzi immagini per questo effetto, non è ancora il lettore Flash?
In ogni caso, esattamente come questo è fatto dipende molto dal design che si desidera raggiungere. Supponiamo che tu voglia raggiungere lo stile di YouTube, in cui hai un'immagine in miniatura e vuoi sovrapporre l'immagine di un pulsante di riproduzione in alto. Se si desidera che la miniatura per essere un vero tag <img>
avrete bisogno di un po 'di margine di profitto in più, in questo modo:
<div class="thumb-wrapper">
<img src="mythumbnail.gif" alt="my awesome video" /><span></span>
</div>
L'involucro <div>
è necessario in modo da poter indirizzare l'IMG e estendersi in modo corretto, e avere dimensioni a contenerli in . L'estensione è dove l'immagine di sovrapposizione andrà.
.thumb-wrapper {
position:relative;
}
.thumbwrapper span {
position:absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
z-index: 100;
background: transparent url(overlay.png) no-repeat;
}
(realtà non ho testato questo, se blatently sbagliato fatemi sapere io rivederlo!)
Ciò presuppone un paio di cose:
- le miniature saranno essere sempre una dimensione fissa e la vostra immagine di sovrapposizione corrisponde a quello
- la tua immagine di sovrapposizione è un PNG semitrasparente
È anche possibile utilizzare lo stile opacity:
per ottenere il n. 2. Ovviamente, IE6 farà girare la sua brutta testa e sarà necessario utilizzare una correzione PNG per questo se si sta seguendo il percorso dell'immagine trasparente, o un filtro opacità separato se si utilizza tale metodo. Entrambi questi sono senza dubbio risposto altrove su Stack Overflow o facilmente google-able.
Se si hanno altri requisiti, potrebbe essere possibile farlo senza il margine aggiuntivo, come ho detto tutto dipende da cosa si ha bisogno esattamente. Alcuni requisiti potrebbero non essere possibili senza JavaScript (il che ovviamente significherebbe che potresti inserire un qualsiasi markup extra con quello!).
Prendendo il tuo esempio di YouTube, si potrebbe facilmente fare questo con 2 immagini e 1 tag img e un po 'di CSS ovviamente;)
<style>
img.youtube {
width:500px; height:500px;
margin:0; padding:0;
background:transparent url(/point/to/your/larger/image.jpg) no-repeat center
}
</style>
<img src="/point/to/youtube/play/image.png" alt="Gotta have alt text ;)" border="0" class="youtube" />
Come funziona è semplice, si ha la piccola immagine di YouTube come PNG trasparente o GIF e quindi impostare l'immagine di sfondo come l'immagine più grande, questo darà quindi l'effetto di essere l'immagine più piccola al centro senza marcatura extra.
Nessun markup extra è grande quando il markup che hai è significativo, in questo caso l'immagine è solo il pulsante play che non ha qualsiasi significato senza gli stili CSS. Preferisco avere un markup extra per assicurarmi che abbia senso senza gli stili, non solo un elenco di pulsanti di riproduzione! – roryf
Verissimo, ma non era quello che l'OP chiedeva;) – Phunky
troverete la soluzione in questo thread su StackOverflow: How to draw a graphic over another graphic
Poco (citando dopo Ipsquiggle):
<div style="position:relative">
<div>
<img url="backgroundimg.png">
</div>
<div style="position:absolute; left:0; top:0;">
<a href="foo.html"><img url="smallgraphic.png"></a>
</div>
</div>
Maggiori dettagli perché e come funziona nel thread originale.
Le risposte di tutti qui sono troppo complicate.
Creare un'immagine PNG, semitrasparente, con un simbolo che sembra indicare "riproduzione". Rendi le dimensioni che desideri, forse un'immagine 320x240 o cosa no. Diciamo che si chiamò "overlay.png"
Diciamo che il YouTube ha generato miniatura è a http://img.ytimg.com/abcdefg/0.jpg
Ora tutto ciò che serve nel codice è questo:
<a href="destination_of_your_link"><img src="overlay.png" width="320" height="240" border="0" style="background:URL(http://img.ytimg.com/abcdefg/0.jpg) center center black;" /></a>
Finché la vostra il pubblico di destinazione non sta ancora utilizzando IE6, dovresti essere al sicuro.
Semplice e diretto. Pollice in alto per la semplicità della soluzione. Digitato –
Perché molti di noi cercano sempre il modo più complicato di fare le cose ?. Questa risposta è funzionale a tutti, breve ed efficace +1. – datelligence
- 1. Come posizionare un componente React rispetto al suo genitore?
- 2. Come funziona Node.js rispetto ad Apache?
- 3. Come posizionare una tabella HTML?
- 4. Disegnare bitmap dalle risorse rispetto ad un'altra
- 5. Come creare un percorso assoluto rispetto ad una particolare cartella?
- 6. slidify - come posizionare un'immagine?
- 7. Android RelativeLayout - come posizionare?
- 8. Come posizionare StaticLayout in Android?
- 9. Cosa fa una datamigrazione Sud rispetto ad una schemamigrazione?
- 10. Vantaggi di node.js rispetto ad altre tecnologie web
- 11. Come posizionare una variabile ad un dato indirizzo assoluto in memoria (con GCC)
- 12. JavaFX: come posizionare un componente/nodo?
- 13. Implementazione runtime di ricorsività Java rispetto ad altri/linguaggi funzionali?
- 14. Usando un'espressione lambda rispetto ad un metodo privato
- 15. Copia atomicamente una tabella MySQL rispetto ad un'altra?
- 16. Quali vantaggi ha il PHP rispetto ad ASP.NET?
- 17. Che cos'è un modulo gestito (rispetto ad un assieme)?
- 18. Qual è il vantaggio di Pip rispetto ad Anaconda?
- 19. Centrare il centro di tre div e posizionare gli altri due rispetto a quello centrale
- 20. C'è un modo per posizionare un'immagine di sfondo rispetto al centro di un elemento?
- 21. Come posizionare elementi HTML su inline SVG
- 22. pyCairo: come ridimensionare e posizionare un'immagine?
- 23. Posizionare ViewPager come una riga in ListView
- 24. Come verificare automaticamente che le applicazioni si comportino come previsto rispetto ad altre attività?
- 25. Come posizionare div al centro dello schermo?
- 26. Come posizionare correttamente una libreria open-source?
- 27. come posizionare il cursore all'inizio di `tab`
- 28. Come posizionare: fisso div scroll orizzontalmente
- 29. come posizionare alcuni lasso di sotto l'altro
- 30. Come posizionare correttamente un progetto Maven?
È correlato? - http://stackoverflow.com/questions/403478/how-to-overlay-images – aasu