Кнопки Google без изображения - PullRequest
90 голосов
/ 06 февраля 2009

Недавно было несколько статей о новых кнопках Google без изображения:

Мне очень нравится, как эти новые кнопки работают в Gmail. Как я могу использовать эти или похожие кнопки на моем сайте? Есть ли проекты с открытым исходным кодом с похожим внешним видом?

Если бы я хотел свернуть свой собственный пакет кнопок, как это, используя JQuery / XHTML / CSS, какие элементы я мог бы использовать? Мои первые мысли:

  1. Стандарт <input type="button"> с css для улучшения внешнего вида (в статье о дизайне говорилось в основном о css / imges.)

  2. Jquery javascript для вызова настраиваемого диалога с корнем в кнопке на событии «onclick», в котором были бы теги <a> и панель поиска для фильтрации? Разумная ли таблица для этого всплывающего окна?

Я ужасно разбираюсь с реверс-инжинирингом в Интернете, какие инструменты я могу использовать, чтобы помочь реверс-инжинирингу этих кнопок? Используя панель инструментов веб-разработчика Firefox, я не вижу реально CSS или JavaScript (даже если он минимизирован), который используется во всплывающих диалогах кнопок. Какой браузерный инструмент или другой метод я мог бы использовать, чтобы взглянуть на них и получить некоторые идеи?

Я не собираюсь воровать какие-либо IP-адреса Google, просто получить представление о том, как я могу создать аналогичные функции кнопок.

Ответы [ 11 ]

55 голосов
/ 12 февраля 2009

- РЕДАКТИРОВАТЬ - Я не видел ссылку в оригинальном сообщении. Сожалею! Постараюсь переписать, чтобы отразить актуальный вопрос

У StopDesign есть отличное сообщение по этому здесь . [править 20091107] Они были выпущены как часть библиотеки закрытий : см. Демонстрацию кнопки .

В основном пользовательские кнопки, которые он показывает , создаются с использованием простого CSS.

Первоначально он использовал 9 таблиц, чтобы получить эффект: 9 Tables

Но позже он использовал простое левое и правое поле в 1px на верхней и нижней границах для достижения того же эффекта.

Градиент подделывается с использованием трех слоев: Button Gradient

Весь код можно найти на странице Custom Buttons 3.1 . (хотя градиент без изображения работает только в Firefox и Safari)

Пошаговые инструкции

1 - вставить следующий код CSS:

/* Start custom button CSS here
---------------------------------------- */
.btn {
  display:inline-block;
  background:none;
  margin:0;
  padding:3px 0;
  border-width:0;
  overflow:visible;
  font:100%/1.2 Arial,Sans-serif;
  text-decoration:none;
  color:#333;
  }
* html button.btn {
  padding-bottom:1px;
  }
/* Immediately below is a temporary hack to serve the 
   following margin values only to Gecko browsers
   Gecko browsers add an extra 3px of left/right 
   padding to button elements which can't be overriden.
   Thus, we use -3px of left/right margin to overcome this. */
html:not([lang*=""]) button.btn {
  margin:0 -3px;
  }
.btn span {
  background:#f9f9f9;
  z-index:1;
  margin:0;
  padding:3px 0;
  border-left:1px solid #ccc;
  border-right:1px solid #bbb;
  }
* html .btn span {
  padding-top:0;
  }
.btn span span {
  background:none;
  position:relative;
  padding:3px .4em;
  border-width:0;
  border-top:1px solid #ccc;
  border-bottom:1px solid #bbb;
  }
.btn b {
  background:#e3e3e3;
  position:absolute;
  z-index:2;
  bottom:0;
  left:0;
  width:100%;
  overflow:hidden;
  height:40%;
  border-top:3px solid #eee;
  }
* html .btn b {
  top:1px;
  }
.btn u {
  text-decoration:none;
  position:relative;
  z-index:3;
  }

/* pill classes only needed if using pill style buttons ( LEFT | CENTER | RIGHT ) */
button.pill-l span {
  border-right-width:0;
  }
button.pill-l span span {
  border-right:1px solid #ccc;
  }
button.pill-c span {
  border-right-style:none;
  border-left-color:#fff;
  }
button.pill-c span span {
  border-right:1px solid #ccc;
  }
button.pill-r span {
  border-left-color:#fff;
  }

/* only needed if implementing separate hover state for buttons */
.btn:hover span, .btn:hover span span {
  cursor:pointer;
  border-color:#9cf !important;
  color:#000;
  }

/* use if one button should be the 'primary' button */
.primary {
  font-weight:bold;
  color:#000;
  }

2 - Используйте один из следующих способов для его вызова (подробнее можно найти по ссылкам выше)

