[jQuery] DataTablesのページャーのレイアウトがずれる
現象
ページャーの数が増えると、最後の部分がズレる解決方法
styleシートを疑う
実際、コレだった…
いろんなページで使い回す用のstyel.cssを読み込んでいて、その中にul
とli
をなんかしててそれが原因だった。DataTablesのページャーもulとliでできていて、影響を受けていた
これからは絶対にクラス名を付けて使おう
ページャーオプションで表示形式変える
ページャー表示は、DataTablesの中でいくつかの種類が用意されているので、表示される要素の個数を減らす
DataTables pagingTypeはココ
pagingTypeの種類
numbers – Page number buttons only (1.10.8)
simple – 'Previous’ and 'Next’ buttons only
simple_numbers – 'Previous’ and 'Next’ buttons, plus page numbers (Default)
full – 'First’, 'Previous’, 'Next’ and 'Last’ buttons
full_numbers – 'First’, 'Previous’, 'Next’ and 'Last’ buttons, plus page numbers
first_last_numbers – 'First’ and 'Last’ buttons, plus page numbers
numbers – Page number buttons only (1.10.8)
simple – 'Previous’ and 'Next’ buttons only
simple_numbers – 'Previous’ and 'Next’ buttons, plus page numbers (Default)
full – 'First’, 'Previous’, 'Next’ and 'Last’ buttons
full_numbers – 'First’, 'Previous’, 'Next’ and 'Last’ buttons, plus page numbers
first_last_numbers – 'First’ and 'Last’ buttons, plus page numbers
ページャーオプションを使うと、こんな感じになる
See the Pen DataTables pagingType by AgoPeanuts (@AgoPeanuts) on CodePen.
ページャー領域の幅を変える
Bootstrap3と一緒にDataTablesを使用した場合、ページャー部分はBootstrapの<div class="col-sm-7">
で囲まれていてる。DOMをいじるオプションがあったので、ページャーの幅class="col-sm-7"
を変える
DataTables DOM positioningはココ
Bootstrap3では以下のような構造になっている
"<'row'<'col-sm-6'l><'col-sm-6'f>>" // <1ページあたりの表示行数>
"<'row'<'col-sm-12'tr>>" // <テーブル本体>
"<'row'<'col-sm-5'i><'col-sm-7'p>>" // <データ件数>
<ページャー>
DOMの構造を変えるときはこう書く
$('#example').dataTable( {
"dom": "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-3'i><'col-sm-9'p>>"
});
"<'row'<'col-sm-3'i><'col-sm-9'p>>"
だけ書いたら、ページャーがテーブルの上に移動して、もともとあったSearchボックスとか消えた
以上