小程序的圖文列表,圖片大小固定,文本內容很多需要換行時圖片被擠變形問題

今天做了一個圖文列表,如圖
image.png

咋一看,沒什么問題。代碼如下:

<!-- wxml -->
<view class='allProject-body'>
    <view class='title'>所有項目</view>
    <block wx:for="{{allProjects}}" wx:key="*this">
      <view class='projectItem'>
        <image src='{{item.url}}' mode='center'></image>
        <view class='content'>
          <view class='name'>{{item.name}}</view>
          <view class='message'>{{item.message}}</view>
        </view>
      </view>
    </block>
  </view>
.allProject-body{
  width: 100%;
  display: flex;
  flex-direction: column;
}
.allProject-body .title{
  font-size: 15px;
  color: #fff;
  justify-content: center;
  text-align: center;
  margin-top: 10px;
  background-color: rebeccapurple;
}
.allProject-body .projectItem{
  width: 100%;
  display: flex;
}
.allProject-body .projectItem  image{
  width: 110px;
  height: 110px;
  margin: 10px;
}

.allProject-body .projectItem .content{
  margin-top: 10px;
  margin-right: 10px;
}
.allProject-body .projectItem .content .name{
  font-size: 15px;
}
.allProject-body .projectItem .content .message{
  font-size: 13px;
  color: gray;
  margin-top: 5px;
}

設計理念是用flex布局,圖片和文本在主軸上的對其方式是row,圖片固定寬高,文本內容填充。這種設計表面上沒有什么問題,但是當文本的內容足夠多,需要換行時,bug就出現了。如下圖:
image.png

由于文本內容過多,圖片被擠變形了。
解決辦法是給文本樣式設置width(寬度可隨意設置),利用flex的flex-grow和
flex-shrink屬性,來解決文本怎么分配剩余空間的問題。代碼改動如下:


image.png
image.png
運行后,完美解決,不管內容怎么換行,還是在iPhone5、iPhone6上運行都沒有問題。
本文需要對flex布局有較深的理解。如果本文對你有點幫助,就給個贊唄!
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • H5移動端知識點總結 閱讀目錄 移動開發基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,612評論 0 26
  • 移動開發基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,512評論 0 6
  • 閱讀目錄移動開發基本知識點 calc基本用法box-sizing的理解及使用理解display:box的布局理解f...
    張憲宇閱讀 1,558評論 0 1
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,792評論 0 2
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,328評論 0 11