BS3 Popovers
簡介
BS3 的 popover 是一個擴充自 BS3 tooltip 的介面元件,在使用上和 BS3 的 tooltip 非常類示。popover 具有和 tooltip 不同的預設底色和字體的顏色;擴充的部份是將顯示的資訊內容分成「標題」和「內容」兩部份,以顯示更多的資訊;另外,popover 的箭頭也會依顯示位置和介面元件的相對位置做調整。tooltip 比較偏向「提示」介面元件的作用或功能,而 popover 比較偏向「解釋」介面元件具有的額外資訊和使用的方式。標題的內容來自 HTML 標記中 title
的屬性值(此為預設),或以 data-title
的自訂屬性值替代,(如果同時設定 title 屬性的值,則優先以 title 的值做為 popover 標題)。自訂屬性 data-content
的值則做為 popover 的內容。其於各自訂屬性所代表的意義和用法都和 tooltip 相同。和 tooltip 相同,因為執行效率的考量,popover 也必須透過 Javascript 程式來啟動。
以下為一些 popover 比較基本的 data-*
自訂屬性,及其允許值:
- data-toggle
- data-toggle 的值在 popover 元件中一定得設定為 "popover"。
- data-placement
- 指定 popover 要出現的位置。其值可以是 top(預設值), right, bottom, left 及 auto,其中 auto 就是讓流覽器自行決定 popover 顯示的位置。
- data-trigger
- 指定 popover 顯示的方式,可以組合使用,組合使用時,在字串值中用空白字元將各條件分隔。允許值如下:
- hover
- 這是預設值,當游標移到元件上方時顯示 popover,移出時取消 popover。
- focus
- 當元件取得焦點時顯示 popover,失去焦點時取消 popover。當點按元件時,元件會自動取得焦點,也會顯 popover,在元件外部點按時,元件會使去焦點,同時取消 popover。
- click
- 點按元件時,顯示 popover,再次點按元件時取消 popover。
- manual
- 這個值實際上指的是透過 Javascript 程式來控制 popover 的顯示和取消。
以下為 BS3 V3.3.6 中 bootstrsp.css 樣式表中與 .popover 相關的樣式類別定義。
.popover.top { margin-top: -10px; } .popover.right { margin-left: 10px; } .popover.bottom { margin-top: 10px; } .popover.left { margin-left: -10px; } .popover-title { padding: 8px 14px; margin: 0; font-size: 14px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; border-radius: 5px 5px 0 0; } .popover-content { padding: 9px 14px; } .popover > .arrow, .popover > .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover > .arrow { border-width: 11px; } .popover > .arrow:after { content: ""; border-width: 10px; } .popover.top > .arrow { bottom: -11px; left: 50%; margin-left: -11px; border-top-color: #999; border-top-color: rgba(0, 0, 0, .25); border-bottom-width: 0; } .popover.top > .arrow:after { bottom: 1px; margin-left: -10px; content: " "; border-top-color: #fff; border-bottom-width: 0; } .popover.right > .arrow { top: 50%; left: -11px; margin-top: -11px; border-right-color: #999; border-right-color: rgba(0, 0, 0, .25); border-left-width: 0; } .popover.right > .arrow:after { bottom: -10px; left: 1px; content: " "; border-right-color: #fff; border-left-width: 0; } .popover.bottom > .arrow { top: -11px; left: 50%; margin-left: -11px; border-top-width: 0; border-bottom-color: #999; border-bottom-color: rgba(0, 0, 0, .25); } .popover.bottom > .arrow:after { top: 1px; margin-left: -10px; content: " "; border-top-width: 0; border-bottom-color: #fff; } .popover.left > .arrow { top: 50%; right: -11px; margin-top: -11px; border-right-width: 0; border-left-color: #999; border-left-color: rgba(0, 0, 0, .25); } .popover.left > .arrow:after { right: 1px; bottom: -10px; content: " "; border-right-width: 0; border-left-color: #fff; }
範例
範例中建立了四個按鈕,按鈕標示 popover 出現的的位置。點按按鈕時出現 popover,再次點按則取消 popover。
CSS
<style> html { width:100%; height:100%; } body { margin: 0 auto; max-width: 900px; padding: 20px; } #demo { width:100%; padding: 200px; } </style>
#demo{} 樣式設定將介面元件移至螢幕中央,以便 popover 有足夠的空間顯示。
HTML
<body> </body>
HTML 中建立四個按鈕,各在不同的方位顯示 popover。程式碼相當簡單,就不多做解釋了。
Script
<script> $(function(){ $(document).ready(function(){ $('[data-toggle="popover"]').popover(); }); }); </script>
第 4 行透過 [data-toggle="popover"] 篩選條件啟動 popover。
沒有留言:
張貼留言