Permalänk

CSS Placera canvas över img

Jag är helt kass på css men försöker bygga ihop en lite app för att testa "facial-recognition" på bilder. Jag har försökt följa några guider som jag hittat men eftersom mitt projekt inte är exakt likadant uppbyggt som i exemplen så har jag kört fast i css-delen där jag behöver placera ett canvas-element över ett img-element.

Hur gör jag för att canvas:en alltid ska lägga sig över img-elementet och få samma dimensioner oavsätt hur stor eller liten bilden är ?
Jag använder mig av react/tailwind men jag antar att css:en är likadan oavsätt bara att jag behöver använda mig av tailwinds förkortningar. Jag satte bredden på bilden till 4/5 bara för att man ska se div:en som ligger bakom.

export default function FaceDashboard() { const imgUrl = "https://www.incimages.com/uploaded_files/image/1920x1080/gett..."; return ( <div className="flex bg-green-500 "> <img src={imgUrl} alt="" className="w-4/5" /> <canvas className="bg-red-500 absolute opacity-20 w-5/6" ></canvas> </div> ); }

Permalänk
Medlem

Du har missat att göra din div till relativ, det är i förhållande till det din canvas är absolut och då tar upp hela diven.

https://tailwindcss.com/docs/position

Permalänk

Jag får inte riktigt till det. canvas:en får samma höjd som parent div:en men går ut för långt åt höger. Och bilden fyller inte ut hela den bakomliggande div:en.

Hur ska jag göra gör att canvas:en alltid ska ligga över bilden och ha samma dimensioner som bilden ?

export default function FaceDashboard() { const imgUrl = "https://www.incimages.com/uploaded_files/image/1920x1080/gett..."; return ( <div className="relative bg-green-500 "> <img src={imgUrl} alt="" className=" absolute"/> <canvas className="bg-red-500 opacity-30 relative h-96" > </canvas> </div> ); }

Permalänk
Medlem

Testa grid och lägg elementen på samma grid-area.

Permalänk
Medlem

Förlåt.