Google的无图像按钮


90

最近有几篇有关Google的新无图像按钮的文章:

我非常喜欢这些新按钮在Gmail中的工作方式。如何在网站上使用这些或类似按钮?是否有外观和风格相似的开源项目?

如果我想使用JQuery / XHTML / CSS来滚动自己的按钮包,可以使用哪些元素?我最初的想法是:

  1. <input type="button">css的标准,以改善外观(设计文章主要讨论css / imges涉及。)

  2. jQuery javascript弹出一个自定义对话框,该对话框植根于“ onclick”事件上的按钮,该对话框中将包含<a>标签和用于过滤的搜索栏?该弹出窗口的表格布局是否合理?

我对Web上的反向工程非常糟糕,可以使用哪些工具来对这些按钮进行反向工程?使用Firefox的Web开发人员工具栏,我无法真正看到在按钮弹出对话框中使用的CSS或JavaScript(即使已缩小)。我可以使用哪种浏览器工具或其他方法来窥视它们并获得一些想法?

我不想盗用Google的任何IP,只是想知道如何创建类似的按钮功能。

Answers:


55

-编辑-在原始帖子中没有看到链接。抱歉! 将尝试重新编写以反映实际问题

StopDesign在这里对此发表了出色的文章。[edit 20091107]这些作为闭包库的一部分发布:请参见button演示

基本上,他显示的自定义按钮是使用简单的CSS创建的。

他最初使用9张桌子来获得效果: 9桌

但是后来他在顶部和底部边框上使用了简单的1px左右边距来达到相同的效果。

通过使用三层来伪造渐变: 按钮渐变

所有代码都可以在“ 自定义按钮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变得如此沉重时,我想我宁愿使用图像(或将几个图像作为背景。更好的是Sprites)。此外,此按钮的图像小于单个K。

尽管我非常喜欢Google,但这似乎有点过分了。


更新: Google是一个独特的案例。如果您是一个庞大的网站,并且希望国际化您的内容,那么这种无图像技术实际上非常酷。它使您几乎可以将任何书面语言应用于UI,而无需生成新图像,也不必担心会损坏按钮。

请参阅问题:使用无图像按钮有哪些优势?


13

无论您决定这样做,请确保首先使用默认值呈现页面:

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

...然后使用jQuery将输入元素与具有onClick事件的自定义按钮交换。这样可以确保未启用JavaScript的人仍然可以使用您的网站。

可用性应该是第一位!


5
为什么?请<button type="submit">改为使用a ,因为它可以包含子元素,并且可以根据需要设置样式。
眼睑失明

13

您可以使用我开发的这个jQuery插件。这些按钮在任何地方都可以正常使用,并且由于是插件,因此易于设置和配置。

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




5

您将要遇到的最大问题是使其在所有浏览器中都能正常工作。

我认为您应该强烈考虑您是否真正需要它。由于需要大量的按钮和语言,因此Google做出这样的事情来赚很多钱。我怀疑大多数站点和应用程序使用图像都不会富裕。

不过,开源组件是一个好主意:广泛地分散财富和精力。


2

这里的大部分工作可能都不是设计-这些帖子已经是渐变效果方面的出色入门指南。

问题是要使其在所有浏览器中都能正常工作,或更具体地说,是在IE6和IE7的古怪堆中。

我认为您可以使用jQuery重新编写的标准按钮处在正确的轨道上-这样,屏幕阅读器仍然可以访问您的按钮,并且可以在真正的旧浏览器中很好地降级。

对于HTML,我认为最好的选择是使用每个浏览器访问Gmail,并查看产生的HTML-我希望它对于IE6,IE7(也取决于他们是否需要怪异模式)和其他所有功能完全不同。


1
我衷心怀疑Google是否正在浏览器嗅探IE以进行按钮渲染。
2009年


1

网页开发工具具有的CSS菜单,将告诉你什么CSS应用到项目下的视图样式信息。该菜单中还有“编辑CSS”功能,可让您即时更改CSS以查看其如何影响页面。


我发现firebug对于这种事情非常有用-查看应用了CSS和实时更改。
Thelema

我也使用萤火虫,但由于它具有自己的引擎,因此可能有点重。我认为该工具栏的重量更轻,更易于使用。
Mykroft

0

带有指向关闭库链接的帖子不适用。作为封闭库的一部分发布的内容使用带有渐变的按钮。

列出的其他解决方案是没有用的。您无法从那里开始并使这些按钮在每个浏览器上都可以使用,Gmail可以使它们起作用。Bowman在他的网站上显示的内容无效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.