1. 程式人生 > >flex佈局中遇到的坑

flex佈局中遇到的坑

如題,這些天在github上找了個施展專案練手,跟著些程式碼,但是很快就出現了問題。

一、問題描述

使用flex佈局,第一個元素樣式發生錯誤,如圖:

強迫症患者表示傷不起!

程式碼如下:

HTML:

<div class="type-bar">

<div v-for="(cate,index) in category" :key="index">

<img v-lazy="cate.image" width="90%">

<span>{{cate.mallCategoryName}}</span>

</div>

</div>

這個是vue專案,不會的小夥伴用幾張本地圖代替就可以了。

CSS:

.type-bar{
       background-color: #fff;
       margin:0 .3rem .3rem .3rem;
       border-radius: .3rem;
       font-size: 14px;
       display: flex;
       flex-direction: row;
       flex-wrap: nowrap;
   }
   .type-bar div{
       padding: .3rem;
       font-size: .75rem;
       text-align: center;
   }

css中用了rem佈局,這個很簡單,大家換成px也行,想要了解rem的,百度一下就OK了。

二、解決方案

老實說我也沒明白是什麼原理,本身也是前端菜鳥,百度了一下,最終找到了解決方案,如下

在flex的子元素中新增

flex-grow: 1;
flex-basis: 0%;

即可!

修改後HTML程式碼不變,只是在CSS中加入兩行程式碼即可!

最後CSS程式碼如下:

.type-bar{
       background-color: #fff;
       margin:0 .3rem .3rem .3rem;
       border-radius: .3rem;
       font-size: 14px;
       display: flex;
       flex-direction: row;
       flex-wrap: nowrap;
   }
   .type-bar div{
       padding: .3rem;
       font-size: .75rem;
       text-align: center;
       flex-grow: 1;
       flex-basis: 0%;
   }

最後佈局終於正確了,治好了我的強迫症,如下:

問題解決!

我也是個前端菜鳥,所以也不知道解決方案到底是否正確,但簡單的測試後,發現沒有問題,希望可以幫助到更多的小夥伴,如果大家有更好的解決方案,也可以給我留言!

相關推薦

flex佈局遇到的

如題,這些天在github上找了個施展專案練手,跟著些程式碼,但是很快就出現了問題。 一、問題描述 使用flex佈局,第一個元素樣式發生錯誤,如圖: 強迫症患者表示傷不起! 程式碼如下: HTML: <div class="type-bar"> &l

解決flex佈局 space-between方法的排版問題

flex佈局中 justify-content: space-between方法的排版問題 flex給我們的佈局帶來了很大的方便 ,但有時候也會碰到一些問題,比如space-between最後一行元素的排列問題 問題:假如我們有8個元素 <ul>

從零開始學習HTML+CSS(4)Flex佈局的排列與換行

0.參考網址:https://www.runoob.com/w3cnote/flex-grammar.html 1.排列 預設值:橫向排列(從左邊開始排) div { display:flex;/*設定為flex佈局*/ flex-direction:row;/*這

Flex佈局Flex-Grow無效問題

最近在寫專案的時候用了一個新的css屬性flex,這個屬性之前測試過了,可以用,而且看了他的相容性,直接上圖(2017-08-07) 就這個相容性,已經可以滿足大部分的主流瀏覽器了,更何況我是微信開發,近似可以看做是android Browser的相容性,那麼

flex佈局,保持內容不超出容器的解決辦法

在移動端,flex 佈局很好用,它能夠根據裝置寬度來自動調整容器的寬度,用起來很方便,已經越來越離不開它,但是最近在做專案的時候發現一個問題。 就是在一個設定了 flex:1 的容器中,如果文字很長,這時候文字就會超出容器,而不是呆在設定好的動態剩餘的空間中。

flex佈局align-items 和align-content的區別

看了很多翻譯的技術文件,這一塊都講得模糊不清,看到stackoverflow上有人提問後的回答覺得十分清晰,特來分享,有不當之處歡迎指正。 align-items The align-items property applies to all fl

css---flex佈局,如何響應式 得水平垂直居中?flex子元素左右 上下居中

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <st

概述flex佈局align-items 和align-content的區別

