簡體   English   中英

div 或 p 標記在 flex box 包裝內

[英]div or p tag inside of flex box wrapping

有沒有辦法讓名為 Title 的 logo 文本 div 標簽占據父 flexbox 內的內容空間,而不是包裝。

我不想將只是一個 div 的 Title 設置為 100% 或使用 white-space:nowrap。 我只是希望它像一個 div 一樣填充其內容空間,並且僅在需要時才進行包裝。

還有為什么當另一個元素設置為 100% 時會發生這種情況。 就像下面的代碼片段。

 const styled = window.styled; const Header = styled.div ` width: 100%; display: flex; border: 1px solid gray; align-items: center; width: 100%; min-height: 50px; padding: 10px 10px 10px 30px; background-color: #147189; color: white; `; const Title = styled.div ` `; const TestDiv = styled.div ` width: 100%; border: 1px solid red; `; const App = () => { return ( <div> <Header > <Title > Logo Text </Title> <TestDiv > hello </TestDiv> </Header> </div> ); } ReactDOM.render(<App/>, document.getElementById("react") );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <script src="//unpkg.com/styled-components@4.0.1/dist/styled-components.min.js"></script> <div id="react"></div>

TestDiv定義中刪除width: 100%並添加margin-left: 2rem (或您希望的任何值)以將其與其他 flex 項(即Title組件)分開:

const TestDiv = styled.div `
    margin-left: 2rem; 
    border: 1px solid red; 
`;

或者,您可以將彈性項目的寬度設置為其父項( Header's)寬度的百分比(總計 100%),如下所示:

const Title = styled.div `
    width: 10%;
`;

const TestDiv = styled.div `
    width: 90%;
    border: 1px solid red;
`;

由於您不想使用whitespace: nowrap ,我想一種解決方法是根據標題文本參數化Title div 的寬度。 我將Titlewidth設置為等於width + 3 ch (另外 3 個僅用於填充並確保它不會換行)。 我想如果這可能會變得太長,你可以設置max-width: 25ch或類似的東西。

希望這可以幫助。

 const styled = window.styled; const Header = styled.div ` width: 100%; display: flex; border: 1px solid gray; align-items: center; width: 100%; min-height: 50px; padding: 10px 10px 10px 30px; background-color: #147189; color: white; `; const Title = styled.div ` `; const TestDiv = styled.div ` width: 100%; border: 1px solid red; `; const style = () => ({}); const setWidth = (width) => ({ width: `${width + 3}ch`, }); const App = () => { return ( <div> <Header > <Title style={ setWidth('Logo Text Whatever'.length) } > Logo Text Whatever </Title> <TestDiv > hello </TestDiv> </Header> </div> ); } ReactDOM.render(<App/>, document.getElementById("react") );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <script src="//unpkg.com/styled-components@4.0.1/dist/styled-components.min.js"></script> <div id="react"></div>

如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><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-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div>

[英]How to access a `<div>` tag inside a `<p>` tag?

暫無
暫無

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

相關問題 將DIV包裝在Anchor標簽內或其他位置 如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><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-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div> 在 <div> 並將文字放在標簽內 <p></ p> 將.addEventListener包裝在div標簽中 Flex 盒子里面有 2 個 div 一個里面有 canvas jQuery:使用insertAfter方法在div標簽內創建p標簽 中的圖片 <p> div內的代碼變得大於div的大小 在TinyMCE中將標簽包裝在標簽內 如何使用 vue 在 div 中獲取 img 和 p 標簽? 動態地將對象值添加到div里面 <p> 標簽
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM