Googleの画像なしボタン


90

最近、Googleの新しいイメージレスボタンに関する記事がいくつかあります。

これらの新しいボタンがGmailでどのように機能するかが本当に気に入っています。サイトでこれらのボタンまたは同様のボタンを使用するにはどうすればよいですか?同様のルックアンドフィールのオープンソースプロジェクトはありますか?

JQuery / XHTML / CSSを使用してこのような独自のボタンパッケージをロールしたい場合、どの要素を使用できますか?私の最初の考えは:

  1. <input type="button">外観を改善するためのcssを使用した標準(主にcss / imgesについて話されている設計記事に関連しています。)

  2. <a>タグ付きの「onclick」イベントのボタンをルートとするカスタムダイアログとフィルタリング用の検索バーを表示するJQuery JavaScript そのポップアップのテーブルレイアウトは正気でしょうか?

私はWebのリバースエンジニアリングにひどいですが、これらのボタンをリバースエンジニアリングするために使用できるツールにはどのようなものがありますか?FirefoxのWeb開発者ツールバーを使用すると、ボタンのポップアップダイアログで使用されているcssまたはjavascript(縮小されていても)が実際には表示されません。それらをのぞいていくつかのアイデアを得るには、どのブラウザツールまたは他の方法を使用できますか?

私はGoogleのIPを盗むつもりはありません。同様のボタン機能を作成する方法を知ってください。

回答:


55

-編集-元の投稿にリンクがありませんでした。ごめんなさい!実際の質問を反映するように書き直します

StopDesignは、これに関する優れた記事をここに掲載しています[編集20091107]これらはクロージャーライブラリの一部としてリリースされましたボタンのデモをご覧ください。

基本的に、彼が表示するカスタムボタンは、簡単なCSSを使用して作成されます。

彼は当初、効果を得るために9つのテーブルを使用していました。 9テーブル

しかし、後で彼は同じ効果を達成するために上部と下部の境界線に単純な1pxの左右のマージンを使用しました。

3つのレイヤーを使用してグラデーションを偽造します。 ボタンのグラデーション

すべてのコードは、カスタムボタン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

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がこのように重くなったとき、私はむしろ画像(または背景としてのいくつかの画像。もっと良いのは、スプライト)を使用したいと思います。その上、このボタンの画像は単一のK未満になります。

私がGoogleを愛しているのと同じくらい、これは少しやり過ぎに思えます。


更新: Googleはユニークなケースです。大規模なサイトであり、コンテンツを国際化したい場合、この画像のない手法は実際には非常に優れています。新しい画像を生成したり、ボタンを壊す心配をせずに、ほぼすべての記述言語をUIに適用できます。

質問を参照:画像なしボタンを使用する利点は何ですか?


13

ただし、それを行うことにした場合は、必ず最初にデフォルトでページをレンダリングしてください。

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

...そして、jQueryを使用して、入力要素をonClickイベントを持つカスタムボタンと入れ替えます。これにより、JavaScriptを有効にしていないユーザーが引き続きサイトを使用できるようになります。

使いやすさを第一に!


5
どうして?<button type="submit">代わりにを使用してください。子要素を持ち、好きなスタイルを設定できるからです。
まぶたがない2009年

13

私が開発したこのjqueryプラグインを使用できます。ボタンはどこでもかなり機能し、プラグインであるため、簡単に設定および構成できます。

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


12

2011年のこの投稿の更新:

Googleは、2011年 7月にサービス全体で新しいデザインを開始しました。新しいGoogleボタンがここに再作成されました:http : //pixify.com/blog/use-google-plus-to-improve-your-ui /

新しいボタンは次のようになります。 ここに画像の説明を入力してください


+1。画像やこの投稿のような追加の要素を使用してグラデーションを偽造しようとするのではなく、可能な限りグラデーションを使用し、古いブラウザでは妥当な色にフォールバックします。
mikemaccana 2012年


5

発生する最大の問題は、ブラウザー間で機能させることです。

私はあなたが本当にそれが必要かどうかを強く考えるべきだと思います...グーグルは必要な膨大な数のボタンと言語のためにこのようなものを作ることで多額の投資を得ます。ほとんどのサイトとアプリケーションは、画像を使用しても同様にうまく機能していると思います。

ただし、オープンソースのコンポーネントは良いアイデアです。富と努力を広く広めます。


2

ここでの作業の大部分はおそらくデザインではありません-これらの投稿はすでにグラデーション効果に関する優れたハウツーです。

問題は、これをすべてのブラウザーで、つまりIE6とIE7の風変わりなゴミの山で機能させることです。

私はあなたがjQueryで書き直される標準ボタンで正しい方向に進んでいると思います-そうすれば、スクリーンリーダーから引き続きアクセスでき、本当に古いブラウザでもうまく機能します。

HTMLについては、各ブラウザーでGmailにアクセスして、生成されるHTMLを確認するのが最善の策だと思います。IE6、IE7(また、quirksモードが必要かどうかによっても異なります)とその他すべてでは、HTMLはまったく異なると思います。 。


1
GoogleがブラウザがIEをボタンレンダリングのために探知しているのではないかと心から思っています。
まぶたがない2009年


1

Web Developerのツールバーは、 CSSがアイテムに適用されているものを教えてくれるCSSのメニューの下のビュースタイル情報を持っています。そのメニューにはCSSの編集機能もあり、CSSをオンザフライで変更して、ページにどのように影響するかを確認できます。


Firebugは、まさにこの種のこと、つまり適用されるCSSとライブの変更を確認するのに非常に役立つと思います。
セレマ

私もファイアバグを使っていますが、それはそれ自身のエンジンを持っているので、それは少し重いかもしれません。ツールバーははるかに軽量で、私の意見では使いやすいです。
Mykroft 2009

0

クロージャライブラリへのリンクを含む投稿は適用されません。クロージャライブラリの一部としてリリースされたものは、グラデーション付きのボタンを使用しています。

リストされている他のソリューションは役に立たない。そこから移動して、Gmailで機能しているすべてのブラウザでこれらのボタンを機能させることはできません。ボウマンが彼のサイトで示しているのは、機能しているコードではない。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.