No. | 名前 | 属性 | 所属 | 操作 |
---|---|---|---|---|
1 | あいうえお太郎 | 社畜 | 営業部 | |
1 | あいうえお太郎 | 社畜 | 営業部 |
/* overflow:scrollを使わないレスポンシブなtable */
<table class="table">
<thead class="text-center">
<tr class="row mx-0 d-flex d-sm-table-row align-items-center">
<th class="col-1 d-block d-sm-table-cell align-middle">No.</th>
<th class="col-11 d-block d-sm-table-cell align-middle">名前</th>
<th class="col-4 d-block d-sm-table-cell align-middle">属性</th>
<th class="col-4 d-block d-sm-table-cell align-middle">所属</th>
<th class="col-4 d-block d-sm-table-cell align-middle">操作</th>
</tr>
</thead>
<tbody>
<tr class="row mx-0 d-flex d-sm-table-row align-items-center">
<td class="col-1 d-block d-sm-table-cell text-center align-middle">1</td>
<td class="col-11 d-block d-sm-table-cell align-middle">あいうえお太郎</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle">社畜</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle">営業部</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle"><button class="btn btn-primary"
disabled>編集</button></td>
</tr>
<tr class="row mx-0 d-flex d-sm-table-row align-items-center">
<td class="col-1 d-block d-sm-table-cell text-center align-middle">1</td>
<td class="col-11 d-block d-sm-table-cell align-middle">あいうえお太郎</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle">社畜</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle">営業部</td>
<td class="col-4 d-block d-sm-table-cell text-center align-middle"><button class="btn btn-primary"
disabled>編集</button></td>
</tr>
</tbody>
</table>
/* Sass */
.table {
th,
td {
width: auto !important;
}
@include media-breakpoint-down(xs) {
td:nth-last-child(4)~td {
border-top: none;
}
thead {
tr {
border-bottom: 2px solid $gray-300;
}
th {
border-bottom: none;
}
}
}
}
@import "variables";
/* 色を足す @import "variables"の直後に書く */
$theme-colors: map-merge(('twitter': #53A7E8,
'facebook': #4064AD,
'tiktok': #F6305D), $theme-colors);
@import "mixins";
/* 文字サイズを足す */
$display5-size: 2rem !default;
$display6-size: 1.5rem !default;
$display7-size: 1rem !default;
$display5-weight: 300 !default;
$display6-weight: 300 !default;
$display7-weight: 300 !default;
.display-5 {
@include font-size($display5-size);
font-weight: $display5-weight;
line-height: $display-line-height;
}
.display-6 {
@include font-size($display6-size);
font-weight: $display6-weight;
line-height: $display-line-height;
}
.display-7 {
@include font-size($display7-size);
font-weight: $display7-weight;
line-height: $display-line-height;
}
@import "mixins";
/* @import "mixins"; より後ろ、@import "utilities";より前に書く*/
/*border-sm-top,border-md-0などを足す*/
$borders: top,
right,
bottom,
left;
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.border#{$infix} {
border: $border-width solid $border-color !important;
}
.border#{$infix}-0 {
border: 0 !important;
}
@each $border in $borders {
.border#{$infix}-#{$border} {
border-#{$border}: $border-width solid $border-color !important;
}
.border#{$infix}-#{$border}-0.border#{$infix}-#{$border}-0 {
border-#{$border}: 0 !important;
}
}
}
}
Ver4.2からの新機能です。m-n5のように「n」をつけるとマイナスになります。
<div class="row align-items-center">
<div class="col bg-light border">あ<br>い<br>う<br>え<br>お</div>
<div class="col border ml-n5 bg-primary text-white">このcolにネガティブマージンを設定している</div>
</div>
$('.modal').on('show.bs.modal', function (e) {
$('.modal').each(function (key, value) {
$(this).css('z-index', 1000 + key)
$(this).on('transitionstart', function () {
$('.modal-backdrop').each(function (key, value) {
$(this).css('z-index', 999 + key)
})
})
})
})
/* 横に開くCollapse */
@include media-breakpoint-up(sm) {
#collapseExample {
height: auto !important;
display: block !important;
transform: translateX(-100%);
transition: 0.35s transform;
&.show {
transform: translateX(0);
}
}
}
/* 1枚開いたらほかを閉じるCollapse */
<div class="row" id="collapseParent">
<div class="col-12 bg-light py-3 border" data-toggle="collapse" data-target="#collapseA" aria-expanded="false" aria-controls="collapseA">見出しA</div>
<div class="col-12 collapse" data-parent="#collapseParent" id="collapseA">
<div class="p-3">
見出しAをクリックしたらこれが開きます。
<br>見出しAをクリックしたらこれが開きます。
<br>見出しAをクリックしたらこれが開きます。
<br>見出しAをクリックしたらこれが開きます。
</div>
</div>
<div class="col-12 bg-light py-3 border" data-toggle="collapse" data-target="#collapseB" aria-expanded="false" aria-controls="collapseB">見出しB</div>
<div class="col-12 collapse" data-parent="#collapseParent" id="collapseB">
<div class="p-3">
見出しBをクリックしたらこれが開きます。
<br>見出しBをクリックしたらこれが開きます。
<br>見出しBをクリックしたらこれが開きます。
<br>見出しBをクリックしたらこれが開きます。
<br>
<br>
<br>
<br>見出しBをクリックしたらこれが開きます。
</div>
</div>
<div class="col-12 bg-light py-3 border" data-toggle="collapse" data-target="#collapseC" aria-expanded="false" aria-controls="collapseC">見出しC</div>
<div class="col-12 collapse" data-parent="#collapseParent" id="collapseC">
<div class="p-3">
見出しCをクリックしたらこれが開きます。
<br>見出しCをクリックしたらこれが開きます。
<br>見出しCをクリックしたらこれが開きます。
<br>
<br>
<br>見出しCをクリックしたらこれが開きます。
</div>
</div>
</div>
//動的に追加される要素でもtooltipを有効にする
var target = $('body').get(0);
var observer = new MutationObserver(function (records) {
$('[data-toggle="tooltip"]').tooltip()
})
observer.observe(target, {
childList: true,
subtree: true
});
//Popoverのcontentsを動的に生成した際に位置がずれるのを回避する
$('[data-toggle="popover"]').on('inserted.bs.popover', function () {
var $this = $(this)
var id = $this.attr('aria-describedby'); //これがPopover本体のID
//一旦表示されたPopoverは追加したクラスが残るので削除
$('#' + id).removeClass('popoverLoaded')
}).on('shown.bs.popover', function () {
var $this = $(this)
var id = $this.attr('aria-describedby'); //これがPopover本体のID
//たとえば、動的にコンテンツを追加しつつ親要素の色を取得してcontentsの文字色とする場合
var cls = $this.attr('class');
var clr = cls.match(/btn-(.+)/g);
var clr = clr[0].replace('btn-', '');
$('#' + id).find('.popover-body').addClass('text-' + clr).html('この文字はdata-contentではなく動的に追加されています。');
//位置を設定し直す
$(this).popover('update');
//表示完了クラスを追加
$('#' + id).addClass('popoverLoaded')
})
//CSS
/* Popoverの位置ずれ対策 */
div.popover {
opacity: 0 !important;
}
div.popover.popoverLoaded {
opacity: 1 !important;
}