假设我在一个
元素中有一个元素,如何使用CSS使
的宽度和高度与其内容相同?
inline-block 是正确的。
<div style="border:1px solid red;display:inline-block">
<img src="http://www.google.com/intl/en_ALL/images/srpr/logo1w.png" alt="" style="border:1px solid green" />
</div>
默认情况下,div的高度将相同 -- 除非您对其进行限制或添加填充或边距。但默认宽度将填充可用空间。如果要将宽度折叠以“收缩包裹”内容,则必须将其浮动或使其绝对定位。
这种方法的问题(根据您的需求)在于这两个方法都会有效地将其从正常布局中删除。如果您仍需要它成为正常布局的一部分,则必须执行以下操作(包括边框以便您知道正在发生的情况):
<html>
<head>
<title>pdf test</title>
<style type="text/css">
#a {
position:relative;
border: 1px solid green;
}
#b {
float: left;
border: 1px solid red;
}
</style>
</head>
<body>
<div>Top</div>
<div id="a">
<div id="b">
asdf<br/>
typewriter</br>
fdsa
</div>
<div style="clear:both;"></div>
</div>
<div>
Bottom
</div>
</body>
</html>
#a
是position: relative
。这设置了一个定位上下文,在其中#b
将浮动。这种“双层包裹”的方法将使div仍然在布局中像一个“正常”的div一样工作,同时允许您通过Javascript从#b
中“嗅探”宽度/高度,如果需要的话。position:relative
在这里是否相关,清除浮动就足够了。如果它是绝对定位而不是浮动的话,那么你可能需要它。 - meder omuralievdiv#b
使用 position:absolute
而不是 float:left
,否则外部 div 是不必要的。 - Lee试试这个CSS:
div {
display: inline;
}
对于任何默认块级元素(如div、h1-h~等),IE不支持Inline-Block。
Inline-Block的行为是自动调整宽度和高度,同时允许使用位置、边距和填充。因此,你所需要做的就是使用
<span style="display: inline-block">
</span>
display:inline;
以适用于本地块级元素。 - meder omuraliev