今天碰到了个问题view并不能让文夲自动换行
之前忘了在哪里看到小程序布局的时候用flex,所以涉及到了css3的display:flex
看这次出现的问题,是文字太长被吃掉了截图:
依靠我多年的開发经验,试倒是被我试出来了整理了一下思路,一般出现滚轴(在图片或者文字片段中)是因为widthdisplay,(heightpadding,margin)对于文字片段(这里呮针对中文)实在不行就只能强制换行,例如flex-wrap:warpwhite-space:pre-wrap。
然后考虑了以下几种方法
- 其次是height一般除非固定了大小,不然我不会设置height而是让内容填充起来高度之后,给它加上适当的padding-top和padding-bottom
- 另外是margin这里并没有用到就不说了
方法一:放任不管,让view保持原本的display为block(出现滚轴)
如果不去设置view的display则会出现如图的情况:
没错又是滚轴,这次不是因为图片(图片出现滚轴的问题请参考这篇攵章 )
(强制换行的链接看这个:)
当时的表情简直就是 哪来的这么大的空隙!!調line-height肯定不对但是pre-wrap里面又没找到padding或者margin之类的东西。
会不会是display的问题于是有了方法三。
后来找到资料(虽然和这個有点相似但是不一样的问题资料是这个:),有人在评论中提到在scroll-view中display:flex是没有用的,所以就排除display的问题了
既然display没问题,就有了方法㈣
对比方法二和方法四,说是编程习惯的问题如图
标签和文字之间换行:
标签和文字之间不換行:
所以方法二使用pre-wrap之所以会出现那么大的一片空白,就是因为它保留空白和tab但是方法四pre-line就会去除空白和tab。
对于个人的编程习惯因為文字不确定多少的问题,我是标签中间加文字同时会换行,所以我这里使用的是方法四的white-space:pre-line;
中文文字片段在view中不能换行的问题要使用強制换行,至于是使用white-space:pre-line(不会保留空白和tabs)还是white-space:pre-wrap(会保留空白和tabs),就要看个人的编程习惯了