如何让我的 <ul> 悬停在同一个位置开始?

Posted

技术标签:

【中文标题】如何让我的 <ul> 悬停在同一个位置开始?【英文标题】:how to make my <ul> hover start on the same exact spot? 【发布时间】:2011-03-27 11:43:06 【问题描述】:

我有一个 1024 像素的导航栏,其中有五个类别是链接 (ul),其中一些有下拉菜单。我将它们完美地设置为水平对齐。悬停时最左边的那个,按预期将文本完美地放到导航栏下方的左边缘。当您向下移动到右侧时,文本(悬停的文本)仅向左移动到父链接。无论导航栏中的位置在哪里,我都试图让它们在悬停时都移到左边缘。

HERE 是一个网站示例,其标题是我正在尝试做的一个完美示例

这是我的html

<div id="nav_1024_main" class="clearfix">
 <div class="container clearfix">
   <div id="user_nav_future" class="clearfix">

   <?php 
   // if signed in
   if($auth)  ?>
    <ul style="float:right;">
     <li><a href="index_signedIn.php">Home</a></li> 
     <li><a href="#" class="toggle_dash">Goodbye</a></li>
    </ul>
    <ul id="top_main_nav" style="float:left;">
        <li><a href="Profile.php?id=<?php echo $auth->id; ?>">Me</a>
                  <ul>
                     <li><a href="Profile.php?id=<?php echo $auth->id; ?>"><?php echo ($auth->first_name); ?> <?php if(strlen($auth->last_name) > 6)  echo substr(strtoupper($auth->last_name),0,6) . "..."; else echo ($auth->last_name);  ?></a></li>
      <li><a href="EditProfile.php">Edit My Profile</a></li>
      <li><a href="MySettings.php">Settings</a></li>
      <li><a href="EmailSettings.php">Email Settings</a></li>

                     </ul>
                 </li>
                     <li><a href="Inbox.php">Messages<?php if($auth->get_new_messages() > 0)  echo ' (' . $auth->get_new_messages() . ')';  ?></a>
                  <ul>
                     <li><a href="Inbox.php">Inbox</a></li>
                  <li><a href="SentMail.php">Sent</a></li>
                     </ul>
                 </li>
                    <li><a href="Airwave.php">Airwave</a>
                 <li><a href="Blogs.php">Blogs</a>
                  <ul>
                     <li><a href="ComposeBlog.php">Write A Blog</a></li>
                      <li><a href="UserBlogArchives.php?id=<?php echo $auth->id; ?>">My Blogs</a></li>
                     <li><a href="Blogs.php">View All Blogs</a></li>
                     </ul>
                 </li>
                 <li><a href="Questions.php">Questions</a>
                  <ul>
                     <li><a href="AskQuestion.php">Ask A Question</a></li>
                     <li><a href="MyQuestions.php?id=<?php echo $auth->id; ?>">My Questions</a></li>
                     <li><a href="Questions.php">View All Questions</a>
                     </ul>
                 </li>
                     <li><a href="Members.php">Members</a></li>
    </ul>



     <?php 

这是css:

#user_nav_future  margin:0px auto 0px auto; font-family:Arial,Helvetica, sans-serif; font-size:12px; color:#FFFFFF; font-weight:bold;

#user_nav_future ul li  list-style:none; float:left;

#user_nav_future ul li a color:#FFFFFF; padding:10px 10px; display:block; text-decoration:none;

#user_nav_future li ul display:none; position:absolute; top:35px; right:160px; z-index:1001; margin:0px 0px 0px 0px; padding:0px 0px 0px 0px;

#user_nav_future li ul a  color:#666666; display:inline; float:left;

#user_nav_future ul li a:hover  color:#FF4800;

#user_nav_future ul  padding:0px; margin:0px; list-style:none;

#user_nav_future li  float:left; position:relative; 

#user_nav_future li ul  width:500px; display:none; position:absolute; top:34px; left:-20px;

#user_nav_future li ul li  margin-right:5px; float:left;

#user_nav_future li:hover ul,#user_nav li.over ul  display:block;

提前致谢。

1:http://www。 newgencoal.com.au

【问题讨论】:

确认一下,您是否要在此站点上实现类似于主导航的效果? koumbit.org 另请注意,在该实现中,当子菜单项处于活动状态时,子菜单是持久的(即默认显示)。 关闭。这正是我所说的一个例子。 newgencoal.com.au 【参考方案1】:

这是你的问题。由于这条规则,您正在相对于 LI 定位内部 UL:

#user_nav_future li  float:left; position:relative; 

删除position:relative 部分。放在这里

#user_nav_future  position: relative; 

因为你想相对于 UL,而不是内部 LI。

现在为#user_nav_future li ul 设置left: 0px; 并删除right

【讨论】:

以上是关于如何让我的 <ul> 悬停在同一个位置开始?的主要内容,如果未能解决你的问题,请参考以下文章

如何只悬停嵌套ul中的当前li?

将鼠标悬停在特定 <li> 上时如何更改 <ul> 背景图像? [复制]

CSS:如何阻止悬停效果推送我的文本?

当用户将鼠标悬停在列表项上时,如何将光标变为手形?

放大鼠标悬停效果

jQuery 更改 CSS 背景位置和鼠标悬停/鼠标移出