色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為什么唐& # 39;t flex項目縮小超過內(nèi)容大小?

阮建安2年前9瀏覽0評論

我有4個flexbox列,一切都很好,但是當我向一個列添加一些文本并將其設置為大字體時,由于flex屬性,它使該列比它應有的寬度更寬。

我嘗試使用word-break: break-word,這很有幫助,但是當我將列的寬度調(diào)整到非常小的時候,文本中的字母被分成多行(每行一個字母),但是列的寬度并沒有小于一個字母的大小。

觀看此視頻 (開始時,第一列是最小的,但當我調(diào)整窗口大小時,它是最寬的一列。我只想永遠尊重flex設置;柔性尺寸1 : 3 : 4 : 4)

我知道,將字體大小和列填充設置得更小會有所幫助...但是還有其他的解決方法嗎?

我不能使用溢出-x:隱藏。

JSFiddle

.container {
  display: flex;
  width: 100%
}
.col {
  min-height: 200px;
  padding: 30px;
  word-break: break-word
}
.col1 {
  flex: 1;
  background: orange;
  font-size: 80px
}
.col2 {
  flex: 3;
  background: yellow
}
.col3 {
  flex: 4;
  background: skyblue
}
.col4 {
  flex: 4;
  background: red
}

<div class="container">
  <div class="col col1">Lorem ipsum dolor</div>
  <div class="col col2">Lorem ipsum dolor</div>
  <div class="col col3">Lorem ipsum dolor</div>
  <div class="col col4">Lorem ipsum dolor</div>
</div>

您遇到了flexbox默認設置。

伸縮項目不能小于其內(nèi)容在主軸上的大小。

默認值為...

最小寬度:自動 最小高度:自動 ...分別用于行方向和列方向的彈性項目。

您可以通過將彈性項目設置為以下值來覆蓋這些默認值:

最小寬度:0 最小高度:0 溢出:隱藏(或任何其他值,除了可見) Flexbox規(guī)格 4.5.Flex的自動最小尺寸 項目

為了給彈性項目提供一個更合理的默認最小尺寸,這個 規(guī)范引入了一個新的自動值作為 CSS 2.1中定義的最小寬度和最小高度屬性。

關(guān)于自動價值...

在溢出在主軸中可見的伸縮項目上,當在伸縮項目的主軸最小尺寸屬性上指定時,指定自動最小尺寸。否則計算結(jié)果為0。

換句話說:

最小寬度:自動和最小高度:自動默認值僅在溢出可見時適用。 如果溢出值不可見,則min-size屬性的值為0。 因此,溢出:隱藏可以替代最小寬度:0和最小高度:0。 和...

最小尺寸算法僅適用于主軸。 例如,默認情況下,行方向容器中的flex項不會獲得min-height: auto。 關(guān)于更詳細的解釋,請看這篇文章: 在伸縮方向:行和伸縮方向:列中最小寬度呈現(xiàn)不同 你已經(jīng)應用了最小寬度:0,項目仍然沒有縮小? 嵌套Flex容器

如果您在HTML結(jié)構(gòu)的多個級別上處理flex項目,可能有必要在更高級別上覆蓋默認的最小寬度:自動/最小高度:自動。

基本上,具有min-width: auto的較高級別的flex項目可以防止嵌套在min-width: 0下面的項目收縮。

示例:

彈性項目不會縮小到小于其內(nèi)容 讓孩子適應父母 空白css屬性給flex帶來了問題 瀏覽器渲染注釋 Chrome與Firefox / Edge

至少從2017年開始,Chrome似乎要么(1)恢復到最小寬度:0 /最小高度:0默認值,要么(2)根據(jù)一種神秘的算法在某些情況下自動應用0默認值。(這可能就是他們所說的干預。)因此,許多人看到他們的布局(尤其是期望的滾動條)在Chrome中可以正常工作,但在Firefox / Edge中卻不行。這個問題在這里有更詳細的介紹:Firefox和Chrome之間的伸縮差異

IE11

如規(guī)范中所述,最小寬度和最小高度屬性的自動值是“新的”。這意味著一些瀏覽器可能仍然默認呈現(xiàn)0值,因為它們在值被更新之前實現(xiàn)了flex布局,并且因為0是CSS 2.1中最小寬度和最小高度的初始值。IE11就是這樣一種瀏覽器。其他瀏覽器已經(jīng)更新到flexbox規(guī)范中定義的較新的自動值。

修訂版演示

.container {
  display: flex;
}

