vue-h5移动Web的Flex布局

news/2025/2/14 8:03:46/

Flex布局

Flexible布局,也就是弹性布局。
Flexible的优点是,不需要对元素设置固定的宽度和高度,元素的位置和大小也会跟着父元素或者浏览器的状态来自动适配。

同时还添加了水平居中和垂直居中的解决方案。

在页面中指定一个元素作为Flex布局,那么这个元素就是作为容器冤元素。设置如下:

.box{display:flex;
}

行内元素也是可以使用flex布局的。

注意:父元素设置为flex后,子元素的float、clear和vertical-align的设置就会失效。

Flex的兼容性写法

尽管有很多的浏览器已经实现了无前缀的版本,但是在系统比较旧版本的移动端设备上,只能带上前缀。

那么,我们在写代码的时候,就要考虑样式的兼容性了:

.box{display:-webkit-flex; // 新版本语法加前缀display:flex; // 新版本语法display:-webkit-box; // 旧版本语法
}.children{-webkit-flex:1; // 新版本语法加前缀flex:1; // 新语法-webkit-box-flex:1; // 旧版本语法
}

Flex容器属性

弹性容器有两个方向:水平方向和垂直方向,弹性容器的子元素默认沿着水平方向排列。Flex容器有这些属性:

1、flex-direction

该属性决定主轴的方向;属性值如下:

  • row:表示设置主轴为水平方向,从左到右,该值为默认值
  • row-reverse:表示设置主轴为水平方向,从右到左
  • column:表示设置主轴为垂直方向,从上到下
  • column:表示设置主轴为垂直方向,从上到下

2、flex-wrap

该属性决定如果一条轴线排列时内容超出,那么该如何换行;属性值如下:

  • nowrap:表示单行显示,不换行,该值为默认值
  • wrap:表示内容超出容器宽度时换行显示,第一行在上方
  • wrap-reverse:表示内容超出容器宽度时换行显示,但是从下往上开始,也就是第一行在最下方,最后一行在最上方

3、flex-flow

该属性是flex-direction和flex-wrap的缩写,即一个属性可以实现设置两个属性的功能。

4、justify-content

该属性决定了主轴方向上子元素的对齐和分布方式;属性值如下:

  • flex-start:表示主轴方向左对齐,该值为默认值
  • flex-end:表示主轴方向右对齐
  • center:表示主轴方向居中对齐
  • space-between:表示主轴方向两端对齐,子元素之间的间隔都相等,多余的空白间距只在子元素中间区域分配
  • space-around:表示主轴方向距容器两侧的间隔相等

5、align-items

该属性决定了交叉轴方向上子元素的对齐和分布方式;属性值如下:

  • flex-start:表示子元素在容器交叉轴方向顶部对齐
  • flex-end:表示子元素在容器交叉轴方向底部对齐
  • center:表示子元素在容器交叉轴方向居中对齐
  • baseline:表示所有子元素都相对第一行文字的基线(字母x的下边缘)对齐。
  • stretch:表示子元素拉伸,如果主轴是水平方向,且该子元素未设置高度或者把高度设置为auto,那么子元素将会占满整个容器的高度;如果主轴是垂直方向,且该子元素未设置宽度或者把宽度设置为auto,那么子元素将会占满整个容器的宽度;如果设置了高度和宽度,那么按照设置值显示子元素。该值为默认值。

6、align-content

该属性决定了多根轴线的对齐方式。如果容器只有一根轴线,那么该属性不起作用;属性值为:

  • flex-start:表示子元素在容器交叉轴方向顶部对齐
  • flex-end:表示子元素在容器交叉轴方向底部对齐
  • center:表示子元素在容器交叉轴方向整体居中对齐
  • space-between:表示子元素在容器交叉轴方向两端对齐,剩下每一行子元素等分剩余的空间
  • space-around:表示子元素在容器交叉轴方向上两侧的间距都相等,且位于起点和终点的元素与容器边框的间距为两侧间距的1/2
  • stretch:表示每一行子元素都拉伸,是align-content的默认值。

Flex容器元素的子元素,有以下几个属性:

  1. order:该属性决定子元素的排列顺序
  2. flex-grow:该属性决定子元素的放大比例
  3. flex-shrink:该属性决定子元素的缩小比例
  4. flex-basis:该属性决定在分配多余空间之前,子元素占据的主轴空间的大小
  5. flex:该属性是复合属性,由flex-grow、flex-shrink和flex-basis组成
  6. align-self:该属性决定了子元素与其他子元素不一样的排列和对齐方式

http://www.ppmy.cn/news/1111535.html

相关文章

clickhouse在执行alter table update delete等命令后数据没有更新

clickhouse之删除数据或更新数据无效的解决思路 例如: ALTER TABLE 表名 DELETE WHERE 条件 ALTER TABLE 表名 UPDATE column1 expr1 [, ...] WHERE filter_expr分析原因: 我们都知道ClickHouse内核中的MergeTree存储一旦生成一个Data Part&#xff0…

opencv c++实现鼠标框选区域并显示选择的图片区域

OpenCV可以使用setMouseCallback设置鼠标事件的回调函数,从而然后根据需要进行处理。 setMouseCallback原型为: void cv::setMouseCallback(const cv::String& windowName, MouseCallback onMouse, void* userData = 0); 其中,参数说明如下:windowName:窗口名称 onMo…

Vue.js的服务器端渲染(SSR):为什么和如何

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

uni-app 实现自定义按 A~Z 排序的通讯录(字母索引导航)

创建 convertPinyin.js 文件 convertPinyin.js 将下面的内容复制粘贴到其中 const pinyin (function() {let Pinyin function(ops) {this.initialize(ops);},options {checkPolyphone: false,charcase: "default"};Pinyin.fn Pinyin.prototype {init: functi…

如何高效且优雅地使用Redis

本文从如下7个维度,带你全面理解Redis的最佳实践和优化: 内存性能可靠性运维安全资源规划监控 1、如何节省内存 1.1、控制Key的长度 在开发业务时,要提前预估Redis中写入key的数量,如果key数量达到了百万级别,那过…

如何使用 RunwayML 进行创意 AI 创作

标题:如何使用 RunwayML 进行创意 AI 创作 介绍 RunwayML 是一个基于浏览器的人工智能创作工具,可让用户使用各种 AI 功能来生成图像、视频、音乐、文字和其他创意内容。RunwayML 的功能包括: * 图像生成:使用生成式对抗网络 (…

系列七、Nginx负载均衡配置

一、目标 浏览器中访问http://{IP地址}:9002/edu/index.html,浏览器交替打印清华大学8080、清华大学8081. 二、步骤 2.1、在tomcat8080、tomcat8081的webapps中分别创建edu文件夹 2.2、将index.html分别上传至edu文件夹 注意事项:tomcat8080的edu文件…

【Spatial-Temporal Action Localization(三)】论文阅读2018年

文章目录 1. AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions 时空局部原子视觉动作的视频数据集摘要和结论模型框架思考不足之处时间信息对于识别 AVA 类别有多重要?定位与识别相比有何挑战性?哪些类别具有挑战性&#xff…