【问题标题】:CSS: how to position buttons in groups across a row on a web pageCSS:如何在网页上的一行中按组定位按钮
【发布时间】:2014-03-01 07:47:07
【问题描述】:

我更喜欢使用 CSS 方法来使用表格。

我在水平行上有六个按钮。按钮分组如下:

button1 button2              button3                button4 button5 button6

左边的两个按钮在左边距,彼此靠近但不接触。

第三个按钮位于中间——不必完全居中,只需分开即可。

右边的三个按钮在右边距上组合在一起,也没有相互接触。

调整页面大小时,左侧的两个按钮保持在左侧,而右侧的三个按钮随着页面的右边缘来回滑动。

这必须在 IE7 中工作。

编辑:如果您像我一样,正在为“布局表与 CSS”问题而苦苦挣扎,请查看 this SO question。超过 600 人点赞。

【问题讨论】:

  • 答案完全取决于按钮的用途。它们是独立的操作、导航链接、内联链接还是表单按钮?有很多方法可以让按钮看起来像你说的那样;选择基于语义。

标签: html css


【解决方案1】:

IME,您应该使用一排或两排的表格。这种东西,是很常见的需求,用 CSS 也是一个巨大的皮塔。你可以花几天时间。而且,这一次不是 IE 的缺点。所以,在这种情况下,我只会向不可避免的情况低头并使用一张小桌子。正如我所说,恕我直言。

--皮特

【讨论】:

  • 别忘了(像我一样)你不能在 上设置宽度,所以你可能不得不在中心按钮周围插入两个空白 。
  • 我不断听到“表格是邪恶的,使用 CSS”的口头禅,但每当我尝试完成像这样稍微复杂的事情时,都无能为力。我有点希望有一个我不知道的技巧,也许将按钮分组到跨度标签或其他东西中。感谢您的意见。
  • @DOK,是的,CSS Gestapo 在每一扇门后面。是的,您可以将按钮放在 标记中。但即便如此,当您缩小视口时,那些吸盘将向下迁移到下一行,下一行将占据包含 div 的左边距,您的布局将中断,一切都会看起来很糟糕。如你所知。有时候,我认为无论如何,为了完成工作而接受不洁者会更好。
  • 说到 CSS Gestapo,就在我在这里添加我的评论之后,有人投票否决了我的问题,哈哈。但我想我会听从您的建议,并感谢您的意见。
【解决方案2】:

更新答案:

没有表格我能做的最好的事情是this

详情:

  • 适用于 IE7-8-9、FF 4、Chrome 10
  • 因此在早期的 FF/Chrome 和扩展 Safari 中应该可以正常工作
  • Opera 未知,但它应该也可以在那里工作
  • 纯 CSS,HTML 使用 divul/li 作为按钮列表

缺点:

  • 包括针对 IE7 的 CSS hack——它只是一个很小的 ​​(*display: inline),但你已经拥有了。
  • 您必须按您希望它们显示的 reverse 顺序添加右侧按钮 - 这是由于 float: right 而我不知道在保留的同时修复它的方法齐平右对齐

【讨论】:

  • @DOK:更新了答案。但是右键显示顺序还是颠倒了:)
【解决方案3】:

三年后,这仍然困扰着我。我想出的最好的 CSS 解决方案就是这个。它仍在使用表格,但使用了 CSS。而且做一些样式更容易——我们可以在表格级别而不是单元格级别设置表格单元格文本对齐方式。

这在调整屏幕大小时表现良好。

为了清楚起见,我在这里使用样式属性。

<div style="display:table; width:100%; text-align:center;">
    <div style="display:table-row;">
        <div style="display:table-cell; width:7%;">button1</div>
        <div style="display:table-cell; width:7%;">button2</div>
        <div style="display:table-cell; width:65%;">button3</div>
        <div style="display:table-cell; width:7%;">button4</div>
        <div style="display:table-cell; width:7%;">button5</div>
        <div style="display:table-cell; width:7%;">button6</div>
    </div>
</div>

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签