デファクトスタンダードなCSSフレームワーク。 2018年1月18日に現在のBootstrap4がリリースされました

Bootstrapのヘルパー部品ライブラリ Smoke

● Bootstrapのヘルパー部品ライブラリ Smoke

http://alfredobarron.github.io/smoke/

・アラート(表示後 xx秒で自動的に消えるやつ + 消すボタン付き)
・確認ダイアログ
・パネル(折りたたみ、フルスクリーン)
・パスワードを隠す、表示する
・(あまり使いませんが)フォームバリデーション

などがあります。

No.1366
11/16 19:02

edit

Bootstrap4でブロック要素を中央表示

● Bootstrap4でブロック要素を中央表示

<div class="mx-auto" style="width: 200px;">
  Centered element
</div>

https://v4-alpha.getbootstrap.com/utilities/spacing/#horizontal-centering

● Bootstrap3でブロック要素を中央表示

<div class="center-block">
  Centered element
</div>
No.1358
11/13 13:42

edit

Bootstrap4でテーブルを角丸表示させる

● Bootstrap4でテーブルを角丸表示させる

cssクラス table_border_radius を作成してテーブルに割り当てます。

<table class="table table-bordered table_border_radius">
	<tr>
		<td>TEST</td>
		<td>テストデータです。</td>
		<td>テストデータです。</td>
	</tr>
	<tr>
		<td>TEST</td>
		<td>テストデータです。</td>
		<td>テストデータです。</td>
	</tr>
	<tr>
		<td>TEST</td>
		<td>テストデータです。</td>
		<td>テストデータです。</td>
	</tr>
</table>

Bootstrap4でテーブルを角丸表示させるCSS

.table_border_radius {
  border: 1px solid red;
  border-radius: 5px;
  border-spacing: 0;
  border-collapse: separate;
}
.table_border_radius tr td {
	border: none;
	border-bottom: 1px solid black;
	border-right: 1px solid black;
}
.table_border_radius tr td:first-child {
  border-left: none;
}
.table_border_radius tr td:last-child {
  border-right: none;
}
.table_border_radius tr:first-child td {
  border-top: none;
}
.table_border_radius tr:last-child td {
  border-bottom: none;
}
TEST テストデータです。 テストデータです。
TEST テストデータです。 テストデータです。
TEST テストデータです。 テストデータです。
No.1327
10/27 22:48

edit

Bootstrap カルーセル(画像スライド)のデモ

Bootstrap3 カルーセルのデモはこちら

● html

  <div id="sampleCarousel" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
      <li class="active" data-target="#sampleCarousel" data-slide-to="0"></li>
      <li data-target="#sampleCarousel" data-slide-to="1"></li>
      <li data-target="#sampleCarousel" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner" role="listbox">
      <div class="item active">
        <img src="./001.jpg" alt="写真1">
      </div>
      <div class="item">
        <img src="./002.jpg" alt="写真1">
      </div>
      <div class="item">
        <img src="./003.jpg" alt="写真1">
      </div>
    </div>
    <a class="left carousel-control" href="#sampleCarousel" role="button" data-slide="prev">
		<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
		<span class="sr-only">前へ</span>
	</a>
    <a class="right carousel-control" href="#sampleCarousel" role="button" data-slide="next">
		<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
		<span class="sr-only">次へ</span>
	</a>
  </div>

● JavaScript からカルーセルを操作する

  // スライドの停止
  function stop_slide() {
    jQuery('#sampleCarousel').carousel('pause');
    alert('スライドを停止しました');
  }

  // 任意の画像へ移動
  function carousel_move(no) {
    jQuery('#sampleCarousel').carousel(no);
  }
No.1191
10/27 22:50

edit

画像

BootstrapのCSSスタイルを<div>タグの中にだけ適用する

● BootstrapのCSSスタイルを<div>タグの中にだけ適用する

既存の 非bootstrap 環境で作成されたwebサイトに対し、後から Bootstrapの部品を入れたい場合があります。
この時<head>タグでbootstrapを読み込んでしまうと<body>タグ全体に Bootstrapのcssスタイルが適用され 、グローバルナビゲーションなどのレイアウトが崩れる可能性があります。

そこで任意のクラス内だけbootstrapのcssstyleを適用できれば既存のナビゲーションが崩れることはありません

こちらにとても簡単な方法で クラス内だけ Bootstrap を適用する方法を採用されている方がいます
特定のdiv要素の中だけBootstrapを適用する - Qiita

考え方としてはとてもシンプルで scss で任意のクラスを作成してその中に bootstrap.css を全部取り込んでしまうというやり方です。
(賢いですね。やり方はこちら ↓ )

● BootstrapのCSSスタイルを<div>タグの中にだけ適用する方法(手っ取り早くする場合)

1. mybootstrap.css をダウンロードする。

https://pgmemo.tokyo/data/filedir/1178_1.css?975

2. mybootstrap.css を htmlから読み込んで適用する

これで bootstrapクラス内だけ Bootstrapのcssが適用されます。

<div class="bootstrap">
・・・・・・・・・・
</div>

● BootstrapのCSSスタイルを<div>タグの中にだけ適用する方法(自分でコンパイルする場合)

1. bootstrap.css をダウンロードする。

2. bootstrap.css を bootstrap.scss にリネームする

mv  bootstrap.css  bootstrap.scss

3. mybootstrap.scss を作成する。

下記の内容で mybootstrap.scss を作成します。

.bootstrap {
  @import "bootstrap"
}

4. mybootstrap.scss をコンパイルする。

・scssファイルをコンパイルする「node-sass」 をインストールします。

