Original: http://www.frankmanno.com/ideas/css-imagemap/

CSS Atvaizdo Žemėlapiai

CSS Atvaizdo Žemėlapiai

Žemiau yra pavyzdys vaizdo žemėlapio, kad pastatytas visiškai naudojant CSS ir XHTML. Nors aš pridėjome paramą Javascript (punktas pavadinimai tiesiog rodomas po paveikslėlio), aš ją išjungėme šiame pavyzdyje – aš paleisti į problemą šiek tiek, kai JS yra įjungtas ir CSS yra išjungtas (daugiau informacijos žemiau).

Pradinė idėja tai atėjo iš dienoraštį komandiravimo aš perskaičiau per ne Gina Trappini dienoraštį, Scribbling.net. Pavyzdys buvo gerai padaryta, bet aš norėjau bandyti tą patį (ar panašų), naudojant tik CSS.

Tada radau nuorodą į The Daily Kryogenix svetainėje (per Gina posto), kuri atvedė prie vaizdo žemėlapio, kad pasinaudojo lengvesni DHTML ir pasinaudojo <title> žymoje rodyti pastabas apie hotspot. Vis dėlto, šiek tiek priklausomi nuo Javascript/DHTML.

Galų gale, aš nusprendžiau pasinaudoti Doug Bowman anketa Stumdomos durys techniką kartu su raiškos sąrašą (<dl></dl>).

Stumdomas duris metodas leidžia jums nurodyti visi savo vaizdo virtimo poveikį vieną vaizdo failą, ir pasinaudoti fone padėčių CSS turtą “shift” bet kuria kryptimi įvaizdį. Pridedant :hover efektas prie savo CSS (šiuo atveju į <a> žyma esančios per <dd> žymėti), galite perkelti vaizdą į norimą padėtį.

Ką aš padariau buvo sukurti vaizdo žemėlapį Photoshop. Kaip matote šiuo paveikslėlio, žemėlapis sudarytas iš 3 kopijas tą patį vaizdą, kiekvienas su skirtingais dėmėmis. Į viršų (1 iš 3) tiesiog žymi hotspots su numeriais, ir Vidurio bei dugno vaizdų (2 ir 3 iš 3) kiekvienas pateikiama virtimo poveikis (su skaidrumo). Jums gali būti įdomu, kodėl virtimo poveikis suskirstytas į du atskirus vaizdus. Dėl atskyrimo priežastis yra dėl to, kad gretimų elementų persidengimo (ty: monitorius, nešiojamojo ir diskelis ant stalo). Užuot susidūrimo tarp dviejų punktų, kad virtimo poveikis kaimyninėms daiktų buvo atskirti į keletą kopijų tą patį vaizdą.

Iš esmės, tai, kaip tai veikia, pateikdamas daikto hotspot pavadinimą į apibrėžimas trukmės žyma (<dt> </dt>) savo sąrašą, po to nustatant aprašymas tegus aprašymas (<dd></ dd>). CSS tada slepia raiškos laikotarpio (kuris yra tikrai naudojama, kai CSS yra išjungtas), taip pat raiškos-aprašą (rodomas ant hover inkaro) ir rodo raiškos aprašymas (šiuo atveju hotspot aprašymas (-ai), jūs pasirinkote savo vaizdo žemėlapio) ir absoliutūs pozicijos ir rodo aprašymas ant apvirtus hotspot (taip pat apibrėžta CSS).

Kodas taip pat pablogina grakščiai. An <img> žymeles, kurios rodo ne-apibudino versija vaizdo žemėlapio, yra paslėpta, naudojant CSS. Tiems, kurie turi CSS išjungta, priskirti versija Image (3 dalių paveikslėlio) nerodo, nes tai yra dalis fone CSS turtą. Greičiau ne apibudino versija pasirodys kartu su unstyled raiškos sąrašą. Jei jūs Web kūrėjams pratęsimo Firefox, eikite į priekį ir išjungti stilių. Jūs gausite geresnę idėją degradacija.

