2013-10-03 3 views
1

У меня есть простой диапазон, содержащий адрес электронной почты.Обнаружение переполнения текста и добавление всплывающей подсказки, содержащей полный текст

<span id="email">[email protected]</span> 

В моем CSS диапазон устанавливается на фиксированную ширину с переполнением многоточия.

#email { 
    display: inline-block; 
    width: 100px; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

Это прекрасно работает. Однако я бы хотел заметить, что он каким-то образом работает и отображает полный текст в атрибуте title диапазона.

Как это сделать? Чистый CSS был бы идеальным, но если это невозможно, то jQuery - это лучшая вещь.

+0

Вы можете не просто положить его в названии в любом случае, люди, которые уже могут видеть он выиграл 't зависать, чтобы искать его – SmokeyPHP

+0

Вы не можете изменить DOM с CSS, чтобы добавить атрибут 'title', поэтому он должен быть Javascript/jQuery. [dotdotdot] (http://dotdotdot.frebsite.nl/) поразительно для этого – CodingIntrigue

+0

@SmokeyPHP, это не для этого одного окна, это для кучи их на странице. Извините, добавление заголовка в каждый интервал на странице, содержащей его содержимое, кажется излишним, просто для того, чтобы удовлетворить 1% наших пользователей, которые имеют длинные адреса электронной почты или четырехзначные фамилии! : P – Connell

ответ

6

Вы не можете обнаружить переполнение с помощью CSS. Но использование JavaScript это просто:

JavaScript

var e = document.getElementById('email'); 

if (e.scrollWidth > e.clientWidth) { 
    alert("Overflow"); 
} 

Demo

Try before buy

+0

Абсолютно совершенный. Дэйв будет счастлив;) Могу ли я спросить, почему вы изменили с 'offsetWidth' на' clientWidth'? Оба, казалось, отлично работали (я использую Chrome) – Connell

+0

Вещь с 'offsetWidth' заключается в том, что она также включает в себя границы. Взгляните на этот крайний [пример] (http://codepen.io/anon/pen/rdKvn), где он потерпит неудачу. – insertusernamehere

+0

Aha! Спасибо за помощь! :) – Connell

Смежные вопросы