CSS3 Image Maps

Source   ::::   http://www.soscode.ru/articles/html/20150929133058.html

CSS3 Image Maps

Przejdź do przykładu

Minęło ponad siedem lat palę pierwszy opublikował mój CSS Image Maps artykuł/tutorial. Otrzymałem wiele e-maili od osób, dziękując mi za pokazywanie, jak to możliwe, że myślałem, że chciałbym go zaktualizować, aby uczynić ją bardziej odpowiednie do możliwości CSS współczesnych przeglądarek.

Dzisiejsze rozwiązania wymaga mniej kodu, nie potrzebuje obrazów (z wyjątkiem jednego używacie na mapie, nie mam wątpliwości) i oferuje kilka przyjemnych posypie się z CSS3 przejścia, w tym zanikanie i ożywianie “info bąbel” podczas zawisania nad kawałkiem adnotowany obszaru na obrazie.

Wzięłam istniejących stylów CSS, oczyszczeniu go w górę, aby go trochę bardziej modularne (i mniej suchy) i, jak zawsze, przewidziały pracy example. Poniżej jest kod wymagany do tworzenia własnych stylów CSS3 obraz mapy:

 

HTML:

 

 

 <dl id="inTheStudioMap">
                <dt class="title">In The Studio...</dt>
                <dt id="screen">1. Screen</dt>
                <dd id="screenDef"><a href="#"><span>Ableton, FTW!</span></a></dd>
                <dt id="synth">2. Virus TI</dt>
                <dd id="synthDef"><a href="#"><span>Sweet sounds from the Virus</span></a></dd>
                <dt id="snacks">3. Snacks</dt>
                <dd id="snacksDef"><a href="#"><span>Mmmmm, snacks.</span></a></dd>
            </dl>

 

 

 

CSS:

 

 

  /* image map container (and actual image) */
            dl#inTheStudioMap{
                margin: 0;
                padding: 0;
                background: transparent url(studio.jpg) top left no-repeat;
                height: 299px;
                width: 400px;
                position: relative;
                box-shadow: 0 0 5px rgba( 0, 0, 0, 0.5 );
                border: 5px solid #fff;
            }

            dd a{
                position: absolute;
                outline: none;
                text-decoration: none;
                border: 1px solid #FFFCE6;
                background: rgba( 255, 255, 191, 0.4 );
                text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.9 );

                -webkit-transition: background 1s ease-in-out, border 1s ease-in-out;
                -moz-transition: background 1s ease-in-out, border 1s ease-in-out;
                -o-transition: background 1s ease-in-out, border 1s ease-in-out;
                -ms-transition: background 1s ease-in-out, border 1s ease-in-out;
                transition: background 1s ease-in-out, border 1s ease-in-out;
            }

            dd a:hover{
                background: rgba( 255, 255, 255, 0 );
                border: 1px solid transparent;
            }

            dd a:active{
                outline: none;
                -moz-outline: none;
            }

            dd a span{
                opacity: 0;
                visibility: hidden;
                position: absolute;
                left: -1px;
                top: 0;
                height: 20px;
                line-height: 20px;
                text-indent: 0;
                vertical-align: top;
                background-color: #F4F4F4;
                font-weight: bold;
                color: #333;
                border: 1px solid #F4F4F4;
                margin: 0;
                padding: 5px;
                white-space: nowrap;
                box-shadow: 0 0px 5px rgba( 0, 0, 0, 0.5 );

                -webkit-transition: all 1s ease-in-out;
                -moz-transition: all 1s ease-in-out;
                -o-transition: all 1s ease-in-out;
                -ms-transition: all 1s ease-in-out;
                transition: all 1s ease-in-out;
            }

            dd a span:after{
                border: 10px solid #F4F4F4;
                width: 0;
                height: 0;
                content: '';
                position: absolute;
                border-color: #F4F4F4 transparent transparent;
                left: 5px;
                bottom: -21px;
                opacity: 1;
            }

            dd a:hover span, dd a:focus span{
                visibility: visible;
                opacity: 1;   
                top: -45px;
            }

            /***
             * Hotspot Positions
             * - replace with location to your annotations
             ***/
            dd#screenDef {
                top: 77px;
                left: 120px;
            }

            dd#screenDef a {
                width: 115px;
                height: 80px;
            }

            dd#synthDef {
                top: 180px;
                left: 225px;
            }
            dd#synthDef a {
                width: 80px;
                height: 36px;
            }

            dd#snacksDef {
                top: 220px;
                right: 159px;
            }
            dd#snacksDef a {
                width: 85px;
                height: 40px;
            }

 

 

 

Roboczy przykład można zobaczyć poniżej (zdjęcie powstało podczas pracy nad naszym najnowszym remix [ukaże się wkrótce]):

Reklama

W Studiu…

  1. Ekran

Ableton, gry oferującej!

  1. Virus TI

Słodkie dźwięki z wirusa

  1. Przekąski

Mmmmm, przekąski.

Jeśli masz jakiekolwiek pytania, wątpliwości lub sugestie dotyczące usprawnień, nie wahaj się wysłać mi notatkę: Frankmanno [-O-] gmail [-dot-] com Lub skontaktuj się ze mną via twitter (@frankieshakes).

Przykłady zostały pomyślnie przetestowane w Chrome, Safari i Firefox (Mac). Jeśli jesteś w stanie przetestować to na innych przeglądarkach, dostac nutę, i I’ll aktualizacja wykazu.