我在尝试设置内部没有文本、只有字体图标的按钮时遇到了一个有趣的 HTML 按钮标记行为——没有文本的按钮会导致所有后续按钮都被按下,这些按钮确实有文本。该问题仅在按钮具有height
指定属性时出现。
<header>
<button><!-- No text here --></button>
<button>This button is pushed down</button>
</header>
button { height: 40px; }
起初我确信这是由于第一个按钮内的字体图标做了一些奇怪的基线魔术,但正如您从最小的工作示例中看到的那样,当按钮内根本没有内容时,行为会保持不变。
我可以通过向第一个按钮添加内容来解决这个问题,但是因为我唯一的内容是 a <span class="icon user"></span>
,它是一个字体图标,它实际上会干扰字体基线,并且将按钮定位在几个像素之外。这就是为什么我决定将图标绝对定位在里面,这解决了最初的轻微定位问题,但引入了这个新问题,因为按钮现在就像是空的一样。
所以,问题仍然存在——如何避免空按钮的定位问题?
注意:似乎上述情况只发生在 webkit 浏览器上;Firefox 正确放置带有文本的按钮,但会将空的按钮向上推。