第三章总结 :页面布局 盒子模型

本文详细介绍了小程序中的盒子模型,包括内容、内边距、边框和外边距,以及如何运用Flex布局进行灵活布局和对齐。通过实例展示了块级元素与行内元素、浮动与定位、以及flex布局的使用方法和属性设置。
摘要由CSDN通过智能技术生成
盒子模型介绍

小程序中的盒子模型是**用于布局和定位元素的基础模型,它包括内容、内边距、边框和外边距四个部分**。

具体来说,盒子模型的各个部分包括:

1. **内容(Content)**:这是盒子的核心部分,显示文本、图片等实际内容。内容区域的尺寸可以通过设置宽度(width)和高度(height)来定义。
2. **内边距(Padding)**:是指内容与边框之间的透明区域。可以通过WXSS的padding属性来设置内边距的大小。
3. **边框(Border)**:包围在内容和内边距之外的线型区域。可以设置边框的样式、宽度和颜色,通过border-style、border-width和border-color属性来进行设置。
4. **外边距(Margin)**:这是围绕在边框外面的透明区域,它决定了盒子与其他元素之间的距离。外边距的大小可以通过margin相关属性设置。

此外,在小程序中,任何一个容器都可以指定为Flex布局,这使得盒模型更加灵活。使用display: flex;可以启用一个容器的弹性布局特性。Flex布局提供了一种简便而强大的方式去处理项目中的布局问题,例如对齐、分布、空间分配等。

总的来说,了解和应用盒子模型对于小程序开发是非常重要的,它能够帮助开发者创建出既美观又符合设计规范的界面。 

图片示例:
块级元素与行内元素
块级元素实例图:

代码:


<!-- 每个元素占一行 -->
<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>
     <!-- 块级元素的高度随内容决定,内容为文本元素,块级元素的宽度为100px -->
  </view>
  <view style ="border:1px solid #f00;width: 100px;background-color: #ccc">父级元素高度随内容决定,内容为文本</view>
   <!-- 块级元素的高度随内容决定,内容为文本元素 -->
行内元素示例图:

代码:

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

代码:

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

效果图实例:

代码:

<view>box1,box2,box3 没浮动</view>
   <view style="border: 1px solid #f00;padding: 5px;">
   <view style="border: 1px solid #f0f;">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 #f0f;">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: right;border: 1px solid #f0f;">box1</view>
   <view style="float: right;border: 1px solid #f0f;">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: right;border: 1px solid #f0f;">box1</view>
    <view style="float: right;border: 1px solid #f0f;">box2</view>
    <view style="float: right;border: 1px solid #f0f;">box3</view>
   </view>
   <view>box1,box2,左浮动box3 清除浮动</view>
   <view style="border: 1px solid #f00;padding: 5px;">
    <view style="float: left;border: 1px solid #f0f;">box1</view>
    <view style="float: left;border: 1px solid #f0f;">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;"class="clearfloat">
    <view style="float: left;border: 1px solid #f0f;">box1</view>
    <view style="float: left;border: 1px solid #f0f;">box2</view>
    <view style="float: left;border: 1px solid #f0f;">box3</view>
   </view>
/**index.wxss**/
page {
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.scrollarea {
  flex: 1;
  overflow-y: hidden;
}

.userinfo {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #aaa;
  width: 80%;
}

.userinfo-avatar {
  overflow: hidden;
  width: 128rpx;
  height: 128rpx;
  margin: 20rpx;
  border-radius: 50%;
}

.usermotto {
  margin-top: 200px;
}

.avatar-wrapper {
  padding: 0;
  width: 56px !important;
  border-radius: 8px;
  margin-top: 40px;
  margin-bottom: 40px;
}

.avatar {
  display: block;
  width: 56px;
  height: 56px;
}

.nickname-wrapper {
  display: flex;
  width: 100%;
  padding: 16px;
  box-sizing: border-box;
  border-top: .5px solid rgba(0, 0, 0, 0.1);
  border-bottom: .5px solid rgba(0, 0, 0, 0.1);
  color: black;
}

.nickname-label {
  width: 105px;
}

.nickname-input {
  flex: 1;
}

.clearfloat::after{display: block;clear: both;height: 0;content: "";}
元素定位示例图

代码:
 

元素定位
<view style="position: relative;">
<view style="border: 1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border: 1px solid rgb(195, 15, 240);width:100px;height:100px">box2</view>
<view style="border: 1px solid #0f0;width:100px;height:100px">box3</view>
</view>


对 box1 box2 box3元素相对定位 
<!--box2 元素相对定位 relative top:30px left:30px -->
<view style="border: 1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border: 1px solid rgb(12, 172, 247);width:100px;height:100px;position:relative; left:30px;top:30px">box2</view>
<view style="border: 1px solid #0f0;width:100px;height:100px">box3</view>



对 box1 box2 box3元素绝对定位 
<!--box2 元素绝对定位 absolute top:30px left:30px -->
<view style="border: 1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border: 1px solid rgb(235, 11, 149);width:100px;height:100px;position:absolute; left:30px;top:30px">box2</view>
<view style="border: 1px solid #0f0;width:100px;height:100px">box3</view>


对box1 box2 box3 元素固定定位
<!-- box2 固定定位 fixed top:30px left:30px -->
<view style="border: 1px solid #0f0;width:100px;height:100px">box1</view>
<view style="border: 1px solid rgb(228, 15, 61);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布局是万维网联盟(World Wide Web Consortium,W3C)在2009年提出的一种新布局方案,该布局可以简单快速地完成各种可以伸缩的设计,以便很好地支持响应式布局。 flex 是 flexible box 的缩写,意为弹性盒子模型,可以简便、完整、响应式地实现各种页面布局。
flex 布局主要由容器和项目组成,采用flex 布局的元素称为flex容器(flex container), flex 布局的所有直接子元素自动成为容器的成员,称为flex 项目(flexitem)。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做crossstart,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做 cross size。flex 布局模型 
设置 display属性可以将一个元素指定为flex布局,设置flex-direction属性可以指定主轴方向。主轴既可以是水平方向,也可以是垂直方向。

flex布局模型示例图:

容器属性:

flex容器支持的属性有7种
     属性名  |  功能
    display  |  指定元素是否为flex 布局
    flex - direction  |  指定主轴方向,决定项目的排列方式
    flex - wrap   |  定义项目如何换行(超过一行时)
    flex - flow  |  flex - direction和flex - wrap的简写形式
    justify - content  | 定义项目主轴上的对齐方式
    align -items  |  定义项目在交叉轴的对齐方式
    align - content  |  定义多根轴线的对齐方式

justify-content—flex-start——左对齐,默认值(a)

flex-end——右对齐(b)

center——居中(c)

space-between——两端对齐,项目之间的间隔都相等(d)

space-around——每个项目两侧的间隔都相等(e)

效果图展示:

项目属性:

代码:

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值