【问题标题】:Fixing IE6/7 problems when using floated elements inside of a button element在按钮元素内使用浮动元素时修复 IE6/7 问题
【发布时间】:2011-05-04 14:33:42
【问题描述】:

我正在为链接和表单提交创建 CSS 按钮。我对两者使用几乎相同的标记,但包装器不同。

HTML 示例:

<button type="submit">
  <em>Submit</em>
  <em class="cap"></em>
</button>

<a class="button">
  <em>Submit</em>
  <em class="cap"></em>
</a>

CSS:

.button, button {
  display: block;
}
button em,
.button em {
  display: block;
  float: left;
  background: url(button.png) 0 0;
  height: 30px;
  padding: 0 0 0 10px;
}
button em.cap,
.button em.cap {
  padding: 0;
  width: 10px;
  background-position: 100% 0;
}

现在,在 IE6/7 中,锚元素版本可以正常工作。问题出现在使用 button 元素时,它会导致第二个 em 元素换行。

我已经尝试了一些我为按钮元素找到的解决方法,但我没有找到与这种情况非常相似的情况。我浮动左边两个元素的原因是因为我需要按钮是透明的,所以其他方法在这里不起作用。

这是我正在做的一个例子:http://keeleux.com/dev/button/

感谢任何帮助!

谢谢, 埃里克

【问题讨论】:

    标签: html css internet-explorer button


    【解决方案1】:

    这里有一大堆需要考虑。

    我将非常详细地说明解决此问题所需的更改。

    为了哄它在 IE6/7 中工作,我的步骤如下:

    还有一些特定于 IE6 的低优先级问题:

    • button:hover 选择器在 IE6 中不起作用。 IE6 仅在 a 元素上支持 :hover。要解决此问题,您可以使用 Whatever:hover 修复。
    • 由于您使用.png 图像,在IE6 中有灰色背景而不是透明度;有可用的修复程序。虽然在这种情况下,很难注意到。我会说留下这个 - 额外的努力不值得改进。

    更重要的是,您当前的实现在 Firefox 中略有损坏:

    http://keeleux.com/dev/button/

    (来自 Firefox 4 的屏幕截图)

    请注意,只需使用a 而不是button,就可以解决其中的一些问题。

    【讨论】:

    • 非常感谢!您提到的低优先级 IE6 问题我并不真正关心,如果需要,我知道其他解决方法。真的,这只是您修复得很漂亮的按钮包装问题!还要感谢 Firefox 的说明,我不知道。
    • 顺便说一句,我不愿意使用锚元素而不是按钮的原因是按钮 type="submit" 会导致表单行为保持不变。如果我删除提交按钮以支持单击时提交的锚标记,则在某些浏览器上会丢失“输入提交”,这需要更多的 javascript 解决方法。所以再次感谢!在我正在开发的新网站中,这是一个大问题。
    • 我明白了,这是有道理的。优雅降级可能是一个重要的考虑因素。
    【解决方案2】:

    @Eric,节省您自己的时间并使用已经在所有主要浏览器中经过测试和验证的解决方案......jQuery UI 按钮开箱即用。作为额外的奖励,它们可以使用 Themeroller 进行样式设置,以便在后端快速更换,甚至可以在前端使用用户可选择的主题。

    查看this tut了解更多详情。

    【讨论】:

    • 太多人似乎忽略了 jqui 的模板功能。 +1
    • 我没有采用这个解决方案的原因是我的按钮的性质。您的示例依赖border-radius 具有圆角,并且除非使用CSS3 完成,否则将不能有阴影。这两个都是不可接受的,因为这里的整个问题是我的按钮在 IE6/7 中不起作用。如果不清楚我在做什么,您可以在此处查看示例:keeleux.com/dev/button。此外,您的示例在 IE7 中被破坏(我什至没有检查 6)。截图在这里:keeleux.com/dev/button/example.png
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多