4-2有3个疑惑
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{padding:0; margin:0;} .page{ width:100%; height:4043px; background:url(mooc.png) no-repeat center top; } .nav{ width:160px; height:auto; position:fixed; left:0; top:50%; margin-top:-103px ; font-family: 'microsoft yahei'; } .nav-li{ width:160px; height:auto; border-bottom:1px solid #fff; background:#333; text-align:center; line-height:40px; color:#fff; font-size:16px; } .tit{ width:160px; height:40px; } .nav-li ul{ width:160px; height:122px; background:#fff; display:none; } .nav-li ul li{ width:160px; height:40px; border-bottom:1px dashed #666; color:#333; text-align: center; line-height: 40px; cursor:pointer; } .tit2{ width:160px; height:40px; position:relative; } .nav-li ul ul { width:160px; height:auto; background:black; top:40px; left:160px; position:absolute; } .nav-li:hover ul{ display:block; } .list3{ width:160px; height:40px; color:#fff; } /*.list3{ color:#fff; display: none; } .nav-li ul li:hover .list3{ display:block; }*/ </style> </head> <body> <div class="page"> <div class="nav"> <div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> <ul > <li class="list3">三级栏目</li> <li class="list3">三级栏目</li> <li class="list3">三级栏目</li> </ul> </li> <li> 二级栏目 </li> <li> 二级栏目 </li> </ul> </div> <div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> </li> <li> 二级栏目 </li> <li> 二级栏目 </li> </ul> </div> <div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> </li> <li> 二级栏目 </li> <li> 二级栏目 </li> </ul> </div> <div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> </li> <li> 二级栏目 </li> <li> 二级栏目 </li> </ul> </div> <div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> </li> <li> 二级栏目 </li> <li> 二级栏目 </li> </ul> </div> </div> </div> </body> </html>
1、我在自己做三级栏目的时候使用的是ul li标签,可在给class为tit2的二级栏目设置relative后,3级列表需要top设为40px才能达到视频中的位置,为什么它的祖先元素选择了一级标题而不是二级栏目呢
2、二级栏目使用的无序列表默认前面无小圆点,等到三级栏目的时候,除非设置list-style-type为none,不然就默认显示每列前的空心圆
3、为何3级列表的文字颜色无法更改,像是继承了二级栏目就不能变了
正在回答
你好,(1)如下图,tit2元素是三级标签的兄弟元素,并不是父级元素。所以设置定位时,无法以它为参考
(2)二级栏目不设置ist-style-type为none,也是会显示小圆点的,你这个效果中,实现效果上看不到,是因为紧挨左侧,视觉效果上被遮盖了,把.page元素改为以下形式,在去掉.nav元素中的left:0;属性,即可看到二级栏目的小圆点。
.page{ width:800px; height:4043px; background:url(mooc.png) no-repeat center top; margin-left:100px; }
(3)3级列表的文字颜色,基础了二级栏目.nav-li ul li元素的字体颜色,color:#333;因嵌套的层级太多,直接设置 .list3时找不到该元素,可把他的父级添加上,例:.nav-li .list3。
祝学习愉快!
你好,关于你说的“所有的三级列表都以第一个标题作了偏移”。原因可参考下列代码,所有的三级标签,都设置了绝对定位,但是它的祖先元素.nav中有固定定位position:fixed;导致所有的三级标签,都相对于.nav定位,又所有的三级标签定位(定的位置,即top,left)都是一样的,导致所有的三级标签重合。
.nav-li ul ul { width:160px; height:auto; background:black; top:40px; left:160px; position:absolute; }
另外,如下图,tit元素是三级标签父级父级的兄弟元素,所以tit元素添加了相对定位与三级标签没有关系。
建议:可给.nav-li ul添加相对定位。
祝学习愉快!
你好,这个是浏览器识别的时候,它们不是同一级别下的。你可以再次嵌套可ul(如下代码);会发现这个的列表样式也不一样。一般情况下只会识别三级(即:嵌套3层ul);这个我们用到的不多,一半我们使用ul li是都会设置列表样式不显示。有兴趣可以了解下;
<div class="nav-li"> <div class="tit">标题</div> <ul> <li> <div class="tit2">二级栏目</div> <ul > <li class="list3"> <ul> <li>fvdvghf</li> <li>fvdvghf</li> <li>fvdvghf</li> </ul> </li> <li class="list3">三级栏目</li> <li class="list3">三级栏目</li> </ul> </li> <li>二级栏目</li> <li>二级栏目</li> </ul> </div>
祝学习愉快!
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星