A mėginio kodą rodomas žemiau (žiūrėti šaltinį visiško CSS ir XHTML):

CSS:

dd#monitorDef{ top: 65px; left: 114px; }
dd#monitorDef a{ position: absolute; width: 73px; height: 69px; text-decoration: none; }
dd#monitorDef a span{ display: none; }
dd#monitorDef a:hover{ position: absolute; background: transparent url(office.jpg) -109px -317px no-repeat; top: -10px; left: -5px; }

dd#monitorDef a:hover span{
 display: block;
 text-indent: 0;
 vertical-align: top;
 color: #000;
 background-color: #F4F4F4;
 font-weight: bold;
 position: absolute;
 border: 1px solid #BCBCBC;
 bottom: 100%;
 margin: 0;
 padding: 5px;
 width: 250%;
}

HTML:

<dl id="officeMap">
 <dt id="monitor">1. Monitor</dt>
 <dd id="monitorDef"><a href="#"><span>Here's my 17" Monitor.  I wish I had an LCD!</span></a></dd>
 <dt id="phone">2. Phone</dt>
 <dd id="phoneDef"><a href="#"><span>Does this thing ever stop ringing?</span></a></dd>
 <dt id="case">3. PC Case</dt>
 <dd id="caseDef"><a href="#"><span>This is my crazy Linux box! Gotta love that Linux...</span></a></dd>
 <dt id="notebook">4. IBM ThinkPad</dt>
 <dd id="notebookDef"><a href="#"><span>Here's my Linux notebook.  Some crazy coding going on.</span></a></dd>
 <dt id="floppy">5. External Floppy Drive</dt>
 <dd id="floppyDef"><a href="#"><span>Floppy Drive.  Ancient... I know!</span></a></dd>
</dl>

Darbinis pavyzdys gali būti peržiūrėtas žemiau (žemiau vaizdas buvo paimtas iš The Daily Kryogenix):

1. Monitorius Nerėją mes 17″ Monitorius. Ir vish Ir ant LCD!

2.Telefonas Ar tai, ką kada nors sustabdyti skamba?

3.PC atvejis Čia yra mano proto Linux dėžutė! Turiu mylėti, kad Linux…

4.IBM galvoti pad Štai mano Linux nešiojamojo. Kai kvailai kodavimas vyksta.

5.Išoriniai Padribęs Diskasukis Padribęs Diskasukis. Senovės… Aš žinau!

Nors tai gali būti ne pats “idealus” sprendimas ten, tai tikrai išplečia pirmiau išvardytų pavyzdžių. Man labai mylėjo Gina idėją, kuri yra, kodėl aš bandė išplėsti į jį. Deja, su dabartinėmis apribojimų CSS (taip pat tam tikrose naršyklėse), aš negalėjau visiškai atkartoti tiksliai funkcionalumą Gina pavyzdžiu.

Štai pavyzdys, kad pasinaudoja tiek CSS ir JavaScript. Viena problema išbėgau į tai, kai CSS yra išjungtas, bet kad javascript yra įjungtas. Kažkas keista vyksta su raiškos sąrašą. Jei žinote, kaip pataisyti tai, let me know. Norėčiau gauti darbo.

Aš valdyti susidurti kitą tuo CSS pagrindu vaizdo žemėlapio, kuris atrodo tikrai puikus bandymas. Deja, dėl savo IE (konkrečiai tik paramos iš :hover poveikį <a> tag), tai nėra kryžminio naršyklės suderinami (dar!).

Jei turite kokių nors klausimų, problemų, ir/ar pasiūlymų gerinimo, prašome siųsti man dėmesį: frankmanno [-at-] gmail [-dot-] com arba palikite komentarą apie mano dienoraščio.

Šie pavyzdžiai buvo sėkmingai išbandyta Safari, Firefox ( Mac/Win), IE6/Win, ir Opera 7.5/Mac. Dėl kai kurių nelyginis priežasties javascript versija veikia IE 5/Mac, o ne kad Javascript versija nėra.





Most popular articles:


  • Photo-news blog

  • Clipart Library

  • Keywords base