便利過ぎる弊害?
状態:-
閲覧数:2,563
投稿日:2012-01-19
更新日:2014-05-12
どの立ち位置で利用するかにもよるかと思うが、CSSを知らずにいきなり「Twitter Bootstrap」を始めてしまうと、考えようによっては成長を妨げてしまう可能性もある
・世の中で「フレームワーク」と銘打たれているものは、何でも簡単に操作できるようになっている
・「Twitter Bootstrap」に限らず、「Ruby on Rails」「Cake PHP」など、プログラム系フレームワークもまた然り
・「簡単に操作できる」=「素晴らしい」のだが、あまりに便利過ぎることによる弊害も当然有り得る
フロートを知らなくても良い?
・例えば、「フロートを意識することなくレイアウトを組める」=「フロート」を知らないままコーディングし続ける可能性もある
フレームワークはどのタイミングで学習すれば良いの?
・初めから「フレームワーク」を使った方が良い、って人もいるし、基本を理解するまでは「フレームワーク」を使わない人が良い、って人もいる
・千差万別なので一概には言えない
・世の中で「フレームワーク」と銘打たれているものは、何でも簡単に操作できるようになっている
・「Twitter Bootstrap」に限らず、「Ruby on Rails」「Cake PHP」など、プログラム系フレームワークもまた然り
・「簡単に操作できる」=「素晴らしい」のだが、あまりに便利過ぎることによる弊害も当然有り得る
フロートを知らなくても良い?
・例えば、「フロートを意識することなくレイアウトを組める」=「フロート」を知らないままコーディングし続ける可能性もある
フレームワークはどのタイミングで学習すれば良いの?
・初めから「フレームワーク」を使った方が良い、って人もいるし、基本を理解するまでは「フレームワーク」を使わない人が良い、って人もいる
・千差万別なので一概には言えない
Twitter Bootstrap (v2.0)の基礎
一覧
1.Bootstrap読込
・「bootstrap.css」ではなく、圧縮版の「bootstrap.min.css」を読み込む
・「bootstrap.min.js」は、</body>タグ直前での読込が推奨されている
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Twitter Bootstrapの練習</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
2.段組
・計12となるように組む
・入れ子の場合は、外枠の数字に合わせる。6+2=8
<div class="row">
<div class="span4" id="sidebar" style="background-color:green;">サイドバー</div>
<div class="span8" id="main" style="background-color:red;">
<div class="row">
<div class="span2">aaaa</div>
<div class="span6">bbbb</div>
</div>
</div>
</div>
・オフセット込みで計12
<div class="row">
<div class="span5">
</div>
<div class="span6 offset1">
</div>
</div>
オフセット(offset)とは?
・「基準となるある点からの相対的な位置のことで、メモリやファイルなどアドレスで位置指定可能な様々な対象について相対位置を示すのに使われる」一般用語
・予め指定された数値だけ、margin-leftされる
3.流動的なレイアウト(fluid-layout)… グリッドレイアウトの応用
<div class="container">
<div class="row">
↓
<div class="container-fluid">
<div class="row-fluid">
4.レスポンシブデザイン
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet">
<body>
<div class="container">
<div class="row">
5.テーブル
<table class="table table-striped table-bordered table-condensed">
・「table-condensed」はコンパクトにする。余白部分を小さくして、高さを低くする
・背景に色がついてると、テーブル交互色が微妙になる
↓
CSSで変更可
.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {
background-color: #fff0f5 !important;
}
.table-striped tbody tr:nth-child(even) td, .table-striped tbody tr:nth-child(even) th {
background-color: #FFFFFF !important;
}
<alertの中にテーブルを入れた例>
.alert table.table-striped tbody tr:nth-child(even) td, .table-striped tbody tr:nth-child(even) th {
background-color: #FFFFFF !important;
}
.alert-info table th {
background-color: #87ceeb !important;
}
.alert-info table.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {
background-color: #f0f8ff !important;
}
.alert-error table a {
color: #c71585 !important;
}
.alert-error table th {
background-color: #ffc0cb !important;
}
.alert-error table.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {
background-color: #fff0f5 !important;
}
6.ボタン
<span class="btn btn-large">OK!</span>
<span class="btn btn-small btn-primary">OK!</span>
<span class="btn btn-info">OK!</span>
<span class="btn btn-success">OK!</span>
<span class="btn btn-warning">OK!</span>
<span class="btn btn-danger">OK!</span>
7.ボタングループ
<div class="btn-group">
<button class="btn">Option 1</button>
<button class="btn"><i class="icon-search"></i> Option 2</button>
<button class="btn">Option 3</button>
</div>
8.ドロップダウン付きのボタン
<div class="btn-group">
[url=#" class="btn dropdown-toggle" data-toggle="dropdown]Action <span class="caret"></span>[/url]
<ul class="dropdown-menu">
<li>[url=#]Option 1[/url]</li>
<li>[url=#]Option 2[/url]</li>
<li class="divider"></li>
<li>[url=#]Option 3[/url]</li>
</ul>
</div>
9.タブメニュー
タブは、上右下左方向へ作成可能
<div class="tabbale tabs-below">
<div class="tab-content">
<div id="menu1" class="tab-pane active">M1</div>
<div id="menu2" class="tab-pane">M2</div>
<div id="menu3" class="tab-pane">M3</div>
</div>
<ul class="nav nav-tabs">
<li class="active">[url=#menu1" data-toggle="tab]Menu1[/url]</li>
<li>[url=#menu2" data-toggle="tab]Menu2[/url]</li>
<li>[url=#menu3" data-toggle="tab]Menu3[/url]</li>
</ul>
</div>
10.アラートメッセージ表示&消去
<div class="alert alert-error fade in">
<a class="close" data-dismiss="alert">x[/url]
更新しました!
</div>
<div class="alert alert-success">
更新しました!
</div>
<div class="alert alert-info">
更新しました!
</div>
11.プログレスバー
書き方だけ。数字をjsで動的に変えないと、このままではあまり意味がないかも
12.ページナビゲーション
<div class="pagination">
<ul>
<li>[url=前へ]前へ[/url]</li>
<li class="active">[url=1]1[/url]</li>
<li>[url=2]2[/url]</li>
<li class="disabled">[url=...]...[/url]</li>
<li>[url=5]5[/url]</li>
<li>[url=次へ]次へ[/url]</li>
</ul>
</div>
13.ナビゲーションバー周り
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="">Dotinstall[/url]
<ul class="nav">
<li class="active">[url=Home]Home[/url]</li>
<li>[url=レッスン一覧]レッスン一覧[/url]</li>
</ul>
<form class="navbar-search pull-left">
<input type="text" class="search-query" placeholder="search">
</form>
<ul class="nav pull-right">
<li class="dropdown">
[url=#" class="dropdown-toggle" data-toggle="dropdown]
My Account
<span class="caret"></span>
[/url]
<ul class="dropdown-menu">
<li>[url=LINK]LINK[/url]</li>
<li>[url=LINK]LINK[/url]</li>
<li>[url=LINK]LINK[/url]</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
14.モーダルウィンドウ
モーダルウィンドウ(英: Modal window)は、何らかのウィンドウの子ウィンドウとして生成され、ユーザーがそれに対して適切に応答しない限り、制御を親ウィンドウに戻さないユーザインタフェース設計になっているもの。
「Lightbox風モーダルウィンドウ」の使い方が紹介されている。
15.ツールチップ
[url=#" rel="tooltip" data-original-title="金色のモビルスーツ!]百式[/url]はいいね!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
$(function() {
$('a[rel=tooltip]').tooltip();
});
</script>
16.ポップオーバー
[url=#" rel="popover" data-original-title="金色のモビルスーツ!" data-content="シャアがのっていた!]百式[/url]はいいね!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
$(function() {
$('a[rel=popover]').popover();
});
</script>
17.入力時に候補表示
typeaheadプラグイン利用
<input type="text" class="span3" data-provide="typeahead" data-items="3" data-source='["渋谷","谷尾","谷口","谷田","田口]'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
レスポンシブの入れ子は、小数点には対応していない
Twitter Bootstrapのグリッド機能は、dl dt にも対応している
「class="table table-striped"」は、テーブルオプションなので、リストには適用出来ない
・UL要素に、「class="table table-striped"」を無理やり付与しても、背景交互色にならなかったので、メモ
▽CSSのみで交互色 … リスト | 「CSS」カテゴリー | Design0
・それにしても、「Twitter Bootstrap」ばかりやってると、(全部やってくれるので、)cssとか分かんなくなるよね
▽CSSのみで交互色 … リスト | 「CSS」カテゴリー | Design0
・それにしても、「Twitter Bootstrap」ばかりやってると、(全部やってくれるので、)cssとか分かんなくなるよね