我試圖在文本框旁邊放置一個向下的箭頭。將元素放在另一個旁邊?
我怎樣才能讓箱子緊貼地配合與輸入,使得它們的頂部和底部對齊?
必須是獲取位置信息的方法是JS/jQuery然後...什麼,我應該絕對定位它?
編輯:明白了pretty darn close我怎麼想。它在IE8中仍然有點...無論如何,我可以推動它?
我試圖在文本框旁邊放置一個向下的箭頭。將元素放在另一個旁邊?
我怎樣才能讓箱子緊貼地配合與輸入,使得它們的頂部和底部對齊?
必須是獲取位置信息的方法是JS/jQuery然後...什麼,我應該絕對定位它?
編輯:明白了pretty darn close我怎麼想。它在IE8中仍然有點...無論如何,我可以推動它?
這絕對不是應該要求JavaScript的東西。
我的第一個建議是嘗試使用button
或input[type=button]
元素,而不是跨度,我總是有更好的運氣排列與假的真實按鈕的文本框。
這是我看到的時候我的元素轉換爲按鈕:
它不是一個完美的解決方案,但也有一些小的調整,以按鈕和文本框的樣式,你應該能夠使這行得通。請注意,不同的瀏覽器使用不同的默認樣式來呈現表單小部件,因此很難提供一個通用的解決方案,請注意文本框邊框的差異。
所不同的是在你原來的例子更富戲劇性:
你一定會想自定義樣式應用到文本框,以獲得一致的和可預見的結果。
不,它不需要* JS,但我想使用JS,因爲我正在動態添加箭頭。逐步增強。對我來說仍然不夠好:\希望我能更接近它。 – mpen 2010-10-21 03:17:59
@Mark,漸進增強並不意味着您必須在佈局中完成所有樣式。事實上,我會說這是最常見的做法。即使漸進式增強,一個理智的開發人員不會使用CSS的唯一時間就是他們使用絕對定位或補償瀏覽器不兼容問題。 – mikerobi 2010-10-21 03:27:07
我想我不會控制文本框的樣式,因此我必須使用JS來匹配至少*某些樣式,例如框的高度。事後看來,大多數插件都會讓你自定義CSS,使其變得非常漂亮。你是對的。 – mpen 2010-10-21 04:04:59
.cb-arrow {
cursor: pointer;
background: -moz-linear-gradient(center top,
rgb(242, 242, 242) 0%,
rgb(221, 221, 221) 50%,
rgb(207, 207, 207) 100%)
repeat scroll 0% 0% transparent;
border: 1px solid #707070;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 3px;
padding: 0 3px;
margin-left:-5px
}
.combobox { border:1px solid #BBB; padding:2px 2px 1px 2px; margin:0 }
不是最漂亮的解決方案,但將工作。
//編輯:版本二
廢料的JavaScript(現在)。添加一個容器。看起來一切都很好,在一致的FF和Chrome:
HTML:
<div id='container'>
<input type="text" class="combobox" />
<button type='button' class='cb-arrow'>▼</button>
</div>
CSS:
#container { height:20px;line-height:20px }
.cb-arrow {
border: 1px solid #707070;
background:white;
margin:0;
padding:0;
margin-left:-5px;
vertical-align:middle;
}
.combobox {
border:1px solid gray;
border-right:0;
vertical-align:middle;
padding:1px
}
似乎在IE和FF工作。我沒有鉻。
<style>
#container *
{
border: 1px solid black;
float:left;
margin:0;
padding:0;
}
#container .cb-arrow
{
height:22px;
line-height:22px;
width:20px;
}
#container .combobox
{
border-right:0px;
height:20px;
line-height:20px;
}
</style>
<div id='container'>
<input type="text" class="combobox" />
<button type='button' class='cb-arrow'>▼</button>
</div>
FYI:谷歌的主頁在搜索按鈕旁邊的文本字段的方式是你想要的。 – akonsu 2010-10-21 02:15:23
@akonsu,而不是我的谷歌 – mikerobi 2010-10-21 02:16:29
如果您在搜索框中鍵入內容,它會顯示結果列表,而列表頂部是帶有按鈕的文本字段。 – akonsu 2010-10-21 02:21:23