【发布时间】:2012-03-27 20:28:32
【问题描述】:
我在网页上显示选择元素时遇到了一点问题。我试图将一个选择元素显示为文本流的一部分,这样用户就不会注意到它实际上是一个选择元素(除了下面的边框)。它应该像一个普通的单词一样。目前我有这个 HTML 代码:
<form method="get" action="population.php">
<p>Just show me information about only: <select name="f"><option>a</option><option>b</option></select>.</p>
</form>
有了这个 CSS 代码:
form {
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
form select {
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
width: auto;
border: 0px solid #FFFFFF;
border-bottom: 1px solid #2C5E93;
font-family: inherit;
font-size: inherit;
display: inline;
}
此代码不起作用。它应该像我在下面放的第一张图片。但是,在 Safari 中,选择项被强制进入该行的第一项,因此选择元素位于“仅:”之前(下面的第二张图片)。另一方面,在 Firefox 中,选择元素被完全放在一个新行中。
有谁知道如何解决这个问题?感谢正手!
【问题讨论】:
-
我会在带有表单控件的表单中使用真实标签...但是您的表单周围是什么?文本所在的容器有多宽?你说 Firefox 正在创建一个新行...这是因为文本换行吗?
-
嗯,好主意!我的表单被一个宽度为 240 像素的 div 包围。文字确实在换行。但是,即使我使用带有选择项的标签,它仍然不起作用:在 Safari 中,一旦文本换行,选择元素就会被强制到行的第一项。在 Camino 中,选择元素被放入新行。当我将 select 元素放在标签之后时,select 元素会在两个浏览器中都放在一个新行上......你知道我该如何解决这个问题吗?
-
我认为你需要更新你的代码,给我们更多的周边元素。每当我写一个表单时,在我添加 CSS 之前,标签自然会在选择和其他输入旁边......默认情况下不会创建换行符,并且大多数浏览器似乎都会制作输入/等内联块(或内联)。所以也许一些更多的 HTML 和相关的 CSS,或者 JS 小提琴......会有所帮助。