aardio 文档

aardio 范例: 浏览器伸缩盒与HTMLayout布局语法对比

//伸缩盒
import win.ui;
/*DSG{{*/
var winform = win.form(text="浏览器伸缩盒与HTMLayout布局语法对比";right=759;bottom=469)
winform.add()
/*}}*/

import web.layout;
var wbLayout = web.layout(winform)

import process;
wbLayout.sinking = {
    onHyperlinkClick = function (ltTarget,ltEle,reason,behaviorParams) {
        process.openUrl(ltTarget.href);
        return true;
    }
}

wbLayout.html = /** 
<html><head>
<title>浏览器伸缩盒与 HTMLayout 布局语法对比</title>
<style>
div.section {
    margin: 1em;
}

div.section > div {
    font: 10pt Verdana, sans-serif;
    padding: 1em;
    text-align: center; 
    width: 30%
}

div.section > pre {
    padding: 1em;
    border: thin solid #ddd;
    height: *
}

div.section > :nth-child(1) {
    background: #eff;
    width: 30%
}

div.section > :nth-child(2) {
    background: #ffe;
    width: 30%
}

div.section > .parent {
    border: thin solid #888;
}

div.section > .parent > .child {
    font-size: 28px;
    border: thin solid #bbb;
    text-align: center;
    background: gold;
}

div.section div {
}

div.section {
    flow: horizontal;
}

div.section > * {
    width: 1*;
    margin: 1em;
}

#A .parent {
    flow: horizontal;
}

#B .parent {
    flow: vertical;
}

#C .parent {
    flow: h-flow;
}

#C .parent .child {
    width: 40%;
}

#D .parent {
    flow: horizontal;
    border-spacing: *;
}

#E .parent {
    flow: horizontal;
    height: *;
}

#E .child {
    height: *;
    width: 40px
}

#E .child:nth-child(3) {
    height: 80px;
}

#F .parent {
    flow: horizontal;
    height: *;
}

#F .child {
    margin-top: *;
    margin-bottom: *;
}

#F .child:nth-child(3) {
    margin-top: 0;
    margin-bottom: *;
}

#G .parent {
    flow: horizontal;
}

#G .child {
    height: *;
    width: 40px
}

#G .child:nth-child(3) {
    width: *;
}
        </style>
    </head>
    <body>

<h1>浏览器 <code>display:flex</code> 与 HTMLayout/Sciter 布局语法 <code>flow/flex</code> 对比</h1>
<a href="http://bbs.aardio.com/forum.php?mod=viewthread&tid=7159">参考:HTMLayout布局教程</a>
<div .section id="header">
  <div>浏览器: Flexbox </div>
  <div>HTMLayout/Sciter: flow/flex</div>
  <div>演示</div>
</div>

<h5>水平布局</h5>
<div .section id="A">
  <pre>.parent { 
  display:flex; 
  flex-direction: row; 
}</pre>
  <pre>.parent { flow:horizontal; }</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>

<h5>垂直布局</h5>
<div .section id="B">
  <pre>.parent { 
  display:flex; 
  flex-direction: column; 
}</pre>
  <pre>.parent { flow:vertical; }</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>

<h5>水平流式布局</h5>
<div .section id="C">
  <pre>.parent { 
  display: flex; 
  flex-wrap: wrap; 
}
.child { 
  width:40%; 
} </pre>
  <pre>.parent { 
  flow:h-flow; 
}
.child { 
  width:40%; 
}</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>

<h5>水平布局,并平分间距</h5>
<div .section id="D">
  <pre>.parent { 
  display:flex; 
  flex-direction: row; 
  justify-content: space-between; 
}</pre>
  <pre>.parent { 
  flow:horizontal; 
  border-spacing:*; 
}</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>

<h5>水平布局,高度自适应</h5>
<div .section id="E">
  <pre>.parent { 
  display:flex; 
  flex-direction: row; 
  height:80px; 
  align-items:stretch;
}
.child:nth-child(3) { 
  align-self: flex-start; 
}</pre>
  <pre>.parent { 
  flow:horizontal; 
  height:*; 
}
.child { 
  height:*;
  width:40px 
}
.child:nth-child(3) { 
  height:80px;
}</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>


<h5>水平布局,垂直对齐</h5>
<div .section id="F">
  <pre>.parent { 
  display:flex; 
  flex-direction: row; 
  height:80px; 
  align-items:center;
}
.child:nth-child(3) { 
  align-self: flex-start; 
}</pre>
  <pre>.parent {
    flow: horizontal;
    height: *;
}
.child {
    margin-top: *;
    margin-bottom: *;
}
.child:nth-child(3) {
    margin-top: 0;
    margin-bottom: *;
}</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div>


<h5>水平布局,宽度自适应</h5>
<div .section id="G">
  <pre>.parent { 
  display:flex; 
  flex-direction: row; 
}
.child:nth-child(3) { 
  flex: 1;
}</pre>
  <pre>.parent { flow:horizontal; }
.child { height:*;width:40px  }
.child:nth-child(3) { width: *; }</pre>
  <div class="parent">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
    <div class="child">4</div>
  </div>
</div> 
</body></html>
**/

winform.show(3/*_SW_MAXIMIZE*/) 
win.loopMessage();

Markdown 格式