欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

我怎樣才能使一個div不大于它的內容?

錢淋西1年前8瀏覽0評論

我有一個類似的布局:

<div>
    <table>
    </table>
</div>

我希望div只擴展到與我的表一樣寬。

解決方案是將div設置為display: inline-block。

您想要一個塊元素,它具有CSS所說的收縮到適合的寬度,而規范并沒有提供一個獲得這種東西的好方法。在CSS2中,縮小到合適并不是一個目標,而是指處理瀏覽器“不得不”憑空獲得寬度的情況。這些情況是:

漂浮物 絕對定位元素 內嵌塊元素 表格元素 當沒有指定寬度時。我聽說他們想在CSS3中加入你想要的東西。現在,湊合著用上面的一個。

不直接公開該特性的決定可能看起來很奇怪,但是有一個很好的理由。它是昂貴的。縮小到適合意味著至少格式化兩次:在知道一個元素的寬度之前,你不能開始格式化它,并且你不能在不遍歷整個內容的情況下計算寬度。另外,人們并不像想象的那樣經常需要收縮配合元件。為什么你的桌子周圍需要額外的格子?也許表格標題就是你所需要的。

我認為使用

display: inline-block;

可以工作,但是我不確定瀏覽器的兼容性。

另一個解決方案是將您的div包裝在另一個div中(如果您希望保持塊行為):

HTML:

<div>
    <div class="yourdiv">
        content
    </div>
</div>

CSS:

.yourdiv
{
    display: inline;
}

display: inline-block為元素添加額外的邊距。

我推薦這個:

#element {
    display: table; /* IE8+ and all other modern browsers */
}

額外收獲:你現在也可以通過添加margin: 0 auto來輕松地將這個新奇的#元素居中。

你可以試試fit-content (CSS3):

div {
  width: fit-content; 
  /* To adjust the height as well */ 
  height: fit-content;
}

瀏覽器支持 規格 有兩個更好的解決方案

顯示:內嵌-塊;

運籌學

顯示:表格;

在這兩個顯示器之外:桌子;更好,因為顯示:inline-block;添加額外的邊距。

對于顯示:內嵌塊;您可以使用負邊距方法來修復額外的空間

對我有用的是:

display: table;

在div中。(在火狐和谷歌Chrome上測試)。

Foo Hack跨瀏覽器支持內嵌塊樣式(2007-11-19)。

不知道這將出現在什么樣的上下文中,但我相信CSS樣式的屬性浮動無論是向左還是向右都會有這種效果。另一方面,它也會有其他副作用,比如允許文本在它周圍浮動。

如果我錯了,請糾正我,我不是100%確定,目前也不能自己測試。

你問題的答案在未來,我的朋友...

即& quot內在的& quot即將推出最新的CSS3更新

width: intrinsic;

不幸的是IE落后于它,所以它還不支持它

關于它的更多信息:CSS內在& amp外部規模模塊級別3,我可以使用嗎?:內在& amp外在尺寸。

現在你必須滿足于& ltspan & gt或者& ltdiv & gt干勁十足地開始做;毅然開始

display: inline-block;

對我來說很好:)

兼容CSS2的解決方案是使用:

.my-div
{
    min-width: 100px;
}

您也可以浮動您的div,這將迫使它盡可能小,但如果您的div中有任何內容是浮動的,您將需要使用clearfix:

.my-div
{
    float: left;
}

評論中提到了這一點,但很難在其中一個答案中找到,所以:

如果您出于任何原因使用display: flex,您可以使用:

div {
    display: inline-flex;
}

這也是跨瀏覽器的廣泛支持。

好的,在很多情況下你甚至不需要做任何事情,因為默認情況下div的高度和寬度是自動的,但是如果不是你的情況,應用內嵌塊顯示會對你有用...看看我為您創建的代碼,它能做您所需要的事情:

div {
  display: inline-block;
}

<div>
  <table>
    <tr>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
      <td>Nunc auctor aliquam est ac viverra. Sed enim nisi, feugiat sed accumsan eu, convallis eget felis. Pellentesque consequat eu leo nec pharetra. Aenean interdum enim dapibus diam.</td>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
    </tr>
  </table>
</div>

只需設置寬度和高度,以適應內容。這很簡單。

div {

    width: fit-content;
    height: fit-content;
    padding: 10px;

}

我在加padding:10px;。如果忽略它,div元素將完全粘在表格上,看起來有點笨拙。填充將在元素的邊框和內容之間創建給定的空間。但這是你的愿望,不是強制性的。

你可以試試這個代碼。遵循CSS部分中的代碼。

div {
  display: inline-block;
  padding: 2vw;
  background-color: green;
}

table {
  width: 70vw;
  background-color: white;
}

<div>
    <table border="colapsed">
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>
    </table>
</div>

只需在你的CSS文件中加入一個樣式

div { 
    width: fit-content; 
}

