Как работает спрайт фоновых изображений кнопок в Gmail?

Только что заметил, что спрайт, используемый Gmail для фона кнопок в пользовательском интерфейсе, выглядит следующим образом:

Спрайт фона кнопки Gmail

И все мы знаем, что это настоящие кнопки в действии:
Настоящие кнопки Gmail — С фоновыми изображениями

До сих пор (и даже сейчас) моя идея заключалась в том, что соседние значки в этом плотно упакованном прямоугольном спрайте будут отображаться на любых фоновых изображениях. Но на любой кнопке Gmail отображается только один значок.
Это просто CSS? Это JavaScript? Это... магия?


person eternalthinker    schedule 27.12.2011    source источник


Ответы (2)


Это CSS и некоторые «лишние калории», называемые вложенными элементами DIV. Настоящая иконка представляет собой отдельный DIV, расположенный в центре кнопки, который едва умещается на одной иконке.

person David Hellsing    schedule 27.12.2011
comment
Не приведет ли добавление таких «лишних калорий» к типичному веб-дизайну — просто для использования плотно упакованного спрайта — к излишнему весу? Или это разумный выбор в любом случае? - person eternalthinker; 28.12.2011

CSS.

Они установили background, height и width в пределах <div> нескольких слоев в глубину.

Если вы используете Chrome и щелкните правой кнопкой мыши любую из этих кнопок пользовательского интерфейса и выберите Inspect Element, вы увидите, как работают вложенные <div>. HTML и CSS немного запутаны из-за того, как Google развертывает свой код, но они должны быть достаточно простыми для понимания.

person Josh Smith    schedule 27.12.2011