align-items屬性適用於所有的flex容器,它是用來設定每個flex元素在側軸上的預設對齊方式。 align-content屬性只適用於多行的flex容器,並且當側軸上有多餘空間使flex容器內的flex線對齊。 align-items和align-con

CSSflex佈局align-items 和align-content的區別

align-items屬性適用於所有的flex容器,它是用來讓每一個單行的容器居中而不是讓整個容器居中。單行時候垂直居中使用align-items: center; align-content屬性只適用於多行的flex容器,並且當側軸上有多餘空間使flex容器內的flex

flex佈局對齊專案和對齊內容的區別

(效果的話直接去看最下面的圖)對齊項 align-items屬性適用於所有Flex容器,並設定Flex專案沿著每條flex 線的交叉軸的預設對齊方式。 對齊項屬性適用於所有的柔性容器,它是用來設定每個柔性元素在側軸上的預設對齊方式。 還有一位回答者的回答也很好,如

flex佈局flex-grow與flex-shrink的計算方式

  CSS 中的 Flex(彈性佈局) 可以很靈活的控制網頁的佈局,其中決定 Flex 佈局內專案寬度/高度的是三個屬性: flex-basis, flex-grow, flex-shrink. flex-basis   flex-basis 決定了專案佔據主軸的空間,除非使用 box-sizing 進行設定

聊聊Flexbox佈局flex的演演算法

到目前為止,Flexbox佈局應該是目前最流行的佈局方式之一了。而Flexbox佈局的最大特性就是讓Flex專案可伸縮,也就是讓Flex專案的寬度和高度可以自動填充Flex容器剩餘的空間或者縮小Flex專案適配Flex容器不足的寬度。而這一切都是依賴於Flexbox屬性中的flex屬性來完成。一個Flex容器

CSS3flex佈局

Flex是Flexible Box的縮寫,意為“彈性佈局”,用來為盒狀模型提供最大的靈活性。設為Flex佈局以後,子元素的float、clear和vertical-align屬性將失效。它既可以應用於容器中,也可以應用於行業元素。 基本概念 採用Flex佈局的元素,稱為Flex容器(fl

css3 display:flex;(flex佈局)+img標籤在div水平垂直居中

img標籤在div中水平垂直居中--兩種實現方式 第一種方式: text-align:center; vertical-align:middle; div{ text-align: center; vertic

flex佈局flex-basis採

場景:   容器設定為display: flex,容器裡的子專案部分設定 flex: auto,子專案的寬高自適應正常,但如果再往子專案裡巢狀一個(如:div),並設定高度(如:height: 100%),發現該元素高度不符合預期。 原始碼: <!DOCTYPE html> <h

CSSFlex佈局

在瞭解Flex佈局前我們先看一看傳統的佈局: 佈局的傳統解決方案,基於盒子模型,依賴 display 屬性 + position 屬性 + float屬性。它對於那些特殊佈局非常不方便,比如,垂直居中就不容易實現  下面就該Flex佈局登場了: 2009年,W3C 提出

css3 display:flex;(flex佈局)+img標籤在div水平垂直居中

第一種方式: text-align:center; vertical-align:middle; div{ text-align: center; vertical-align:middle;w

Qt與vs編寫的dll通訊

一、前言: 因為實際開發過程中遇到Qt呼叫vs編寫的sdk,故用vs封裝成純C++的dll提供Qt使用,因為懶得遷移整個工程到Qt環境,畢竟沒學過Qt,光是搭建環境,怎麼使用creator就很多時間折騰了,時間成本很高。 二、新建vs的dll 1、生成dll、

淺談CSS3的部分屬性——flex佈局

display:Flex 簡介: flex是Flexible Box的縮寫,即“彈性佈局” 設定display:flex;屬性後,子元素的float,clear和vertical-align屬性將不再起作用 此屬性既適用於塊級元素也適用於行內元素 概念

css筆記:在flex佈局和table-cell佈局實現居中對齊的辦法

當使用 flex 佈局時,justify-content 表示主軸方向的位置佈局,align-items 表示從軸方向的佈局,text-align 表示文字佈局。 主、從軸方向佈局有三種:flex-start、center、flex-end。 可以通過fle