Homepage » Coding » A kapcsoló felhasználói felületének létrehozása a CSS maszk használatával

    A kapcsoló felhasználói felületének létrehozása a CSS maszk használatával

    Képfeldolgozásban, álcázás egy olyan technika, amely lehetővé teszi kép elrejtése másikkal. A kép egy részének létrehozásához maszkot használunk átlátni. A maszkolás a CSS segítségével maszkolási tulajdonságok segítségével végezhető el.

    A mai bejegyzésben egy maszkolt képet készítünk két PNG-kép és CSS-maszkolási technika segítségével, és lehetővé teszi a felhasználók számára, hogy kezeljék a kép két állapotát (nap és éjszaka) kapcsoló UI segítségével.

    Egyes böngésző-kompatibilitási problémák miatt nem minden maszkolási tulajdonság támogatott minden böngészőben (2016. júniusától) - megmutatom két módszer a maszkok hozzáadására, az egyik a Webkit alapú böngészőkhöz és egy a Firefoxhoz. A háromlépéses bemutató két első lépése minden böngésző esetében azonos, de a harmadik lépésben különbség lesz.

    1. lépés: Létrehoz egy alapkapcsolót

    Mivel egy tipikus kapcsolónak két állapota van csak egy engedélyezve egyszerre használhatja a rádió gomb-csoport két a kapcsoló munkakomponenseinek létrehozásához. Helyezzen minden rádiógombot a szülőelem bal és jobb végére.

    A rádió gombcsoportokat úgy hozzák létre, hogy mindegyik rádiógombot ugyanaz adja név tulajdonság. Egy rádiógomb-csoportban, csak egy gomb egyszerre ellenőrizhető.

    Kezdjük a következő HTML és CSS-ekkel:

    HTML

    CSS

    Az alábbi CSS-ben abszolút pozicionálást alkalmaztam, hogy a rádió gombokat pontosan elhelyezhessem a képernyőn.

    #outerWrapper szélesség: 450px; magasság: 90px; párnázás: 10px; margin: 100px auto 0 auto; határ-sugár: 55px; box-shadow: 0 0 10px 6px #EAEBED; háttér: #fff;  #innerWrapper magasság: 100%; border-radius: x 45 képpont; overflow: hidden; helyzet: a relatív;  .radio szélesség: 90px; magasság: 100%; pozíció: abszolút; margin: 0; opacitás: 0;  #rightRadio right: 0;  .radio: nem (: ellenőrzött) kurzor: mutató;  

    Hozzáadtam a opacitás: 0 szabály a .rádió osztály elrejti a rádió gombokat. Az utolsó szabály az alábbi kódblokkban található, kurzor: mutató; megmutatja a kurzor kurzort a nem ellenőrzött gombhoz, hogy a felhasználók tudják, hogy melyik gombot kattintson a kapcsolóállapot váltásához.

    Képernyőkép a kapcsoló felhasználói felületéről a Chrome böngészőben található gombokkal

    2. lépés: A Skins hozzáadása a kapcsolóhoz

    Ebben a lépésben kettőt adunk hozzá

    címkék a HTML-fájlunkban lévő rádió gombok alatt található két bőrhöz, valamint a CSS minden egyes bőréhez tartozó háttérkép.

    "Day" és "Night", mint a kapcsoló két állapota, a Minh Killy Le Dribbble lövöldözésén alapul..

    Napos bőr
    Éjszakai bőr

    HTML

    CSS

    #daySkin háttérkép: url ('day.png');  #nightSkin background-image: url ('night.png');  .skin szélesség: 100%; magasság: 100%; pointer-események: nincs; pozíció: abszolút; margin: 0; 

    A pointer-események: nincs; A szabályt hozzáadjuk a bőrhöz, hogy a kattintás eseményei a kapcsolón áthaladnak rajtuk, és elérje a rádió gombokat.

    A mutató-események CSS tulajdonságával beállíthatja azokat a körülményeket, amelyek mellett egy grafikai elem lehet célzott egéresemények.

    A fenti kód alternatívájaként kettő címkék (forrásképekkel) belül

    a címkék is működhetnek. Ők lesznek a két kapcsolóállapot bőrét.

    Képernyőkép a krómozott bőrbőrrel

    3a. Lépés. Maszk hozzáadása (Webkit verzió)

    A Chrome és más Webkit alapú böngészők esetében a maszk-kép CSS tulajdonság, amely - a hozzászólás írása óta - csak az -webKit előtagja a Webkit böngészőkben. A maszk-kép tulajdonság lehetővé teszi adja meg a képet használt mint a maszk.

    Általában kétféle maszkolás létezik: fényesség és alfa.

    • Ban ben luminancia maszkolás, a maszk kép sötét része elrejti a maszkolt képet: a sötétebb egy rész a maszkképben van, minél több rejtett ez a rész a maszkolt képben.
    • Ban ben alfa-maszkolás, a maszk kép áttetsző része elrejti a maszkolt képet: minél átláthatóbb a rész a maszkképben, annál rejtve ez a rész a maszkolt képben van.

    A Chrome-ban (az 51.0.2704.103-as verzióból, a Win10-ből) csak az alfa látható.

    A CSS-ben, alfa és fényesség az értékek a maszk típusú ingatlan.

    Itt van a CSS hozzáad egy maszkot háttérképekhez a Webkit böngészőkben:

    CSS

    #nightSkin background-image: url ('night.png'); maszk-típus: alfa; / * átlátszó kör, melynek maradék része átlátszatlan * / -webkit-mask-image: radiális gradiens (kör 45px 45px, rgba (0,0,0,0) 45px, rgba (0,0,0,1) 45px) ;  / * Ha a nap bőrét választotta * / #leftRadio: check ~ # nightSkin maszk-típus: alfa; / * átlátszatlan kör a fennmaradó rész átlátszó * / -webkit-mask-image: radiális gradiens (kör a 405px 45px, rgba (0,0,0,1) 45px, rgba (0,0,0,0) 45px) ; 

    Én használtam -WebKit-maszk-kép tulajdonság a kezdeti maszk kép létrehozásához. Értéke a radiális-gradiens () CSS függvény, amely egy előre meghatározott alakzatból, sugárirányú gradiensből és a gradiens közepéről készült kép létrehozására szolgál.

    Az éjszakai bőrre átlátszó kört hoztam létre, és a tartály megmaradt részét átlátszatlanul készítettem. A nappali bőrért az ellenkezőjét csináltam: átlátszatlan kört hoztam létre a radiális-gradiens () funkciót, és a többi részt átláthatóvá tette.

    Bár még nem támogatott a Webkit böngészők, hozzáadtam a maszk típusú a CSS-nek a jövőbeni hivatkozás céljából.

    Képernyőkép az éjszakai bőr kiválasztásával
    Képernyőkép a választott napbőrrel

    Amint a fentiekben látható, a kör határa nem túl sima. Nak nek elrejti a durva éleket, add a

    a körök alakja után (ugyanolyan méretű, mint a maszk kör) egy doboz árnyéka. Az árnyék elrejti a körmaszk durva éleit.

    HTML

    CSS

    #switchBtnOutline szélesség: 90px; magasság: 100%; border-radius: x 45 képpont; box-shadow: 0 0 2px 2px szürke betét, 0 0 10px szürke; pointer-events: none; pozíció: abszolút; margin: 0;  / * Helyezze a #switchBtnOutline-t jobbra, amikor a nap bőrét választja * / #leftRadio: check ~ # switchBtnOutline right: 0; 
    A maszk körének durva élével rejtett kapcsoló képe

    3b lépés. Maszk hozzáadása (Firefox verzió)

    A maszk-kép A CSS tulajdonság valójában a longhand tulajdon, és ez a rövidítés tulajdonosa maszk amely lehetővé teszi a maszkként használt kép meghatározását is. Míg maszk-kép a Firefox még nem támogatja, maszk jelentése.

    Habár a maszk A tulajdonságnak elfogadnia kell a radiális-gradiens () A CSS értékként működik, mint a maszk-kép a Firefox még nem támogatott.

    Tehát a helyett a radiális-gradiens () kép, használjunk SVG-képet a maszk típusú maszkképként fényesség.

         

    A fenti SVG-kép az a fehér téglalap és a fekete kör. Adja hozzá ezt, és egy másik a-t fekete téglalap és a fehér kör mint a Webkit verzióban használt HTML-maszkok.

    SVG kép (fehér téglalap és fekete kör a maszkhoz)

    HTML

                 

    Cserélje ki (vagy kombinálja) a CSS kódot #nightSkin a Webkit verzióban a következő kódot használtuk. És kész.

    Jelenleg két különböző maszkkép (CSS gradiens és SVG), két különböző maszktípus (Alpha & Luminance), valamint Webkit és Firefox támogatás.

    CSS

    #nightSkin background-image: url ('night.png'); maszk típusú: luminancia; maszk: url (#leftSwitchMask);  #leftRadio: ellenőrzött ~ # nightSkin maszk típusú: luminancia; maszk: url (#rightSwitchMask); 

    Nézze meg a demót

    • Demó
    • Letöltés forrása
    © Savtec
    Hasznos információk és webfejlesztési tippek. Programozás, webdesign, CSS, HTML, JAVASCRIPT. Konfigurálja és telepítse újra a WINDOWS szoftvert. Webhelyek és alkalmazások létrehozása a semmiből.