<a href="#" class="btn"><span><span><b>&nbsp;</b><u>button</u></span></span></a>

или

<button type="button" class="btn"><span><span><b>&nbsp;</b><u>button</u></span></span></button>
32 голосов
/ 10 февраля 2009

Это их кнопка «Архив», по словам Firebug.

<div tabindex="0" act="7" class="goog-imageless-button goog-inline-block goog-imageless-button goog-imageless-button-collapse-right goog-imageless-button-primary" id="">
  <div class="goog-inline-block goog-imageless-button-outer-box">
    <div class="goog-inline-block goog-imageless-button-inner-box">
      <div class="goog-imageless-button-pos">
        <div class="goog-imageless-button-top-shadow"> </div>
        <div class="goog-imageless-button-content"><b>Archive</b></div>
      </div>
    </div>
  </div>
</div>

CSS - это больше, чем я хочу организовать / вставить для этого. Возможно, это только я, но когда разметка / css станет такой тяжелой, я думаю, что я бы предпочел ИСПОЛЬЗОВАТЬ ИЗОБРАЖЕНИЕ (или пару изображений в качестве фона. Еще лучше, Спрайты). Кроме того, изображение для этой кнопки будет меньше, чем один К.

Как бы я ни любил Google, это кажется немного излишним.


Обновление: Google это уникальный случай. Если вы массовый сайт и хотите интернационализировать свой контент, то эта техника без изображений действительно крутая. Это позволяет вам применять практически любой письменный язык к вашему пользовательскому интерфейсу, не создавая новых изображений и не опасаясь поломки кнопок.

См. Вопрос: Каковы преимущества использования кнопки без изображения?

13 голосов
/ 19 февраля 2009

Вы можете использовать этот плагин jquery, который я разработал. Кнопки работают практически везде, и, поскольку это плагин, их легко установить и настроить.

http://swizec.com/code/styledButton/

13 голосов
/ 10 февраля 2009

Однако, если вы решите это сделать, убедитесь, что вы сначала отображаете страницу по умолчанию:

<input type="submit" value="submit" />

... А затем используйте jQuery, чтобы поменять элемент ввода с вашей пользовательской кнопкой, которая имеет событие onClick. Это обеспечит возможность использования вашего сайта людьми, у которых не включен JavaScript.

Юзабилити должна быть на первом месте!

12 голосов
/ 18 июля 2011

Обновление этого поста за 2011 год:

Google запустил новый дизайн для своих сервисов в июле 2011 года. Новые кнопки Google были воссозданы здесь: http://pixify.com/blog/use-google-plus-to-improve-your-ui/

Новые кнопки выглядят так: enter image description here

5 голосов
/ 11 февраля 2009

Самая большая проблема, с которой вы столкнетесь, - заставить ее работать в разных браузерах.

Я думаю, вам следует серьезно подумать, действительно ли вам это нужно ... Google получает большую выгоду, делая что-то подобное из-за огромного количества кнопок и языков, которые им нужны; Я подозреваю, что большинство сайтов и приложений будут так же хорошо использовать изображение.

Тем не менее, компонент с открытым исходным кодом - хорошая идея: широко распространяйте богатство и усилия.

5 голосов
/ 06 февраля 2009

Вы можете попробовать использовать плагин Firebug для Firefox для просмотра CSS на кнопке.

2 голосов
/ 08 ноября 2009

Они были выпущены как часть библиотеки закрытия : см. Демонстрацию кнопки

2 голосов
/ 13 февраля 2009

Большая часть работы здесь, вероятно, не будет оформлением - эти посты уже являются отличным практическим руководством по эффектам градиента.

Проблема заключается в том, чтобы заставить это работать во всех браузерах, или, более конкретно, изворотливых кучах мусора, которые являются IE6 и IE7.

Я думаю, что вы на правильном пути со стандартной кнопкой, которая переписывается с помощью jQuery - таким образом, вы все равно будете доступны для программ чтения с экрана и сможете значительно ухудшиться в действительно старых браузерах.

Для HTML, я думаю, вам лучше всего посетить Gmail с каждым браузером и посмотреть, что генерируется HTML - я ожидаю, что он будет совершенно другим для IE6, IE7 (также в зависимости от того, нужен ли им режим quirks) и все остальное.

1 голос
/ 06 февраля 2009

Панель инструментов для веб-разработчиков содержит информацию о стиле просмотра в меню css, которая сообщит вам, какой css применяется к элементу. В этом меню также есть функция «Редактировать CSS», которая позволит вам на лету изменить CSS, чтобы увидеть, как он влияет на страницу.

...