第三章总结

学习目标:

        ·了解盒子模型的基本原理

        ·掌握浮动于定位

        ·熟练掌握flex布局方式

3.页面布局

3.1盒子模型

模型结构

模型元素

3.2块级元素与行内块元素

3.2.1块级元素

wxml代码:

<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>
  <view style="border: 1px solid #f00;width: 100px;background-color: #ccc;">
  父级元素高度随内容决定,内容为文本</view>

运行结果 

3.2.2行内元素

wxml代码

 

  <view style="padding: 20px">
  <text style="border: 1px solid #f00;">行内元素1</text>
  <text style="border: 1px solid #0f0;margin: 10px;padding: 5px">行内元素2</text>
  <text style="border: 1px solid #00f;display: inline;">块级元素设置为行内元素</text>一行显示不全,自动换行显示
  </view>

 

3.2.3行内块元素

wxml代码

  <view>
  元素显示方式的<view style="display:inline-block;border: 1px solid #f00;margin: 10px;padding: 10px; width: 200px">块级元素、行内元素和行内块元素</view>三种类型。
  </view>

运行结果 

 

3.3浮动与定位

3.3.1元素浮动与清除

1.浮动格式:

{float:none|left|right;}

 wxml代码

<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>box1 box2 左浮动</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>box1 box2 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="float: left;border: 1px solid #0f0">box3</view>
</view>

运行结果

 

2.清除格式:

{clear:left|right|both|none}

wxml代码

<view>box1 box2 左浮动 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>box1 box2 box3 左浮动 在父元素后添加一个空元素</view>
<view style="border: 1px solid #f00;padding: 5px;"clear="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>

运行结果

 

3.3.2元素定位

格式:

{position:static|relative|absolute|fixed}

wxml代码

<!--三个元素未定位-->
<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>
<!--box2绝对定位-->
<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>
<!--box2相对定位-->
<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>
<!--box2固定定位-->
<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>

运行结果

 

 

 

 

 

 

3.4flex布局

3.4.1容器属性

 1. display
display 用来指定元素是否为 flex 布局,语法格式为:
. box|display: flex linline-flex;}
其中,flex-块级 flex 布局,该元素变为弹性盒子;
inline-flex-行内 flex 布局,行内容器符合行内元素的特征,同时在容器内又符合 flex 布局规范。
设置了 flex 布局之后,子元素的 float、clear 和 vertical-align 属性将失效。
2. flex-direction
flex-direction 用于设置主轴的方向,即项目排列的方向,语法格式为:
. box{flex-direction: row |row-reverse lcolumn lcolumn-reverse;微信小程序开发与运营其中,row
row-reverse-主轴为水平方向,起点在右端;
column-主轴为垂直方向,起点在顶端;
column-reverse-主轴为垂直方向,起点在底端。
以下为元素在不同主轴方向下的显示效果。

 3. flex-wrap
fles-wrap 用来指定当项目在一根轴线的排列位置不够时,项目是否换行,其语法格式 box|flex-wrap: nowrap wrap wrap wrap - reverse 其中, nowrap--不换行,默认值;
wrap--换行,第一行在上方;
wrap-reverse--换行,第一行在下方。
当设置换行时,还需要设置 align-item 属性来配合自动换行,但 align-item 的值"stretch"。
flex-wrap 不同值的显示效果如下图所示

4. flex-flow
flex-flow 是 flex-direction 和 flex-wrap 的简写形式,默认值为 row nowap。语法格式如下:
box|flex-flow:<flex-direction>||<flex-wrap>;
示例代码如下:
. box|flex-flow; row nowrap;|//水平方向不换行 box|flex-flow: row: row-reverse wrap;//水平方向逆方向换行 box|flex-flow; column wrap-reverse;|//垂直方向逆方向换行
5. justify-content
justify-content 用于定义项目在主轴上的对齐方式。语法格式如下下:
box|justify-content: flex-start|flex-end |cend|certer Ispace-between Ispace-around;}

其中, justify-content--与主轴方向有关,默认主轴水平对齐,方向从左到右;
flex-start-左对齐,默认值;
flex-end--右对齐;
center--居中;
space-between--两端对齐,项目之间的间隔都相等;
space-around--每个项目两侧的间隔相等。
下图所示为 justify-content 不同值的显示效果。 

 

6. align-items

align - items 用于指定项目在交叉轴上的对齐方式,语法格式如下
boxlalign-items: flex -start Iflex - end icenter Ibaseline Istretch.
其中,align-items——与交叉轴方向有关,默认交叉由上到下;
flex-start——交叉轴起点对齐;
flex-end——交叉轴终点对齐;
center——交叉轴中线对齐;
baseline——项目根据它们第一行文字的基线对齐;
stretch——如果项目未设置高度或设置为 auto,项目将在交叉轴方向拉伸填充容器,白为默认值。
示例代码如下:

//. wxm1
<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; 

 }

 

7. align-content
align-content 用来定义项目有多根轴线 (出现换行后) 在交叉轴上的对齐方式,如果只有一根轴线,该属性不起作用。语法格式如下:
box|align-content; flex-start|flex-end|center|space-between space-around |stretch|
其中, space-between--与交叉轴两端对齐,轴线之间的间隔平均分布;
space-around--每根轴线两侧的间隔都相等,轴线之间的间隔比轴线与边框间隔大一倍。
其余各属性值的含义与 align-items 属性的含义相同。
下图所示为 align-content 不同值的显示效果。

        3.4.2项目属性

容器内的项目支持6个属性,其名称和功能如下表所示

1.order

order属性定义项目的排列顺序,数值越小,排名越靠前,默认值为0。语法格式如下:

.item{order:<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"style ="order:1">1</view><view class ="item"style ="order:3">2</view><view class ="item"style="order:2">3</view><view class ="item">4<view>

</view>2. flex-grow
flex-grow 定义项目的放大比例,默认值为 0,即不放大。语法格式如下:

. 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>

3.flex-shrink

.item{flex-shrink:<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="order:3" style="flex-shrink:2">2</view>
    <view class="item" style="order:2" style="flex-shrink:1">3</view>
    <view class="item" style="order:2" style="flex-shrink:4">4</view>
</view>

4.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="order:3" style="flex-basis:100px">2</view>
    <view class="item" style="order:2" style="flex-basis:200px">3</view>
    <view class="item">4</view>
</view>

5.flex

语法格式:

 .item{flex:<flex-grow>|<flex-shrink>|<flex-basis>;}

 

6.align-self

语法格式:

.item{align-self:auto|flex-start|flex-end|center|baseline|stretch;}

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值