Html 高度样式属性在 div 元素中不起作用
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4967613/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
height style property doesn't work in div elements
提问by Priest of Psi
I'm setting a height of 20px on a <div>
, though when it renders in the browser, its only 14px high.
我在 a 上设置了 20px 的高度<div>
,但是当它在浏览器中呈现时,它只有 14px 高。
Any ideas?
有任何想法吗?
<div style="display:inline; height:20px width: 70px">My Text Here</div>
回答by Andy E
You cannot set height
and width
for elements with display:inline;
. Use display:inline-block;
instead.
您不能设置height
和width
带有 的元素display:inline;
。使用display:inline-block;
来代替。
From the CSS2 spec:
来自CSS2 规范:
10.6.1 Inline, non-replaced elements
The
height
property does not apply. The height of the content area should be based on the font, but this specification does not specify how. A UA may, e.g., use the em-box or the maximum ascender and descender of the font. (The latter would ensure that glyphs with parts above or below the em-box still fall within the content area, but leads to differently sized boxes for different fonts; the former would ensure authors can control background styling relative to the 'line-height', but leads to glyphs painting outside their content area.)
10.6.1 内联、非替换元素
该
height
物业不适用。内容区域的高度应该以字体为基础,但是这个规范并没有具体说明如何。例如,UA 可以使用 em-box 或字体的最大上升部和下降部。(后者将确保带有 em-box 上方或下方部分的字形仍然在内容区域内,但会导致不同字体的大小不同的框;前者将确保作者可以控制相对于“行高”的背景样式,但会导致字形绘制在其内容区域之外。)
EDIT — You're also missing a ;
terminator for the height
property:
编辑 — 您还缺少;
该height
属性的终止符:
<div style="display:inline; height:20px width: 70px">My Text Here</div>
<!-- ^^ here -->
Working example: http://jsfiddle.net/FpqtJ/
工作示例:http: //jsfiddle.net/FpqtJ/
回答by Sol
This worked for me:
这对我有用:
min-height: 14px;
height: 14px;
回答by Dawson
You're loosing your height attribute because you're changing the blockelement to inline(it's now going to act like a <p>
). You're probably picking up that 14px height because of the text height inside your in-line div.
您正在失去 height 属性,因为您将块元素更改为内联(它现在将像 a 一样<p>
)。由于内嵌 div 中的文本高度,您可能会选择 14px 的高度。
Inline-block may work for your needs, but you may have to implement a work around or two for cross-browser support.
Inline-block 可能会满足您的需求,但您可能必须实现一两个变通方法以实现跨浏览器支持。
IE supports inline-block, but only for elements that are natively inline.
IE 支持 inline-block,但仅适用于本机 inline 的元素。
回答by Purnesh Tripathi
Set positioning to absolute. That will solve the problem immediately, but might cause some problems in layout later. You can always figure out a way around them ;)
将定位设置为绝对。这将立即解决问题,但可能会在以后的布局中引起一些问题。你总能想出办法绕过它们;)
Example:
例子:
position:absolute;
回答by We're All Scholars
Also, make sure you add ";" to each style. Your excluding them from width and height and while it might not be causing your specific problem, it's important to close it.
另外,请确保为每种样式添加“ ;”。您将它们从宽度和高度中排除,虽然它可能不会导致您的特定问题,但关闭它很重要。
<div style="height:20px; width: 70px;">My Text Here</div>
回答by Daan
You try to set the height
property of an inline
element, which is not possible. You can try to make it a block
element, or perhaps you meant to alter the line-height
property?
您尝试设置元素的height
属性inline
,这是不可能的。您可以尝试使其成为一个block
元素,或者您可能打算更改该line-height
属性?
回答by L0fty
I'm told that it's bad practice to overuse it, but you can always add !important
after your code to prioritize the css properties value.
有人告诉我,过度使用它是不好的做法,但您始终可以!important
在代码之后添加以优先考虑 css 属性值。
.p{height:400px!important;}
回答by ArchiPlays
Position absolute fixes it for me. I suggest also adding a semi-colon if you haven't already.
绝对位置为我修复了它。如果您还没有,我建议还添加一个分号。
.container {
width: 22.5%;
size: 22.5% 22.5%;
margin-top: 0%;
border-radius: 10px;
background-color: floralwhite;
display:inline-block;
min-height: 20%;
position: absolute;
height: 50%;
}
回答by Hussein
use the min-height property. min-height:20px;
使用 min-height 属性。最小高度:20px;