微信小程序的浮动与定位,flex布局

这篇具有很好参考价值的文章主要介绍了微信小程序的浮动与定位,flex布局。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.元素浮动与清除

元素浮动就是指设置了浮动属性的元素会脱离标准文档流的控制 , 移到其父元素中指定位置的过程。 在css 中 , 通过float属性来定义浮动 , 其基本格式如下 :
  { float : none |left |right ;}
(1)其中 , none ——— 默认值 , 表示元素不浮动 ;
(2)left ——— 元素向左浮动 ;
(3right ——— 元素向右浮动。
由于浮动元素不再占用原文档流的位置 , 因此它会对页面中其他元素的排列产生影响。

示例代码:

<view>box1,box2,box3</view>
<view style="border: 1px solid #f00;padding: 5px;">
  <view style="border: 1px solid #f00;padding: 5px;">box1

</view>
<view style="border: 1px solid #f00;padding: 5px;">box2

</view>
<view style="border: 1px solid #f00;padding: 5px;">box3

</view>

</view>
<view>box1 左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
  <view style="float: left; border: 1px solid #f00;padding: 5px;">box1

</view>
<view style="border: 1px solid #f00;padding: 5px;">box2

</view>
<view style="border: 1px solid #f00;padding: 5px;">box3

</view>
</view>
<view>box1,box2左浮动</view>
<view style="border: 1px solid #f00;padding: 5px;">
  <view style="float :left ;border:1px solid #0f0 ">
</view>
<view style="float :left ;border:1px solid #0f0">
</view>
<view style="float :left ;border:1px solid #0f0">
</view>
<view style="float :left ;border:1px solid #0f0">
</view>
</view>

运行结果图:

 float小程序,微信小程序,notepad++,小程序

在CSS 中 , clear 属性用于清除浮动元素对其他元素的影响 , 其基本格式如下 :
其中 , left ——— 清除左边浮动的影响 , 也就是不允许左侧有浮动元素 ;
right ——— 清除右边浮动的影响 , 也就是不允许右侧有浮动元素 ;
both ——— 同时清除左右两侧浮动的影响 ;
none ——— 不清除浮动。

 代码如下:

<view>box1,box2左浮动 box3清除左浮动</view>
<view>
<view style="border: 1px solid #f00;"></view>
<view style="border:  1px solid #f00;padding: 5px;"></view>
<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 #f0f;">box2</view>

</view>

结果如图:

 float小程序,微信小程序,notepad++,小程序

2.元素定位 

. . 2 元素定位
浮动布局虽然灵活 , 但无法对元素的位置进行精确的控制。 在css中 , 通过postion 属性可以实现对页面元素的精确定位。 基本格式如下 :
{position :static |relative|absolute|fixed}
(1)其中 , static ——— 默认值 , 该元素按照标准流进行布局 ;
(2)relative ——— 相对定位 , 相对于它在原文档流的位置进行定位 , 它后面的盒子仍以标准流方式对待它 ;
(3)absolute ——— 绝对定位 , 相对于其上一个已经定位的父元素进行定位 , 绝对定位的盒子从标准流中脱离 , 它对其后的兄弟盒子的定位没有影响 ;
(4)fixed ——— 固定定位 , 相对于浏览器窗口进行定位。
代码示例如下:
(1)不动的情况下:
<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>

结果图:

 float小程序,微信小程序,notepad++,小程序

(2)进行绝对定位

代码如下:

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

结果图:

 float小程序,微信小程序,notepad++,小程序

(3)进行相对定位: 

代码:

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

结果如图: 

float小程序,微信小程序,notepad++,小程序

 (4)进行固定定位

代码如下:

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

结果如图:

 float小程序,微信小程序,notepad++,小程序

3,flex布局 

容器默认存在两根轴 : 水平的主轴   和垂直的交叉轴 。 主轴的开始位置 ( 与边框的交叉点 ) 叫做mainstart , 结束位置叫做mainend ; 交叉轴的开始位置叫做cross start , 结束位置叫做corssend
项目默认沿主轴排列。 单个项目占据的主轴空间叫做mainsize , 占据的交叉轴空间叫做cross size
设置display 属性可以将一个元素指定为flex 布局 , 设置flex - direction 属性可以指定主轴方向。 主轴既可以是水平方向 , 也可以是垂直方向。
flex布局模型:
float小程序,微信小程序,notepad++,小程序

(1)容器属性 

flex容器支持的属性有7种,如图:

float小程序,微信小程序,notepad++,小程序

 
. display
display 用来指定元素是否为flex 布局 , 语法格式为 :
其中 , flex ——— 块级flex 布局 , 该元素变为弹性盒子 ;
inline - flex ——— 行内flex 布局 , 行内容器符合行内元素的特征 , 同时在容器内又符合flex 布局规范。
设置了flex 布局之后 , 子元素的float、clear 和verticalalgin 属性将失效。
. flex - direction
flex - direction 用于设置主轴的方向 , 即项目排列的方向 , 语法格式为 :
.box{flex-direction:row|row-reverse|column|column-reverse}
其中 , row ——— 主轴为水平方向 , 起点在左端 , 当元素设置为flex 布局时 , 主轴默认为row ;
row-reverse ——— 主轴为水平方向 , 起点在右端 ;
column——— 主轴为垂直方向 , 起点在顶端 ;
column-reverse ——— 主轴为垂直方向 , 起点在底端。

3.flex-wrap
flex-wrap 用来指定当项目在一根轴线的排列位置不够时, 项目是否换行,

其语法格式如下:

.box{flex-wrap:nowrap|wrap|wrap-reverse;}
其中, nowrap———不换行, 默认值;

wrap———换行, 第一行在上方;

wrap-reverse———换行, 第一行在下方。

     当设置换行时, 还需要设置align -item属性来配合自动换行, 但align-item 的值不能为“seretch”。

flex-wrap 不同值的显示效果如图所示。

float小程序,微信小程序,notepad++,小程序

4.flex-flow

flex-flow是flex-direction 和flex-wrap 的简写形式, 默认值为rownowrap。 语法格式如下:

.box{flex-flow:<flex-direction>||<flex-wrap>;}
.box{flex-flow:row nowrap;}//水平方向不换行
.box{flex-flow:row-reverse wrap;}//水平方向逆方向换行
.box{flex-flow:column wrap-reverse;}//垂直方向逆方向换行

5.justify-content
justify-content用于定义项目在主轴上的对齐方式。语法格式如下:

.box{justify-content:flex-start|flex-end|center|space-between|space-around;}
justift-content———与主轴方向有关, 默认主轴水平对齐, 方向从左到右;

flex-strat———左对齐, 默认值;

flex-end———右对齐;

center———居中;

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

space-around———每个项目两侧的间隔相等。

显示效果如下:

float小程序,微信小程序,notepad++,小程序

6.align-items
align-items用于指定项目在交叉轴上的对齐方式,其语法格式如下:

.box{align-items:flex-start|flex-end|center|baseline|stretch;}
align-items———与交叉轴方向有关, 默认交叉由上到下;

flex-start———交叉轴起点对齐;

flex-end———交叉轴终点对齐;

center———交叉轴中线对齐;

baseline———项目根据它们第一行文字的基线对齐;

stretch———如果项目未设置高度或设置为auto, 项目将在交叉轴方向拉伸填充容器, 此为默认值。

代码如下:

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

代码结果图:

float小程序,微信小程序,notepad++,小程序

7.align-content
align-content用来定义项目有多根轴线(出现换行后)在交叉轴上的对齐方式,如果只有一根轴线,该属性不起作用。语法格式如下:

.box{align-content:flexx-start|flex-end|center|space-between|space-around|stretch}
space-between———与交叉轴两端对齐, 轴线之间的间隔平均分布;

space-around———每根轴线两侧的间隔都相等, 轴线之间的间隔比轴线与边框间隔大一倍。

其余各属性值的含义与align - items 属性的含义相同。如图所示:

float小程序,微信小程序,notepad++,小程序

(2) 项目属性

功能表如下所示:

float小程序,微信小程序,notepad++,小程序

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>

 float小程序,微信小程序,notepad++,小程序

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>

结果如图:

 float小程序,微信小程序,notepad++,小程序

3.flex-shrink

flex-shrink用来定义项目的缩小比例,默认值为1,如果空间不足,该项目将被缩小。

语法格式如下:

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

结果图如下:

float小程序,微信小程序,notepad++,小程序

4.flex-basis

flex-basis属性用来定义伸缩项目的基准值,剩余的空间将按比例进行缩放,它的默认值为auto(即项目的本来大小)。

语法格式如下:

.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: 200px;">3</view>
  <view class="item">4</view>
</view>

效果图: 

 float小程序,微信小程序,notepad++,小程序

5.flex
flex属性是flex-grow、flex-shrink和flex-basis的简写,其默认值分别为0、1、auto。

语法格式如下:

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


示例代码如下:

.item{flex:auto;}//等价于.item{flex:1 1 auto;}
.item{flex:none;}//等价于.item{flex:0 0 aoto;}

 

6.algin-self

align-self属性用来指定单独的伸缩项目在交叉轴上的对齐方式。该属性会重写默认的对齐方式。语法格式如下:文章来源地址https://www.toymoban.com/news/detail-854003.html

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

到了这里,关于微信小程序的浮动与定位,flex布局的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Flex布局简介及微信小程序视图层View详解

    Flex布局简介及微信小程序视图层View详解

    目录 一、Flex布局简介 什么是flex布局? flex属性 基本语法和常用属性 Flex 布局技巧 二、视图层View  View简介 微信小程序View视图层 WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项 页面渲染 数据处理 Flex 布局(又称

    2024年02月20日
    浏览(11)
  • 微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间

    微信小程序-flex布局:垂直、水平方向-自动填充满剩余空间

    在微信小程序项目中经常需要将水平或垂直方向分成两大部分,一部分内容宽度或高度固定,剩余的一部分需填充满剩余空间。那么,该怎么快速解决这类布局? 效果图如下: 垂直方向 : 水平方向: 我个人比较喜欢使用flex布局,面对此类布局,最先想到的也是flex布局。常

    2024年02月09日
    浏览(7)
  • 微信小程序进阶——Flex弹性布局&轮播图&会议OA项目(首页)

    微信小程序进阶——Flex弹性布局&轮播图&会议OA项目(首页)

    目录 一、Flex弹性布局 1.1 什么是Flex弹性布局 1.1.1 详解 1.1.2 图解  1.1.3 代码演示效果 1.2 Flex弹性布局的核心概念 1.3 Flex 弹性布局的常见属性 1.4 Flex弹性布局部分属性详解 1.4.1 flex-direction属性 1.4.2 flex-wrap属性 1.4.3 flex-flow属性 1.4.4 justify-content属性 1.4.5 align-items属性 1.4.6 

    2024年02月05日
    浏览(12)
  • 微信小程序入门与实战之rpx响应式单位与flex布局

    微信小程序入门与实战之rpx响应式单位与flex布局

    小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: app.json必须有一个pages数组: 一个小程序页面由四个文件组成,分别是: 注意:为了方便开发者减少配置项,描述页面的四个文件必须具有

    2024年02月03日
    浏览(9)
  • 使用flex弹性布局来为微信小程序写自适应页面

    使用flex弹性布局来为微信小程序写自适应页面

    我们知道,写习惯了前端的人,一般切图后布局页面的话,上手最习惯的是基于盒子模型的浮动布局,依赖 display 属性 + position属性 + float属性,但是浮动布局有一些致命的小问题,比如垂直居中比较费劲,比如著名的float坍塌问题,另外有些极端情况下,还得使用模型+clear

    2024年02月09日
    浏览(11)
  • 微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效

    微信小程序警告设置 enable-flex 属性以使 flexbox 布局生效

    页面使用了scroll-view,对应的wxss使用了flex布局,也就是scroll-view设置了display:flex; 会发现flex不生效,并且这个时候微信小程序会警告[pages/XXX/XXX] 设置 enable-flex 属性以使 flexbox 布局生效。   代码如下: 添加上这个属性之后,就可以了。

    2024年02月12日
    浏览(12)
  • 微信小程序23__flex布局 相关的3种居中: 水平居中_垂直居中_水平垂直居中

    类似这样写法 display:  flex; flex-direction:  column;                //垂直布局 align-items:  center;                    // 水平居中     justify-content:  space-around; //垂直方向分散布局 类似这样写法 display:  flex; flex-direction: row;          //水平布局       align-items: center;    

    2024年02月03日
    浏览(10)
  • float,flex和grid布局

    float,flex和grid布局

    页面布局往往会影响着整体的结构与项目的样式,通常我们用的布局方式有三种:float,flex,grid 1.1概念      首先对于一个页面来说,有浮动流,文档流,文本流这几种模式,而float布局则是脱离文档流而不脱离文本流,就是页面的元素会无视这个浮动的元素,正常布局的正

    2023年04月23日
    浏览(10)
  • 【微信小程序】6天精准入门(第3天:小程序flex布局、轮播图组件及mock运用以及综合案例)附源码

    【微信小程序】6天精准入门(第3天:小程序flex布局、轮播图组件及mock运用以及综合案例)附源码

    布局的传统解决方案,基于[盒状模型],依赖display属性 + position属性 + float属性 Flex是 Flexible Box 的缩写,意为” 弹性布局 ”,用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。 display: ‘flex’         容器默认存在两根轴: 水平的主轴(main axi

    2024年02月08日
    浏览(17)
  • uni-app/微信小程序:scroll-view纵向滚动高度自适应flex布局填充剩余高度

    uni-app文档:https://uniapp.dcloud.net.cn/component/scroll-view.html 使用竖向滚动时,需要给 一个固定高度,通过 css 设置 height 微信文档:https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html 使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height 所以,给scroll-view设置

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包