微信小程序View的布局

微信小程序View的布局,第1张

横向布局or竖向布局=>设置属性 flex-direction

设置元素在横向上的布局方向,需要设置 justify-content 属性

设置元素在纵向上的布局方向,需要设置 align-items 属性

用于控制子 View 是否换行=>设置flex-wrap 属性

在日常开发中可能会遇到父元素设置flex布局,子元素再去设置宽度无效的问题

当子元素的宽度总和小于父元素的宽度的时候,是有效的。但是当子元素宽度总和大于父元素宽度的时候。子元素的宽度就自适应了。

造成此问题的原因是因为,felx布局下有一个属性flex-shrink

flex-shrink 属性指定了 flex 元素的收缩规则。flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。0代表不会收缩

解决办法

1子元素设置

2子元素使用min-width代替width (此方法一般起不到很大的作用,只能解决宽度失效的问题,但会带来很多副作用:比如当子元素内容超出长度是,子元素的宽度就不再固定)

3子元素设置

浮动布局的优点就是比较简单,兼容性也比较好。

缺点是浮动元素是脱离文档流,要做清除浮动,否则可能会出现高度塌陷等问题。

绝对定位布局优点: 很快捷,设置很方便

但是脱离文档流的, 可能会造成重叠元素

在flex布局不兼容的时候,可以尝试表格布局。

CSS基础(float属性与清除浮动)

三栏布局的5种解决方案及优缺点

刚开始开发css或者小程序布局时, 都会遇到这样的问题, 当我们同时使用 flex布局与position:absolute/fixed的时候, 无论怎么修改都达不到最终效果, 如下图所示:

我想在白色区域横向布局这个四组文字, 虽然我设置display:flex, 方向也指向flex-direction:row, 但是最终显示出来还是如左图所示 原因是因为白色底图(shape_box)布局采用的是position:fixed的形式, 这时候文字的d性盒子布局已经失效了, 导致达不到最终效果;

 那么如何解决这种问题呢  我们仅需要在白色底图外层在套一个盒子, 然后最外层盒子使用position:fixed方式布局, 里面都是用flex布局, 效果如下图, 就解决了这类问题;

常用的居中对齐方式有很多种例如:

text-align:center;

align-items:center;

justify-content: center;

margin: auto; #子容器在父容器中居中

但是在view中的文字对齐却不能简单的使用text-align: center;来实现,这种办法只能实现文字的水平居中,

要实现水平垂直居中

可使用如下方案

使用flex布局控制其中的文字水平和垂直居中

设置了text-align 和 line-height属性 实现水平和垂直方向居中,在iOS端显示正常居中。但在Android机型特别是小米手机上仅水平居中,垂直方向上会向上偏移。

网上大佬表示:

通过上述,自己尝试了下

PS:后来又尝试使用flex布局 控制居中,发现在iOS和Android上显示正常居中了,不清楚是否是小程序后来实现了兼容。

Android浏览器下line-height垂直居中为什么会偏离?

以上就是关于微信小程序View的布局全部的内容,包括:微信小程序View的布局、解决flex布局导致子元素的宽度无效的问题、小程序: 三栏布局的五种实现方式及优缺点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9426159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存