Куда идем?

Многие сталкиваются с тем, что в готовом сайте плагин Skype Click To Call (если он установлен в браузере) заменил телефоны, а иногда и другие номера, которые не являются телефонными, сделав их интерактивными. При этом Skype заменяет номер с вашим дизайном своей стандартной синей ссылкой с иконкой. В этой статье я расскажу два подхода к решению данного вопроса.

Начну с простого.

Первый подход. Мешаем распознать телефон.

Сразу отметаем вариант использования картинки, т.к. это не позволяет пользователю нормально выделить и скопировать телефон.

Вставляем скрытый тег span внутри телефона:

<p>+7 (123) <span style="display:none;">.</span>456-78-90</p>

Этот метод прост, но при копировании телефон может копироваться с точкой.

CSS метод. Добавьте следующие стили:

.phone-block span[class^='skype_pnh_container'] {

      display:none !important; /* отключение кликабельности */

}

.phone-block span[class^='skype_pnh_print_container'] {

      display:inline !important; /* включение простого текста */

}

Или LESS, если вы используете его вместо CSS:

.phone-block {

      span[class^='skype_pnh_container'] {

            display:none !important; /* отключения кликабельности */

      }

      span[class^='skype_pnh_print_container'] {

            display:inline !important; /* включение простого текста */

      }

}

.phone-block – это обёртка вокруг телефона, для того чтобы можно было отключать отдельные телефоны на сайте, а другие оставлять без изменения.

Т.е. HTML может быть таким:

<div class=”phone-block”>
<p>+7 (123) 456-78-90</p>
</div>

Второй подход. Приручаем Skype.

Теперь самое интересное. Функционал плагина Skype полезен пользователю, нас не устраивает только оформление. Переопределим стили Skype:

CSS:

.phone-block span[class^='skype_pnh_container'] span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {

      /*телефон*/

      color: #0f7a95 !important;

      font-size: 24px !important;

}

.phone-block span[class^='skype_pnh_container'] img.skype_pnh_logo_img {

      /*иконка*/

      visibility: hidden !important;

}

.phone-block span[class^='skype_pnh_container']:hover img.skype_pnh_logo_img {

      /*иконка*/

      visibility: visible !important;

}

LESS:

.phone-block {

      span[class^='skype_pnh_container'] {

            /*display:none !important; /* отключение кликабельности */

            span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {

            /*телефон*/

                  color: #0f7a95 !important;

                  font-size: 24px !important;

            }

            img.skype_pnh_logo_img {

                  /*иконка*/

                  visibility: hidden !important;

            }

            &:hover {

                  img.skype_pnh_logo_img {

                        /*иконка*/

                        visibility: visible !important;

                  }

            }

      }

}

Здесь мы поменяли цвет и размер шрифта телефона, а также спрятали иконку Skype и отображаем её только при наведении мышью на телефон. Если вы хотите добавить какие-либо дополнительные свойства, не забывайте добавлять в каждом значении стиля !important иначе стили Skype будут главнее и всё останется без изменений. Также не забываем про пользователей, у которых плагин не установлен: добавляем стили, которые будут работать без плагина. Например:

.phone-block {

font-size: 24px;

color: #0f7a95;

}

Заключение

Есть и другие способы, не упомянутые в данной статье, как менее удачные, по мнению автора. Это специальные метатеги и JavaScript-методы.

Добавить комментарий