# 盒模型
jsn 盒模型基于 CSS 盒模型 (opens new window),每个 元素都可视作一个盒子。我们一般在讨论设计或布局时,会提到「盒模型」这个概念。
盒模型描述了一个元素所占用的空间。每一个盒子有四条边界:外边距边界 margin edge, 边框边界 border edge, 内边距边界 padding edge 与内容边界 content edge。这四层边界,形成一层层的盒子包裹起来,这就是盒模型大体上的含义。
# 注意事项
- jsn 盒模型的 box-sizing 默认为 border-box,即盒子的宽高包含内容、内边距和边框的宽度,不包含外边距的宽度。
- 只支持
overflow:hidden
。
下面的例子显示了盒模型的基本用法
<template>
<div>
<image src="..." style="width: 400; height: 200; margin-left: 20;"></image>
</div>
</template>
# 宽度
width {length}
:默认值 0
# 高度
height {length}
:默认值 0
# 内边距
padding {length}
:内边距,内容和边框之间的距离,默认值 0。与标准 CSS 类似,padding
支持简写,也可分解为以下四个:
padding-left {length}
:左内边距,默认值 0;padding-right {length}
:右内边距,默认值 0;padding-top {length}
:上内边距,默认值 0;padding-bottom {length}
:下内边距,默认值 0。
# 边框
# Android 兼容性
你有可能会遇如下Crash Unable to create layer for xxx 如果你的含有
border
的component
的长度超过了最大值,因为这会使 OpenGL 内存 区域发生OutOfMemory
。
你的
component
的允许的最大值与机器有关,但一般来说,如果你的component
的大小超过屏幕大小,就有可能触发Crash。
# border-style
border-style
:设定边框样式,如果四个方向的边框样式不同,可分别设置:
border-left-style {string}
:可选值为solid
|dashed
|dotted
,默认值solid
;border-top-style {string}
:可选值为solid
|dashed
|dotted
,默认值solid
;border-right-style {string}
:可选值为solid
|dashed
|dotted
,默认值solid
;border-bottom-style {string}
:可选值为solid
|dashed
|dotted
,默认值solid
。
支持的值如下:
solid
:实线边框,默认值solid
;dashed
:方形虚线边框;dotted
:圆点虚线边框。
# border-width
border-width
:设定边框宽度,非负值, 默认值 0,如果四个方向的边框宽度不同,可分别设置:
border-left-width {length}
:非负值, 默认值 0;border-top-width {length}
:非负值, 默认值 0;border-right-width {length}
:非负值, 默认值 0;border-bottom-width {length}
:非负值, 默认值 0。
# border-color
border-color
:设定边框颜色,默认值 #000000
,如果四个方向的边框颜色不同,可分别设置:
border-left-color {color}
:默认值#000000
;border-top-color {color}
:默认值#000000
;border-right-color {color}
:默认值#000000
;border-bottom-color {color}
:默认值#000000
。
# border-radius
border-radius
:设置边框的圆角,默认值 0,如果四个方向的圆角弧度不同,可分别设置:
border-bottom-left-radius {length}
:非负值, 默认值 0;border-bottom-right-radius {length}
:非负值, 默认值 0;border-top-left-radius {length}
:非负值, 默认值 0;border-top-right-radius {length}
:非负值, 默认值 0。
# 注意事项
border-radius
和border-width
定义了圆心角为90度的椭圆弧的长轴和半长轴的大小。如果邻接两边border-radius
(或border-width
不一致,jsn绘制>的边框曲线可能不够平滑。
# Android 兼容性
尽管
overflow: hidden
在 Android 上是默认行为,但只有下列条件都满足时,一个父 view 才会去剪切它的子 view。
- 父view是
div
,a
,cell
,refresh
或loading
;- 系统版本是 Android 4.3 、 Android 5.0 或更高;
- 系统版本不是 Andorid 7.0;
- 父 view 没有
background-image
属性。
# 外边距
margin {length}
:外边距,元素和元素之间的空白距离,默认值 0。与标准 CSS 类似,margin
支持简写,也可分解为四边:
margin-left {length}
:左外边距,默认值 0;margin-right {length}
:右外边距,默认值 0;margin-top {length}
:上外边距,默认值 0;margin-bottom {length}
:下外边距,默认值 0。