展开 block : CSS1 块对象的默认值。用该值为对象之后添加新行
none : CSS1 隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间 block 块级元素,默认情况下(不浮动不绝对定位),该元素后的内容会自动换行。相当于它的后面加了一个<br>。
他们应该是一样效果吧
style.display='block'
style.display="";
none隐藏,block和“”显示。
首先,你上面的语法#mainnav *{margin:0;padding:0;}中的意思是将ID为#mainnav下的所有后代元素应用样式,用“*”一般是针对IE6及以下版本的!
其次,a 元素是是一个行内元素,display:block;就是将他强行转化为块级元素。行内元素没有没有上下填充,也就是说你设置padding-top padding-bottom将是徒劳,#mainnav li a{display:block;width:80px;height:29px;line-height:30px;color:#fff;text-decoration:none;text-align:center;}
是让连接表现得像块极元素,增大起点击区域。以为你后面的a:hove背景图片的实现打下基础。float的意思是让文档(标签)脱离普通文档流的一种方法,它是用来定位的其中一种方法。float:left表示的是让第一个浮动元素相对于其父元素的左边对齐,后面的元素(在同一个嵌套级别)接上前面的一个元素贯穿在同一条线上,也就是整齐的对准在同一行上。浮动的时候,如果没有对父元素显视的设置宽度的话,它会自动收缩,你对父元素设置背景色就可以看到。这一点在设计导航条的时候尤其要注意。
再次,对于你的第三个问题,答案是肯定的(呵呵)因为你已经将空白边和填充设置为0了,浏览器的默认方式是相对于前一级容器元素left:0;top:0; 想对显示深入的了解的话,看看CSS框模型就是了。
对于div标签的默认显示方式:div标签是块级元素,也就是在他显示的行内不会有其他的块级元素,它会自动换行的。