CSS定义了body属性{margin:0}是不是所有元素边距都是0了?

html-css011

CSS定义了body属性{margin:0}是不是所有元素边距都是0了?,第1张

不会 只是定义了 body而已 其他如p ul 还有默认的外边距

像这样

body, dl, dt, dd, p, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, select, fieldset, input, button, textarea, blockquote {margin: 0padding: 0}

清除掉浏览器默认的外边距 因为每个浏览器默认的不一定一样 所以为保一致 将他们重置

a标签和span标签默认都是行内元素,如果里面的内容为空(指实际内容如文字和图片为空,即使里面包含了空的行内元素也是不算作实际内容的,此外背景图片也不是实际内容),则它的宽高始终是保持为0的,不管怎么设置都是不行的(你可以试着在span内加入一些文字,它立刻就会有宽高了,但实际上这是文字的宽高,不是span本身的宽高)。

解决办法就是使用块级元素,方法有:

1、直接换用块级元素,比如 div 就是

2、在css中用 display:block 可以把行内元素改成块级元素

3、浮动元素(float:left或float:right)会自动变为块级元素

4、绝对定位(position:absolute)的元素也会变成块级元素