-1

我有一个只有文本字段和一个按钮的表单。它们在同一行,首先是文本字段,然后是右侧的按钮。问题是,按钮会根据其上的标题进行扩展,并且文本字段必须填充其余的位置。为了实现这一点,我使用了这样的东西:

<html>
    <head>
        <style>
        #search_form {
        width:500px;
        }
        #search_button_container {
        float: right;
        }

        #search_field_container {
        overflow: hidden;
        }

        #search_field {
        width:92%;
        }

        </style>
    </head>
    <body>
        <form id="search_form">
        <div>
        <div id="search_button_container">
        <input type="submit" value="Search" id="search_submit" />
        </div>

        <div id="search_field_container">
        <input id="search_field" name="search_field" type="search" />                                       
        </div>                                  
       </div>                                                          
        </form>
    </body>
</html>

在此标记中,按钮是第一项,但由于页面上的 float=right 它位于右侧,这正是我想要的,但这会使 tabindex 顺序混乱。选项卡时,首先按钮将处于焦点,然后是文本字段,但我需要文本字段是第一个。

注意:我无法将 tabindex=1 添加到 textfield 并将 tabindex=2 添加到按钮,因为在此搜索表单之上和之外还有其他元素,并且 tabindex 必须从上到下移动。

是否有另一种方法可以按照我想要的方式定位元素或重新排序 tabindex。在我的情况下,最好的解决方案是使用另一种样式来达到预期的结果,但我不知道如何。

4

2 回答 2

1

CSS 表格使用与 HTML 表格相同的算法,只是从语义上讲它与 HTML 表格无关。它只是以相同的方式在视觉上呈现。

然后你可以有 2 个单元格,它们组合起来有 100% 的宽度,并且每个单元格的内容仍然可以适应彼此的长度。如果提交按钮更长,搜索输入会更短。

这是一个演示它的小提琴:http: //jsfiddle.net/4JvRV/1/
如果它在 Chrome 中不起作用,请告诉我。
兼容性:IE8+ IE7 的
后备方案:IE7 和 IE6 会看到更短的烧焦...错误的文本输入,恕我直言,完全可以接受。或者,如果您愿意,您可以决定拥有 100% 的宽度并将它们显示在 2 行上。

于 2012-04-16T22:21:44.727 回答
0

将按钮放在文本字段之后并将文本字段浮动到左侧。

于 2012-04-16T21:34:30.763 回答