.col {
  min-height: 200px;
  padding: 30px;
  word-break: break-word
}

.col1 {
  flex: 1;
  background: orange;
  font-size: 80px;
  min-width: 0;   /* NEW */
}

.col2 {
  flex: 3;
  background: yellow
}

.col3 {
  flex: 4;
  background: skyblue
}

.col4 {
  flex: 4;
  background: red
}

<div class="container">
  <div class="col col1">Lorem ipsum dolor</div>
  <div class="col col2">Lorem ipsum dolor</div>
  <div class="col col3">Lorem ipsum dolor</div>
  <div class="col col4">Lorem ipsum dolor</div>
</div>

我發(fā)現(xiàn)這些年來flex和grid一直困擾著我,所以我打算提出以下建議:

* { min-width: 0; min-height: 0; }

然后只需使用最小寬度:自動或最小高度:自動,如果你需要的行為。

事實上,為了使所有布局更加合理,還要考慮框的大小:

* { box-sizing: border-box; min-width: 0; min-height: 0; }

有人知道會有什么奇怪的后果嗎?幾年來,我沒有遇到任何混合使用上述方法的情況。事實上,我想不出有哪種情況下我希望從內(nèi)容向外布局到flex/grid,而不是從flex/grid向內(nèi)布局到內(nèi)容——當然,如果它們存在,也很少。所以這感覺像是一個糟糕的違約。但也許我錯過了什么?

對你的問題的答案是,默認情況下,瀏覽器傾向于向讀者顯示盡可能多的信息(而不是隱藏任何東西)。

這是默認情況下發(fā)生的,甚至包括在白色背景上顯示默認的黑色字體(為了最大的頁面對比度和可讀性),在內(nèi)容大于視口高度(或?qū)挾?的地方添加滾動條,或者仍然顯示來自標記(或背景顏色)的內(nèi)容,即使這被錯誤地放置在& lt/body & gt;或者甚至& lt/html & gt;html文件中的。

在CSS的上下文中,這同樣適用,但是您也可以在此基礎上進行許多自定義。

即使在屏幕上使用大字體(如:50em)這最初充當溢出元素(并通過使用display: flex將字體放入靈活的子容器中)不會改變這種默認行為,除非您使用overflow: hidden或以某種方式調(diào)整元素的大小。

一個優(yōu)雅的解決方案是使用動態(tài)調(diào)整字母大小,例如

字體大小:calc(0.5 em+2ww)

這甚至在響應場景中也能很好地工作。

正如前面的回答所提到的,flex項目不能小于其內(nèi)容在主軸上的大小(出于同樣的原因,這不僅是特定于在CSS中實現(xiàn)的flexbox模型,也是因為內(nèi)部瀏覽器的工作方式)。即使是一個長單詞,如果它比顯示寬度長,也會顯示滾動條,就好像是一個固定大小的塊類型元素。

這在舊的html 4.01規(guī)范中被稱為

"按照慣例,visual HTML用戶代理將文本行換行以適應 可用的邊距。包裝算法取決于腳本 格式化。

例如,在西文腳本中,文本只能以白色換行 空間。"

如第9.5.3段所示。這意味著,從那時起,默認情況下文本必須連續(xù)顯示(除非我們決定分割它,但不是在單個字符級別:一個120em大小的單個非白色字符將觸發(fā)瀏覽器上的滾動條顯示)。

第9.1段中的詞語也有明確定義,出處同上:

我們使用術(shù)語& quotword & quot這里的意思是& quot非空白序列 字符& quot

顯示任何單詞的原始格式的目的是為了不破壞、隱藏或歪曲原始信息、代碼作者的意思或意圖。因此,我們也有& ampnbsp用于將兩個相連的單詞保持在同一行——當斷開它們時可能會造成混亂(例如紐約,晚上10點,10公里/小時,10點等)

對于下面的代碼,添加寬度:100%解決了我的問題。

.post-cover .inner {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-content: flex-start;
    align-items: flex-start;
    word-break: break-all;
    z-index: 21;
}
.post-cover .article-page {
    padding: 20px 0;
    margin-bottom: 40px;
    font-size: 0.875em;
    line-height: 2.0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;   /* Add this */
}

我嘗試了所有的方法,甚至把下面的代碼放到了index.css中。

* {
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
}

但是什么都沒用。

最后,我制作了我想要縮小的div,它的內(nèi)容是有位置:absolute。然后就開始萎縮了。 它的父div需要定義高度和寬度。這可能不是每個場景的最佳解決方案,但如果這對你有用,那就好!