发布网友
共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会解决问题,但不建议这个做!