首先,不知道你的预期效果是什么样的,针对你给出的样式:
div li{list-style:none;display:inline;margin:7px}
a{text-decoration: none;}
说明一下:
第一条,规定了 所有 div 下的 li的样式,即 不显示图标,显示为内联样式不换行,外边距7px。
第二条,规定了 所有超级链接内的文本样式,这里为无样式。
针对你说的“没有达到预期效果,display:inline只对第一个子元素li有效果,list-style:none则对下面所有li起了作用,text-decoration:none也只有在css里标出a标签后起了效果,个人认为和继承有关”
css样式的规则是这样的,你规定到了什么级别就对什么级别的HTML标签起作用。比如 你写的 div li{}表示规定 HTML中所有div下面的li的样式。a{}表示规定 HTML中所有超级链接的样式。
为何是div里嵌套li?难道你div里没有ul标签?如果有,你写成:
ul li{list-style:none;text-decoration: none;display:inline} 就行了!
关于css继承,你应该还是没太多经验,有些标签是继承的,有些则不,比如P标签,就不继承父对象的样式。
关于ul存在的意义,我想你应该也知道ul是li的父对象,没有父亲哪里来的儿子,如果你非要较真,这个问题你可以和创造html语言的人去讨论下,或者去找w3c,因为这是他们定的规则!
a标签默认情况下就有一条下划线 而text-decoration:none; 就是去掉那条下划线的 再说li的list-style:none; 因为列表前面默认是有圆点样式的 而这个属性刚好是去掉列表前默认样式的 display:inline; 是将元素变成内联元素,元素前后没有换行符 好好审查元素看看 还有要知道每个属性是什么意思