美文网首页
关于2级菜单栏中a和li样式的混淆

关于2级菜单栏中a和li样式的混淆

作者: sunny519111 | 来源:发表于2016-12-29 01:46 被阅读61次

    html部分

    <nav>
      <ul>
        <li><a href="#">首页</a>
             <ul class="second_menu">
               <li>导航1</li>
               <li>导航2</li>
               <li>导航3</li>
               <li>导航4</li>
             </ul>
        </li>
        <li><a href="#">产品</a>
             <ul class="second_menu">
               <li>导航1</li>
               <li>导航2</li>
               <li>导航3</li>
               <li>导航4</li>
             </ul>
        </li>
        <li><a href="#">关于我们</a>
             <ul class="second_menu">
               <li>导航1</li>
               <li>导航2</li>
               <li>导航3</li>
               <li>导航4</li>
             </ul>
        </li>
        <li><a href="#">联系我们</a>
            <ul class="second_menu">
               <li>导航1</li>
               <li>导航2</li>
               <li>导航3</li>
               <li>导航4</li>
             </ul>
        </li>
      </ul>
    </nav>
    
    1. 二级菜单的放置位置
      不要把二级菜单放到a标签里面,如果二级菜单里面也有a标签的话,会导致元素错位。


      二级菜单放置位置

    css部分

    1. 给a标签设置样式的时候千万不要忘记a标签是一个行内元素。
      a标签是一个行内元素,所有设置的上下padding颜色会有效果,但是不会扩大空间,给人产生错觉。
      a标签的行内元素
    2. 关于绝对定位没有设置偏移量时候的位置解析。
      没有设置偏移量
      不设置偏移量的时候元素相对于自身的位置不动。但是IE不支持。但是设置了偏移量后就相对与body(除了position:static的其他属性的父元素定位)
      设置了偏移量
      position:relative要放到对于的li上,进行定位,不然会都重合在一起。
      相对定位放到li标签上
    3. 二级菜单知道大致字数可以通过width: 6em(例子)来控制
      可以通过padding-right: ...和width来扩大二级菜单的大小,但是width会固定宽度,不管字数大小,都会一样大,好看一点。padding-right:就会灵活一点,但是对于字数不一样的二级菜单会出现宽度的不同。
    4. 添加hover的时候要给一级菜单的li标签添加而不是给a标签添加
      给li标签添加伪类
      因为a标签和.second_menu是兄弟标签,不能用父子标签显示,这个是一个容易忽视的点
      兄弟标签
      一般都是可以给li标签添加hove来控制元素的效果

    1. **记住虽然给二级菜单添加了position:absolute,但是它还是包含在li标签中,所有我们可以给li标签添加伪类,让鼠标移动到二级菜单的时候,给a标签做一定的效果。
      **


      给li标签添加伪类离开后影响a标签

    查看demo
    兄弟标签不推荐


    扩展

    多级菜单

    链接地址

    相关文章

      网友评论

          本文标题:关于2级菜单栏中a和li样式的混淆

          本文链接:https://www.haomeiwen.com/subject/ibeuvttx.html