1.父盒子不限制宽度,子盒子跟随子盒子最长长度
如上图第二行子元素宽度会跟随第一行宽度
解决方案:
对第二行设置:width: max-content;
使其宽度跟随自身内容
2.flex布局时,挤压一侧固定宽度
如上图,左侧宽高为112rpx,宽度不生效
解决方案:
对左侧图片设置宽高的同时,设置最小宽高
效果如下:
3.父元素flex,子元素flex时宽度问题
例1:
如上图,父元素左右flex布局,右侧子元素flex布局且未设置宽度的状态下,对右侧子元素的第三行标签盒子也设置flex布局。此时的第三行宽度为自适应的231px。该宽度 = 100vw - 两侧空白边距 - 左侧图片 - 图片右侧margin。
例2:
如上图,父元素左右flex布局,右侧子元素flex布局且未设置宽度的状态下,对右侧子元素的第一行也设置flex布局。此时第一行的宽度也是跟随父盒子的最大宽度,既231px。再对第一行公司名称设置flex:1,实现不设置文字宽度的超出隐藏。
另:以上两种情况,右侧盒子无需设置flex:1。设置最小高度是为了,当第三行标签不存在的时候,右侧盒子高度会小于图片高度,由于父元素设置了aline-items:center,右侧盒子会居中。
4.flex常规情况下
常规情况下对父盒子flex布局,aline-items:center;右侧盒子flex:1,会自动换行。
但是想要左侧icon在最上方。
解决方案:
给文字和图片一样的行高,保证地址单行的情况下,呈现出居中的样式。然后取消父元素的alien-items:center。
效果如下:(多行行高过小,可以把图片和文字的行高同时增加)
1行地址:
多行地址:
5.小程序scroll-view中文字不换行超出隐藏不生效
display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;text-overflow: ellipsis;overflow: hidden; white-space: normal;
6.div横向滚动,子元素文字超出隐藏不生效
横向滚动时父元素开启了以下属性:
子元素继承了父元素的不换行属性,所以不换行
解决方案:
只需要对子元素增加:
white-space: normal
7.居中
7.1
7.2.水平居中一个div
父:text-align: center;子:display: inline-block;
7.3.垂直居中
父:display: table-cell; vertical-align: middle;或者对所有的子:dispaly:inline-block;vertical-align:middle;或者居中一个子:margin: auto;top:0;left:0;right:0;botton:0; 注:p,span不可用