盒模型

盒模型  - 图1

chameleon 盒模型基于 CSS 盒模型,每个 chameleon 元素都可视作一个盒子。我们一般在讨论设计或布局时,会提到「盒模型」这个概念。

盒模型描述了一个元素所占用的空间。每一个盒子有四条边界:外边距边界 margin edge, 边框边界 border edge, 内边距边界 padding edge 与内容边界 content edge。这四层边界,形成一层层的盒子包裹起来,这就是盒模型大体上的含义。

  • width {length}:,默认值 0
  • height {length}:,默认值 0
  • padding {length}:内边距,内容和边框之间的距离。默认值 0

可有以下写法:

  1. - `padding-left {length}`:,默认值 0
  2. - `padding-right {length}`:,默认值 0
  3. - `padding-top {length}`:,默认值 0
  4. - `padding-bottom {length}`:,默认值 0

支持简写模式:padding:{length length length length}

  • margin:

外边距,元素和元素之间的空白距离。值类型为 length,默认值 0

可有如下写法:

  1. - `margin-left {length}`:,默认值 0
  2. - `margin-right {length}`:,默认值 0
  3. - `margin-top {length}`:,默认值 0
  4. - `margin-bottom {length}`:,默认值 0

支持简写模式:margin:{length length length length}

  • border:设定边框,简写方式:border:1px solid #ff0000;

可有如下写法:

  1. - border-style
  2. 设定边框样式,值类型为 string,可选值为 `solid | dashed | dotted`,默认值 solid
  3. 可有如下写法:
  4. - `border-left-style {string}`:可选值为 `solid | dashed | dotted`,默认值 solid
  5. - `border-top-style {string}`:可选值为 `solid | dashed | dotted`,默认值 solid
  6. - `border-right-style {string}`:可选值为 `solid | dashed | dotted`,默认值 solid
  7. - `border-bottom-style {string}`:可选值为 `solid | dashed | dotted`,默认值 solid
  8. - border-width {length}:
  9. 设定边框宽度,非负值, 默认值 0
  10. 可有如下写法:
  11. - `border-left-width {length}`:,非负值, 默认值 0
  12. - `border-top-width {length}`:,非负值, 默认值 0
  13. - `border-right-width {length}`:,非负值, 默认值 0
  14. - `border-bottom-width {length}`:,非负值, 默认值 0
  15. - border-color {color}:
  16. 设定边框颜色,默认值 `#000000`
  17. 可有如下写法:
  18. - `border-left-color {color}`:,默认值 #000000
  19. - `border-top-color {color}`:,默认值 #000000
  20. - `border-right-color {color}`:,默认值 #000000
  21. - `border-bottom-color {color}`:,默认值 #000000
  22. - border-radius {length}:
  23. 设定圆角,默认值 0
  24. 可有如下写法:
  25. - `border-bottom-left-radius {length}`:,非负值, 默认值 0
  26. - `border-bottom-right-radius {length}`:,非负值, 默认值 0
  27. - `border-top-left-radius {length}`:,非负值, 默认值 0
  28. - `border-top-right-radius {length}`:,非负值, 默认值 0

注意

chameleon 盒模型的 box-sizing 默认为 border-box,即盒子的宽高包含内容、内边距和边框的宽度,不包含外边距的宽度。

目前在 盒模型  - 图2 组件上尚无法只定义一个或几个角的 border-radius。比如你无法在这两个组件上使用 border-top-left-radius。该约束只对 iOS 生效,Android 并不受此限制。

尽管 overflow:hidden 在 Android 上是默认行为,但只有下列条件都满足时,一个父 view 才会去 clip 它的子 view。这个限制只对 Android 生效,iOS 不受影响。

  • 父view是div, a, cell, refresh 或 loading。
  • 系统版本是 Android 4.3 或更高。
  • 系统版本不是 Andorid 7.0。
  • 父 view 没有 background-image 属性或系统版本是 Android 5.0 或更高。

示例:

  1. <template>
  2. <view>
  3. <image style="width: 400cpx; height: 200cpx; margin-left: 20cpx;" src="https://g.alicdn.com/mtb/lab-zikuan/0.0.18/weex/weex_logo_blue@3x.png"></image>
  4. </view>
  5. </template>