css浏览器上边距问题

发布网友

我来回答

4个回答

热心网友

原理:

h3本来是有默认样式的:display:block; margin:1.5em 0(这里忘记多少了),还有若干其他的,这里主要是这两个,

因此 h3 本来是自带垂直外边距的;

  2.  display: inline 是只能够设置水平外边距,不受垂直外边距影响,所以h3变成display:inline的话就不会有那种情况了。所以不少网站都会讲h1-h6加上margin:0;

  3. 当父元素没有margin-top,而第一个子元素有margin-top的话,其margin-top会作用到父元素上,原因可以自行百度“margin 父元素”,这个现象和标准的文档流有关

热心网友

body中的标签有些都会有默认的距离,写一些代码来清除一下吧:

body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}

追问就是有距离也不会冲出到他的父容器外吧,为什么是他的父容器与body有距离呢,还有父容器设置成overflow:hidden,边距就没有了,这是为什么呢?求详细解释一下原理,可以吗?谢谢了

追答原理还真不清楚了,你在div中放一个p标签,同样有边距。

热心网友

html标签分块元素和行内元素,像div,p都是块元素,span是行内元素。

div和span都没有实际意义,但是p、h3都有意义了,p代表一行,H3代表标题3号。 上例中你添加了h3就会出现上边距,不难看出就是因为h3具有实际意义,他是有高度的,作为本身有高度的元素,肯定就有上下边距。

上例中,你只是定义了body的margin和padding,你把body换成 * 星号试试,结果就不会产生上边距了,呵呵。

热心网友

body,h3{margin:0px;padding:0px;}

常用标签需要重置属性,因为他们本身很多都会带有margin,padding的值,因此常用的标签都需要进行重置,使兼容更强!!
而父级里面的子级一旦有margin-top值,就会产生外边距自动合并,这个是margin的一个特点也是一个bug!!
而设置成display会把h3的块级元素转化为内联元素,内联元素的marign,padding,height,width值都不会起作用,因此设置inline会解决问题,但不建议这个做!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com