簡體   English   中英

為什么 flex-direction: row 僅在我將元素設置為 display: inline-block 時才起作用?

[英]Why does flex-direction: row only work when I set the element to display: inline-block?

flex-direction:row僅在我在nav li{}內添加display: inline-block時才有效。 我知道是因為-webkit-flex-direction: row-reverse; 正在工作。 但其他屬性如justify-content: space-between; 不工作。

而相反; 如果我在nav li{}刪除display: inline-block ,那么只有flex-direction:column正在工作。 問題是什么?

 nav{ background: grey; display:-webkit-flex; -webkit-flex-direction: row; } nav li{ list-style: none; }
 <nav> <ul> <li><a href="#about">About</a><li> <li><a href="#skills">Skills</a></li> <li><a href="#education">Education</a></li> <li><a href="#experience">Experience</a></li> <li><a href="#portfolio">Portfolio</a></li> </ul> </nav>

它只會給你一種它有效的錯覺。

<nav>級別設置的 Flex 使<ul>成為一個彈性項目,並且不會影響<li>元素。

您希望 Flex 容器為<ul>

在 a 中設置“width: auto”<div> 用“顯示:彎曲; flex-direction:行”不起作用</div><div id="text_translate"><p>我正在嘗試將一堆 div 並排放置,從左到右。 所以我使用 flexbox 方向設置為row 。</p><p> 我希望這些 div 中的每一個都從里面的內容中導出它們的高度和寬度,因此我將它們的高度和寬度保留為默認值。</p><p> 最后,我想使用 svg 作為背景。 為此,我使用了一個網格容器並將 svg 和 div 放置在同一列和同一行中,如此<a href="https://stackoverflow.com/a/51949049/9613633" rel="nofollow noreferrer">stackoverflow 帖子</a>中所建議的那樣。 我將 svg 的高度和寬度設置為100% ,以確保它填充整個背景。</p><p> 但是,當我將所有內容組合在一起時,div 的寬度設置不正確。 div 的高度似乎是由里面的內容設置的,但寬度似乎總是默認為300px 。 對於我的一生,我無法弄清楚這個寬度是如何計算的。 如果內容比300px寬,那么一切都按預期工作。 但是如果內容小於300px ,則容器永遠不會縮小以適應。</p><p> 如何確保 div 始終縮小以適應? 請參閱下面的代碼示例: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-css lang-css prettyprint-override"> .top { padding: 20px; display: flex; flex-direction: row; }.grid-container { background-color: red; display: grid; }.svg { grid-column: 1; grid-row: 1; width: 100%; height: 100%; }.content { grid-column: 1; grid-row: 1; font-size: 100px; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> This div has calculated width 300px for some reason &lt;div class="top"&gt; &lt;div class="grid-container" key="1"&gt; &lt;svg class="svg" viewBox="-10 -10 20 20" preserveAspectRatio="none"&gt; &lt;polygon strokeWidth="0" fill="yellow" points="0,-10 10,0 0,10 -10,0" /&gt; &lt;/svg&gt; &lt;div class="content"&gt; ab &lt;/div&gt; &lt;/div&gt; &lt;,-- more grid-containers --&gt; &lt;/div&gt; This works as expected &lt;div class="top"&gt; &lt;div class="grid-container"&gt; &lt;svg class="svg" viewBox="-10 -10 20 20" preserveAspectRatio="none"&gt; &lt;polygon strokeWidth="0" fill="yellow" points="0,-10 10,0 0,10 -10,0" /&gt; &lt;/svg&gt; &lt;div class="content"&gt; abcdefghijkl &lt;/div&gt; &lt;/div&gt; &lt;!-- more grid-containers --&gt; &lt;/div&gt;</pre></div></div><p></p></div>

[英]Setting “width: auto” inside a <div> with “display: flex; flex-direction: row” doesn't work

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 顯示設置為內聯塊的元素在MVC for循環中不起作用 在顯示中設置時,Flex-basis不作為寬度:flex設置為flex-direction:row 當我將 flex-direction 設置為行時,列中的自定義圖標和文本? 為什么內聯塊以這種方式工作? 為什么在使用display:inline-block;時div的順序會更改? CSS:什么時候使用display flex和inline-block? 在 a 中設置“width: auto”<div> 用“顯示:彎曲; flex-direction:行”不起作用</div><div id="text_translate"><p>我正在嘗試將一堆 div 並排放置,從左到右。 所以我使用 flexbox 方向設置為row 。</p><p> 我希望這些 div 中的每一個都從里面的內容中導出它們的高度和寬度,因此我將它們的高度和寬度保留為默認值。</p><p> 最后,我想使用 svg 作為背景。 為此,我使用了一個網格容器並將 svg 和 div 放置在同一列和同一行中,如此<a href="https://stackoverflow.com/a/51949049/9613633" rel="nofollow noreferrer">stackoverflow 帖子</a>中所建議的那樣。 我將 svg 的高度和寬度設置為100% ,以確保它填充整個背景。</p><p> 但是,當我將所有內容組合在一起時,div 的寬度設置不正確。 div 的高度似乎是由里面的內容設置的,但寬度似乎總是默認為300px 。 對於我的一生,我無法弄清楚這個寬度是如何計算的。 如果內容比300px寬,那么一切都按預期工作。 但是如果內容小於300px ,則容器永遠不會縮小以適應。</p><p> 如何確保 div 始終縮小以適應? 請參閱下面的代碼示例: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-css lang-css prettyprint-override"> .top { padding: 20px; display: flex; flex-direction: row; }.grid-container { background-color: red; display: grid; }.svg { grid-column: 1; grid-row: 1; width: 100%; height: 100%; }.content { grid-column: 1; grid-row: 1; font-size: 100px; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> This div has calculated width 300px for some reason &lt;div class="top"&gt; &lt;div class="grid-container" key="1"&gt; &lt;svg class="svg" viewBox="-10 -10 20 20" preserveAspectRatio="none"&gt; &lt;polygon strokeWidth="0" fill="yellow" points="0,-10 10,0 0,10 -10,0" /&gt; &lt;/svg&gt; &lt;div class="content"&gt; ab &lt;/div&gt; &lt;/div&gt; &lt;,-- more grid-containers --&gt; &lt;/div&gt; This works as expected &lt;div class="top"&gt; &lt;div class="grid-container"&gt; &lt;svg class="svg" viewBox="-10 -10 20 20" preserveAspectRatio="none"&gt; &lt;polygon strokeWidth="0" fill="yellow" points="0,-10 10,0 0,10 -10,0" /&gt; &lt;/svg&gt; &lt;div class="content"&gt; abcdefghijkl &lt;/div&gt; &lt;/div&gt; &lt;!-- more grid-containers --&gt; &lt;/div&gt;</pre></div></div><p></p></div> 為什么圖像使用顯示:內聯但行為類似於內聯塊元素 如何在 JavaScript 中應用 display: flex 和 flex-direction: row? 在 flex-direction: column 中顯示一行中的 flex 項
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM