我的布局类似于:
我希望div
只扩展到我的范围table
.
解决方案是将您设置div
为display: inline-block
.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh. | 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. | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh. |
这已在评论中提及,很难在其中一个答案中找到:
如果您display: flex
出于任何原因使用,您可以使用:
div { display: inline-flex; }
这也得到了浏览器的广泛支持.
您只需使用display: inline;
(或white-space: nowrap;
)即可.
希望这个对你有帮助.
this content inside the div being inside a table, needs no inline properties and the table is the one expanding to the content of this div =)
|
我知道人们有时候不喜欢桌子,但是我得告诉你,我尝试过css inline hacks,他们有点在一些div中工作但是在其他人没有,所以,真的只是更容易将扩展div放入一个表......并且......它可以具有或不具有内联属性,并且表仍然是将保持内容总宽度的表.=)
您可以使用inline-block
@ user473598,但要注意旧版浏览器..
/* 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
大致相同
一些跨浏览器的inline-block
显示属性:https:
//css-tricks.com/snippets/css/cross-browser-inline-block/
您可以在以下网址中查看使用此属性的一些测试:https://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/
这是一个工作演示 -
.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;
}
The Way is using inline-block
Supporting elements are also added in CSS.
Floating box
Floating box
Floating box
Floating box
Floating box
Floating box
Floating box
Floating box
只需将样式放入CSS文件即可
div { width: fit-content; }
我的CSS3 flexbox解决方案有两种形式:顶部的那个表现得像一个跨度,底部的表现就像一个div,在包装器的帮助下占据所有宽度.他们的课程分别是"顶部","底部"和"底部包装".
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
OS
Version
OpenBSD
5.7
Windows
Please upgrade to 10!
what you are looking for?
Or may be...
OS
Version
OpenBSD
5.7
Windows
Please upgrade to 10!
this is what you are looking for.
// HTML elements
这将使父div宽度与最大元素宽度相同.
试试display: inline-block;
.要使其与浏览器兼容,请使用以下css代码.
div {
display: inline-block;
display:-moz-inline-stack;
zoom:1;
*display:inline;
border-style: solid;
border-color: #0000ff;
}
Column1
Column2
Column3
篡改Firebug我发现了属性值-moz-fit-content
,它完全符合OP的要求,可以按如下方式使用:
width: -moz-fit-content;
虽然它只适用于Firefox,但我找不到任何与Chrome等其他浏览器相同的功能.
我display: inline-block
通过在span
标签内添加div
标签,并将CSS格式从外部div
标签移动到新的内部span
标签,解决了类似的问题(我不想使用,因为项目居中).如果display: inline block
对你来说不合适,那就把它当作另一种选择.
我们可以在div
元素上使用以下两种方式中的任何一种:
display: table;
要么,
display: inline-block;
我更喜欢使用display: table;
,因为它自己处理所有额外的空间.虽然display: inline-block
需要一些额外的空间固定.
div{ width:auto; height:auto; }
修改(如果您有多个孩子,则有效):您可以使用jQuery(查看JSFiddle链接)
var d= $('div'); var w; d.children().each(function(){ w = w + $(this).outerWidth(); d.css('width', w + 'px') });
别忘了包含jQuery ......
在这里查看JSfiddle
如果你有容器破线,在几小时后寻找一个好的CSS解决方案并找不到,我现在使用 jQuery代替:
$('button').click(function(){
$('nav ul').each(function(){
$parent = $(this).parent();
$parent.width( $(this).width() );
});
});
nav {
display: inline-block;
text-align: left; /* doesn't do anything, unlike some might guess */
}
ul {
display: inline;
}
/* needed style */
ul {
padding: 0;
}
body {
width: 420px;
}
/* just style */
body {
background: #ddd;
margin: 1em auto;
}
button {
display: block;
}
nav {
background: #bbb;
margin: 1rem auto;
padding: 0.5rem;
}
li {
display: inline-block;
width: 40px;
height: 20px;
border: solid thin #777;
margin: 4px;
background: #999;
text-align: center;
}