请问css中div的相关问题?

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:31:29
请问css中div的相关问题?

第一个问题:
--------------------------------------
<style>
body{
margin:0px;
}
.a{
background:red;
}
.a p{
background:yellow;
width:200px;
}
</style>

<div class="a"><p>123</p></div>

为什么这个div在火狐中会产生一个空行?什么原因?

如果给body加上border:1px solid black的话,那么空行就会消失.
--------------------------------------------

第二个问题:
<style>
body{
margin:0px;
}
.a{
border:1px solid black;
background:red;
}
.a p{
background:yellow;
width:200px;
}
</style>

<div class="a"><p>123</p></div>

在火狐中这个div的高度是怎么计算的?

这个div里面上下怎么都有padding ,这个padding又是多少?

然后div里的p的高度是多少?

第一个问题:

由于p标签的margin没有清空导致火狐里出现上下边距离

解决方法:body,p{ margin:0px; }

你说"如果给body加上border:1px solid black的话,那么空行就会消失.";这句话是不对的,空行不会消失在火狐中;

第二个问题:
所有浏览器中的显示高都等于 margin + border + padding + height;

这个div中的margin border padding height四个属性都为默认自动,在里面没内容的情况下为0;里面有内容的话根据内容自动高;

p中由于margin没有清0所以它有一个默认margin高所以在火狐中撑开两行;由于p中有字了,一般浏览器默认字体高为16px,所以p的高为16px;p撑开了div所以div的高也为16px;

div中padding为默认0;

另外这句a p{ background:yellow; width:200px; } 你给p设置宽200px是无效的,只有块元素才能设置宽高;给它加个display:block就可以了

大哥~
<P></P>标签,是段落的意思,html里规范就是段落间是空行的,你用<p>123</p>当然会空一行!你想让他不空行,你用自定义标签去定义就OK了,干嘛要用html的固定标签呢?

div里的高度当然是你自己定义的,你不定义,他就默认,默认的高度就是能把你输入的内容都显示出来。你定义了a,a就有高度,你定义了P,P就有高度。

所有浏览器中的显示高都等于 border + padding + height;
margin是外边距不能算在div的高度里