今天我在使用Select2插件時遇到了一個看似簡單的樣式任務,但似乎我想要實現的事情比我想象的要困難得多。這是我想要做的:如何將複雜樣式應用於Select2組件的選擇?
用戶應該能夠從下拉菜單中選擇一個聯繫人。每個聯繫人條目應顯示爲聯繫人的個人資料圖片和其旁邊的一些數據。摺疊後,下拉框應在其旁邊顯示選定的聯繫人(即所選聯繫人的個人資料圖片及其旁邊的一些數據),並在其旁邊顯示「下拉三角形」。在展開狀態下,下拉菜單應另外顯示其他聯繫人,每個聯繫人都有個人資料圖片和數據。簡單地說,我想按照the select2 example page上的「模板」示例中所述進行模板化,只是使用更復雜的佈局(左側的配置文件圖片以及圖片旁邊的三行堆疊文本)。
我設法通過formatResult
選擇2選項,使用格式功能,它包裝在風格的div元素(請注意,我使用Twitter的引導的「媒體」 CSS類的圖像和數據所需的樣式應用到結果造型):
function formatContactResult(item) {
if(!item.id)
return "No contact selected";
var contact = JSON.parse(item.text);
return "<div class='media'><a class='pull-left' href='#'><img style='margin-top: 5px;' class='media-object' data-src='holder.js/64x64' src='" + contact.thumbUrl + "' /></a><div class='media-body' style='font-size: 11px;'><strong>" + contact.displayName + "</strong><br />" + contact.jobTitle + "</div></div>"
};
我的問題:我無法弄清楚如何這樣的應用複雜的佈局到選擇。我知道formatSelection
選項,但formatSelection
函數的返回值包含在span
元素中,該元素對於複雜佈局不是合適的包裝。儘管我知道這是無效的,但我試圖應用上面提到的相同的佈局函數,但是這樣會導致奇怪的結果(所需的佈局被推到最右邊)。
有沒有人有關於如何使用select2實現所述佈局的線索?
如果有任何興趣,我使用Select2插件與Knockout.js和Twitter Bootstrap。
任何機會,你有沒有做過任何樣式的文本與select2?我一直在嘗試更改font-size屬性,但即使在編輯CSS之後,我也無法獲得處於下拉狀態下的select2容器內的文本句柄。有什麼建議麼? – Ace 2013-05-03 17:39:05
是的,我已經能夠設置文本樣式。對於我來說,只需在上面提到的'.innerDiv' CSS類中加入'font-size:10px!important;'即可。當然,你必須檢查你的文本風格是否被任何其他(嵌套)元素覆蓋,這些元素也可能有重要的樣式定義或內聯樣式定義。 – MichaelB 2013-05-07 10:53:16
非常感謝。 – Ace 2013-05-13 15:48:00