一.盒子模型
二.块级元素和行内元素
1.块级元素
特点:
(1)一个块级元素占一行。
(2)块级元素的默认高度由内容决定,除非自定义高度。
(3)块级元素的高度,宽度,外边距以及内边距都可以自定义设置。
(4)块级元素可以容纳块级元素和行内元素。
<view style="border:1px solid #f00">快级元素1</view>
<view style="border:1px solid #0f0;margin:15px;padding:20px">块级元素2</view>
<view style="border:1px solid #00f;width:200px;height:80px">块级元素3</view>
<view style="border:1px solid #ccc">
<view style="height:60px">块级元素4</view>
</view>
2.行内元素
行内元素,不必从新的一行开始,通常会与前后的其他行内元素显示在同一行,他们不占有独立的区域,仅靠自身支撑结构。一般不可以控制大小,常用于控制页面中文本的样式。
特点:
(1)行内元素不能被设置高度与宽度,其高度宽度由页面决定。
(2)行内元素不能放置块级元素,只容纳文本或者其他行内元素
(3)同一块内,行内元素和其他元素显示在同一行。
<view style="padding:20px">
<text style="border:1px solid #f00">文本</text>
<text style="border:1px solid #0f0;margin:10px;padding:5px">文本2</text>
<text style="border:1px solid #00f;display: inline;">块级元素设置为行内元素</text>一行显示不全.自动换行显示
</view>
3.行内块元素
当元素的diaplay属性被设置为inline-block时,元素被设置为行内块元素。行内块元素可以设置高度,宽度,内边距,外边距。
<view>
元素显示方式的<view style="display:inline-block;border:1px solid #f00;margin:10px;width:200px;">块级元素,行内元素和行内块元素</view>三种类型。
</view>
三.浮动与定位
1.元素浮动与清除
格式如下:{float:none | left | right |;}
其中,none--默认值,表示不浮动;
left--左浮动;
right--右浮动。
<view>box1,box2,box3没浮动</view>
<view style="border: 1px solid #f00;padding:5px">
<view style="border: 1px solid #0f0">box1</view>
<view style="border: 1px solid #0f0">box2</view>
<view style="border: 1px solid #0f0">box3</view>
</view>
<view>box1左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
<view style="float:left;border: 1px solid #0f0">box1</view>
<view style="border: 1px solid #0f0">box2</view>
<view style="border: 1px solid #0f0">box3</view>
</view>
<view>box1box2左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
<view style="float:left;border: 1px solid #0f0">box1</view>
<view style="float:left;border: 1px solid #0f0">box2</view>
<view style="border: 1px solid #0f0">box3</view>
</view>
<view>box1box2box3左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
<view style="float:left;border: 1px solid #0f0">box1</view>
<view style="float:left;border: 1px solid #0f0">box2</view>
<view style="float:left;border: 1px solid #0f0">box3</view>
</view>
在css中,clear属性用于清除浮动元素对其他的影响,其基本格式如下:
{clear: left |right |both |none|}
代码如下:
<view>box1box2左浮动box3清除左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
<view style="float:left;border: 1px solid #0f0">box1</view>
<view style="float:left;border: 1px solid #0f0">box2</view>
<view style="clear:left;border: 1px solid #0f0">box3</view>
</view>
<view>box1box2box3左浮动在父元素后面添加一个元素</view>
<view style="border: 1px solid #f00;padding: 5px"class="clear-float">
<view style="float:left;border: 1px solid #0f0">box1</view>
<view style="float:left;border: 1px solid #0f0">box2</view>
<view style="float:left;border: 1px solid #0f0">box3</view>
</view>
2.元素定位
基本格式:
{prosition: static |relative|absolute|fixed}
<!--三个元素均未定位-->
<view style="border:1px solid #0f0;width:100px;height: 100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height: 100px">box2</view>
<view style="border:1px solid #0f0;width:100px;height: 100px">box3</view>
相对定位
<view style="border:1px solid #0f0;width:100px;height: 100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height: 100px;position: relative;left: 30px;top: 30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height: 100px">box3</view>
绝对定位
<view style="border:1px solid #0f0;width:100px;height: 100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height: 100px;position: absolute;left: 30px;top: 30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height: 100px">box3</view>
固定定位
<view style="border:1px solid #0f0;width:100px;height: 100px">box1</view>
<view style="border:1px solid #0f0;width:100px;height: 100px;position: fixed;left: 30px;top: 30px">box2</view>
<view style="border:1px solid #0f0;width:100px;height: 100px">box3</view>
四.flex布局
flex布局主要由容器和项目组成,采用flex布局的元素称为flex容器,flex布局的所有直接子元素自动成为容器的成员,称为flex项目。
图为flex布局模型:
1.容器属性
display:
格式.box{display:flex |inline-fiex;}
flex-direction:
格式.box{flex-direction:row\row-reverse |column-reverse;}
其中,row为水平方向,起点在左端;
row-reverse为水平方向,起点在右端;
column为垂直方向,起点在顶端;
column-reverse为垂直方向,起点在底端;
图所示为元素在不同方向下的显示效果:
flex-wrap:
格式.box{flex-wrap:nowrap |wrap |wrap-reverse}
其中,nowrap不换行,默认值;
wrap换行,第一行在上发方;
wrap-reverse换行,第一行在下方;
如图:
flex-flow:
flex-flow是 flex-direction和flex-warp的简写形式,默认值为row nowrap。语法格式如下:
.box{flex-flow;<flex-direction> || <flex-wrap>;}
代码如下:
justify-content:
语法如下:
.box{justify-content:flex-start |flex-end |center |space-between|space=around;}
其中,flex-start左对齐,默认值;
flex-end右对齐;
center居中;
space-between两端对齐,项目之间的间隔都相等;
space-around每个项目两侧的间隔相等;
align-items:
格式.box{align-item;flex-stare }flex-end |center |baseline |stretch}
代码如下:
//.wxml
<view class="cont1">
<view class="item">1</view>
<view class="item item2">2</view>
<view class="item item3">3</view>
<view class="item item4">4</view>
</view>
//.wxss
.cont1{
display: flex;
flex-direction: row;
align-items: baseline;
}
.item{
background-color: #ccc;
border:1px solid #f00;
height: 100px;
width: 50px;
margin: 2px;
}
.item2{
height: 80px;
}
.item3{
display: flex;
height: 50px;
align-items: flex-end;
}
.item4{
height:120px;
}
效果图:
align-content:
格式.box{align-content:flex-start|flex-end|center|space-between|space-around |stretch}
2.项目属性
order:
格式.box{order:<number>;}
flex-frow:
.item{flex-grow:<number>;}
代码如下:
<view class="cont1">
<view class="item">1</view>
<view class="item">2</view>
<view class="item">3</view>
<view class="item">4</view>
</view>
<view class="cont1">
<view class="item">1</view>
<view class="item" style="flex-grow:1">2</view>
<view class="item" style="flex-grow:2">3</view>
<view class="item">4</view>
</view>
效果图:
flex-basis:
.item{flex-basis: <number>|auto;}
代码如下:
<view class="cont1">
<view class="item">1</view>
<view class="item">2</view>
<view class="item">3</view>
<view class="item">4</view>
</view>
<view class="cont1">
<view class="item">1</view>
<view class="item" style="flex-basis:100px">2</view>
<view class="item" style="flex-basis:100px">3</view>
<view class="item">4</view>
</view>
效果图:
flex:
.item{flex:<flex-grow> | <flex-shrink> | <flex-basis>;}
代码如下:
alihn-self:
格式.box{align-self;auto |flex-atart |flex-end |center |baseline |atretch;}