【发布时间】:2013-03-30 21:49:32
【问题描述】:
我的公司正在建立一个网站,但我们遇到了一些问题,即 JavaScript 库无法替换某些东西。我们决定将我们的 HTML 提交给 W3C 验证器,它告诉我们在 <button> 标记中包含 <div> 标记是非法的。
<button class="button" type="submit">
<div class="buttonNormalLargeLeft"><!--#--></div>
<div class="buttonNormalLargeCenter">Search Flights</div>
<div class="buttonNormalLargeRight"><!--#--></div>
</button>
结果:
Line 287, Column 46: Element div not allowed as child of element button in this context. (Suppressing further errors from this subtree.)
编辑:澄清我们在这里尝试做的事情。我们想要制作一个不依赖于box-radius 的圆角按钮。我们在按钮元素中制作了 3 个 div,每个 div 都有自己的精灵,以使其看起来是圆形的并允许不同的宽度。其他资源指出,按钮元素是为希望按钮包含子元素(例如图像)的用户创建的,但由于某种原因 div 似乎无效。
为什么不允许在按钮元素中使用 div?
这个问题的理想解决方案是什么?
编辑2:
为什么不使用输入法?因为输入不能有想要的布局
为什么不使用 div?因为没有 JavaScript 的用户将无法提交表单。
【问题讨论】:
-
你想做什么?似乎有更好的方法。正常使用按钮有什么问题?我不明白你想在这里完成什么。你想把你的标签放在中心吗?
-
@Thomas Wright css 类有单独的图像来为按钮提供圆角。我们还不想为此使用 CSS 属性。
-
这不是一个坏问题,您所做的实际上已被广泛使用(
<button>恕我直言的好处之一),但它只是没有验证。我会说如果它有效,请离开它 -
代替divs,使用spans和display:inline-block的css,这样就可以调整它们的大小。
标签: html w3c-validation