Dojo BorderContainer レイアウト
Dojo に手を出し始めた。ので、API ドキュメントを確認しながら、少しずつつくっていこうかな。
ということで、先ずは、レイアウト。スタートラインとして、BorderContainer を試してみる。
BorderContainer
概要
- BorderContainer は、 style="width: 500px; height: 500px;"のように、サイズを指定するボックス
- region="center"(オプションで、"top"、"bottom"、"leading"、"trailing"、"left"、"right")でマークされた子ウィジェットを含むことができる
- 子要素は、幅および高さおよびオプションのスプリッター(ユーザーによりリサイズ可能)にあわせてレイアウトされる
- 残りのスペースは、center 領域のため使用される
- 外側のサイズはBorderContainer ノードを規定する。幅は、両側および高さを規定する
- centerのサイズを指定しないと、残りのスペースで埋められる
- "leading" および "traling" 領域は、"left"および"right"のどちらかのみ使用する
- 複雑なレイアウトの場合、複数の子要素を一つの領域に設定できる
- 子要素の layoutPrioryty(レイアウト優先度) フラグ はどの子供がより端に近い(レイアウト優先度が低い)か、より中心に近いか(レイアウト優先度が高い)を決定する
layoutPrioryty(レイアウト優先度)は、コントロールレイアウトの水平、垂直優先順位属性の代わりにも使用できる
例
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="js/dijit/themes/claro/claro.css"/>
<style type="text/css">
html, body {
width: 100%;
height: 100%;
margin: 0;
overflow:hidden;
}
#border_container{
width:100%;
height:100%;
}
</style>
<title></title>
</head>
<body class="claro">
<div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="gutters: true" id="border_container">
<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'top', splitter: true">
top
</div>
<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'leading', splitter: true" style="left: 100px;">
leading
</div>
<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'center', splitter: true">
contents
</div>
<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'trailing', splitter: true" style="left: 100px;">
trailing
</div>
<div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom', splitter: true">
bottom
</div>
</div>
<script src="js/dojo/dojo.js" djConfig="parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.addOnLoad(function(){
});
</script>
</body>
</html>
ふーん。