嘗試使用width: max-content屬性根據內容大小調整div的寬度。

試試這個例子,

<!DOCTYPE html>
<html>
<head>
<style>
div.ex1 {
  width:500px;
  margin: auto;
  border: 3px solid #73AD21;
}

div.ex2 {
  width: max-content;
  margin: auto;
  border: 3px solid #73AD21;
}
</style>
</head>
<body>

<div class="ex1">This div element has width 500px;</div>
<br>
<div class="ex2">Width by content size</div>

</body>
</html>

只需使用display:inline;(或空白:nowrap).

我希望你覺得這是有用的。

您可以以@user473598的身份使用inline-block,但是要小心舊的瀏覽器..

/* Your're working with */
display: inline-block;

/* For IE 7 */
zoom: 1;
*display: inline;

/* For Mozilla Firefox < 3.0 */
display:-moz-inline-stack;

Mozilla根本不支持內聯塊,但是他們有-moz-inline-stack,也差不多

一些跨瀏覽器內聯塊顯示屬性: https://CSS-tricks . com/snippet/CSS/cross-browser-inline-block/

您可以在https://robertnyman . com/2010/02/24/CSS-display-inline-block-why-it-rocks-and-why-it-sucks/中看到一些帶有此屬性的測試

我知道人們有時不喜歡表格,但我必須告訴你,我嘗試了css內聯方法,它們在一些div中工作,但在其他div中不工作,所以,在表格中包含擴展div真的更容易...和...它可以有也可以沒有inline屬性,但仍然是這個表來保存內容的總寬度。=)

這里有一個工作演示-

.floating-box {
    display:-moz-inline-stack;
    display: inline-block;

    width: fit-content; 
    height: fit-content;

    width: 150px;
    height: 75px;
    margin: 10px;
    border: 3px solid #73AD21;  
}

<h2>The Way is using inline-block</h2>

Supporting elements are also added in CSS.

<div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
</div>

我的CSS3 flexbox解決方案有兩種風格:頂部的表現像一個span,底部的表現像一個div,在包裝器的幫助下占據所有寬度。它們的類分別是“top”、“bottom”和“bottomwrapper”。

body {
    font-family: sans-serif;
}
.top {
    display: -webkit-inline-flex;
    display: inline-flex;
}
.top, .bottom {
    background-color: #3F3;
    border: 2px solid #FA6;
}
/* bottomwrapper will take the rest of the width */
.bottomwrapper {
    display: -webkit-flex;
    display: flex;
}
table {
    border-collapse: collapse;
}
table, th, td {
    width: 280px;
    border: 1px solid #666;
}
th {
    background-color: #282;
    color: #FFF;
}
td {
    color: #444;
}
th, td {
    padding: 0 4px 0 4px;
}

Is this
<div class="top">
	<table>
        <tr>
            <th>OS</th>
            <th>Version</th> 
        </tr>
        <tr>
            <td>OpenBSD</td>
            <td>5.7</td> 
        </tr>
        <tr>
            <td>Windows</td>
            <td>Please upgrade to 10!</td> 
        </tr>
    </table>
</div>
what you are looking for?
<br>
Or may be...
<div class="bottomwrapper">
    <div class="bottom">
    	<table>
            <tr>
                <th>OS</th>
                <th>Version</th> 
            </tr>
            <tr>
                <td>OpenBSD</td>
                <td>5.7</td> 
            </tr>
            <tr>
                <td>Windows</td>
                <td>Please upgrade to 10!</td> 
            </tr>
        </table>
    </div>
</div>
this is what you are looking for.

通過篡改Firebug,我找到了屬性值-moz-fit-content,這正是OP想要的,可以如下使用:

width: -moz-fit-content;

雖然它只在Firefox上運行,但我找不到任何適用于Chrome等其他瀏覽器的等效軟件。

這將使父div寬度與最大元素寬度相同。

嘗試顯示:inline-block;。為了跨瀏覽器兼容,請使用下面的css代碼。

div {
  display: inline-block;
  display:-moz-inline-stack;
  zoom:1;
  *display:inline;
  border-style: solid;
  border-color: #0000ff;
}

<div>
  <table>
    <tr>
      <td>Column1</td>
      <td>Column2</td>
      <td>Column3</td>
    </tr>
  </table>
</div>

div{
width:fit-content;
}

<div>
    <table>
    </table>
</div>

我已經解決了一個類似的問題(我不想使用display: inline-block,因為項目是居中的),方法是在div標簽中添加一個span標簽,并將CSS格式從外部div標簽移動到新的內部span標簽。如果display: inline block不適合你,就把它作為另一個選擇。

我們可以在div元素上使用兩種方法中的任何一種:

display: table;

或者,

display: inline-block;

我更喜歡用display:table;,因為它自己處理所有額外的空格。而顯示:內嵌塊需要一些額外的空間固定。