npm install -g node-sass

・mybootstrap.scss をコンパイルします。

node-sass my_bootstrap.scss my_bootstrap.css 

5. mybootstrap.css を htmlから読み込んで適用する

これで bootstrapクラス内だけ Bootstrapのcssが適用されます。

<div class="bootstrap">
・・・・・・・・・・
</div>
添付ファイル1
No.1178
10/27 22:52

edit

添付ファイル

css
sass

bootstrapのタブをcookieに記憶させる。URLの #tab1 などでタブを切り替える。

● bootstrapのタブをcookieに記憶させる

bootstrapのタブはそのページをリロードしたり次のページに行って戻ってきたりするとデフォルトの状態に戻されています。
次のようにしてそこでクッキーに保存してタグの状態を記憶させるようにします。

ファイル bootstrap_save_tab.js を次のような内容で保存する

/**
 * Handles 'Bootstrap' package.
 *
 * @namespace bootstrap_
 */

/**
 * @var {String}
 */
var bootstrap_uri_to_tab_key = 'bootstrap_uri_to_tab';

/**
 * @return {String}
 */
function bootstrap_get_uri()
{
    return window.location.href;
}

/**
 * @return {Object}
 */
function bootstrap_load_tab_data()
{
    var uriToTab = localStorage.getItem(bootstrap_uri_to_tab_key);
    if (uriToTab) {
    try {
        uriToTab = JSON.parse(uriToTab);
        if (typeof uriToTab != 'object') {
        uriToTab = {};
        }
    } catch (err) {
        uriToTab = {};
    }
    } else {
    uriToTab = {};
    }
    return uriToTab;
}

/**
 * @param {Object} data
 */
function bootstrap_save_tab_data(data)
{
    localStorage.setItem(bootstrap_uri_to_tab_key, JSON.stringify(data));
}

/**
 * @param {String} href
 */
function bootstrap_save_tab(href)
{
    var uri = bootstrap_get_uri();
    var uriToTab = bootstrap_load_tab_data();
    uriToTab[uri] = href;
    bootstrap_save_tab_data(uriToTab);
}

/**
 *
 */
function bootstrap_restore_tab()
{
    var uri = bootstrap_get_uri();
    var uriToTab = bootstrap_load_tab_data();
    if (uriToTab.hasOwnProperty(uri) &&
    $('[href="' + uriToTab[uri] + '"]').length) {
    } else {
    uriToTab[uri] = $('a[data-toggle="tab"]:first').attr('href');
    }
    if (uriToTab[uri]) {
        $('[href="' + uriToTab[uri] + '"]').tab('show');
    }
}

$(document).ready(function() {

    if ($('.nav-tabs').length) {

    // for bootstrap 3 use 'shown.bs.tab', for bootstrap 2 use 'shown' in the next line
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        bootstrap_save_tab($(this).attr('href'));
    });
    bootstrap_restore_tab();

    }

});

bootstrap.min.js , jquery.cookie.min.js とともに読み込ませます

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script src="./bootstrap_save_tab.js"></script>

以上です。 これだけでbootstrapを使ったページのタブを自動的に記憶してくれるようになります。

● URLの最後の #tab1 などでタブを切り替える

URLの最後の #tab1 などでタブを切り替えるには 次のようにします

html

<ul class="nav nav-tabs">
	<li ><a id="id_tab1" href="#tab1primary" data-toggle="tab">タブ1</a></li>
	<li><a id="id_tab2" href="#tab2primary" data-toggle="tab">タブ2</a></li>
	<li><a id="id_tab3" href="#tab3primary" data-toggle="tab">タブ3</a></li>
	<li><a id="id_tab4" href="#tab4primary" data-toggle="tab">タブ4</a></li>
</ul>

javascript

$(function(){
	if (location.hash == '#tab1'){
		setTimeout( function() {
			$('.nav-tabs a[href="#tab1primary"]').tab('show');
		}, 500 );
	} else if (location.hash == '#tab2'){
		setTimeout( function() {
			$('.nav-tabs a[href="#tab2primary"]').tab('show');
		}, 500 );
	} else if (location.hash == '#tab3'){
		setTimeout( function() {
			$('.nav-tabs a[href="#tab3primary"]').tab('show');
		}, 500 );
	} else if (location.hash == '#tab4'){
		setTimeout( function() {
			$('.nav-tabs a[href="#tab4primary"]').tab('show');
		}, 500 );
	}
});
No.1144
11/14 11:22

edit

Cookie
Bootstrap

Bootstrap4のメディアクエリ

Bootstrap4を使用しているサイトでメディアクエリを追加する場合の記述は以下のようになります。

Bootstrapではデフォルトで次のように画面サイズが決められています

識別子 画面サイズ デバイス
xs 575px以下 モバイル(縦向き)
sm 576px 〜 767px モバイル(横向き)
md 768px 〜 991px タブレット
lg 992px 〜 1199px PC
xl 1200px 以上 PC(大画面)

cssのメディアクエリは次のように記述します。

@media (max-width: 575.98px) {
	.my-class {
		// cssプロパティをここに記述
	}
}

@media (min-width: 576px) and (max-width: 767.98px) {
	.my-class {
		// cssプロパティをここに記述
	}
}

@media (min-width: 768px) and (max-width: 991.98px) {
	.my-class {
		// cssプロパティをここに記述
	}	
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	.my-class {
		// cssプロパティをここに記述
	}	
}

@media (min-width: 1200px) {
	.my-class {
		// cssプロパティをここに記述
	}	
}
No.990
11/14 11:22

edit

Bootstrap