css - 如何让下拉菜单固定在同一位置

标签 css drop-down-menu menu nav submenu

我的导航中有一个下拉菜单。现在每个下拉菜单都在父元素下下拉。但是,我希望每个下拉菜单都在同一位置下拉。 (就像这个菜单 - https://themify.me/demo/#theme=peak )。任何人都可以提供任何解决方案吗?提前致谢。

这是一个示例 jsfiddle - https://jsfiddle.net/5vedgn95/

我的 header.php

<?php
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">

<?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
<div id="ht-page">
	<header id="ht-masthead" class="ht-site-header">
		<div class="ht-container ht-clearfix">
			<div id="ht-site-branding">
				<?php 
				if ( function_exists( 'has_custom_logo' ) && has_custom_logo() ) :
					the_custom_logo();
				else : 
					if ( is_front_page() ) : ?>
						<h1 class="ht-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
					<?php else : ?>
						<p class="ht-site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
					<?php endif; ?>
					<p class="ht-site-description"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'description' ); ?></a></p>
				<?php endif; ?>
			</div><!-- .site-branding -->

			<nav id="ht-site-navigation" class="ht-main-navigation">
				<div class="toggle-bar"><span></span></div>
				<?php 
				wp_nav_menu( array( 
					'theme_location' => 'primary', 
					'container_class' => 'ht-menu ht-clearfix' ,
					'menu_class' => 'ht-clearfix',
					'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
				) ); 
				?>
			</nav><!-- #ht-site-navigation -->
		</div>
	</header><!-- #ht-masthead -->

	<div id="ht-content" class="ht-site-content ht-clearfix">

我的CSS

/*--------------------------------------------------------------
## Header
--------------------------------------------------------------*/
#ht-masthead{
background: #FFF; 
height: 70px;
    border-bottom: 1px solid #eee;
    z-index: 99;
    transition: height 0.3s ease;
    -moz-transition: height 0.3s ease;
    -webkit-transition: height 0.3s ease;
    position: fixed;
    text-align: center;
width: 0 auto;
    margin-right:38px;
    width:100%;
}


.ht-sticky-header #ht-masthead{
position: fixed;
left: 0;
right: 0;
}

.ht-sticky#ht-masthead{
height: 74px;
}

.ht-sticky-header #ht-content{
position: relative;
z-index: 9;
padding-top: 94px;
}

#ht-site-branding{
float: left;
width: 30%;
transition: padding 0.3s ease;
-moz-transition: padding 0.3s ease;
-webkit-transition: padding 0.3s ease;
}

.ht-sticky #ht-site-branding{
padding: 5px 0;
}

#ht-site-branding img{
max-height: 60px;
width: auto;
}

.ht-main-header{
background: #f9f9f9;
padding: 45px 0;
margin-bottom: 25px;
}

.ht-main-title{
margin: 0 0 15px;
letter-spacing: 1px;
font-weight: 400;
text-transform: uppercase;
}

.ht-main-title:last-child{
margin-bottom: 0;
}

.ht-site-title{
    font-family: 'futura_tbold';
    font-size: 24px;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 6px;
    margin-left:20px;
}

.ht-site-title a{
text-decoration: none;
color: #000;
}
.ht-site-title a:hover {
text-decoration: none;
color: #000;
}

.ht-site-description{
color: #EEE;
margin: 0;
font-size: 15px;
font-style: italic;
line-height: 1;
}

.ht-site-description a{
color: #333;
}


#total-breadcrumbs,
.woocommerce .woocommerce-breadcrumb{
font-size: 15px;
margin: 0;
color: inherit;
}

.woocommerce .woocommerce-breadcrumb a,
#total-breadcrumbs a{
color: #000;
}

.woocommerce .woocommerce-breadcrumb a:hover,
#total-breadcrumbs a:hover{
color: #000;
}

.taxonomy-description,
.term-description{
margin-bottom: 15px;
}

.taxonomy-description p:last-child,
.term-description p:last-child{
margin-bottom: 0;
}

/*--------------------------------------------------------------
## General
--------------------------------------------------------------*/
.ht-section{
padding: 60px 0;
    background: #FFF;
}

.ht-section-title-tagline{
margin-bottom: 60px;
text-align: center;
}

.ht-section-title{
font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 36px;
    width: 60%;
    margin: 0 auto 15px;
}

.ht-section-title:last-child{
margin-bottom: 0;
}

.ht-section-tagline{
font-size: 20px;
width: 70%;
margin: 0 auto;
}
#ht-page {
width: 100% !important;
margin: 0 auto;
    max-width: 100% !important;
    overflow: hidden !important;
}

/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
#ht-site-navigation{
position: absolute;
width: 100%;
padding: 15px 0;
transition: padding 0.3s ease;
-moz-transition: padding 0.3s ease;
-webkit-transition: padding 0.3s ease;
    float: right;
}

.ht-sticky #ht-site-navigation{
padding: 17px 0;
}

.ht-main-navigation .ht-menu{

}

.ht-main-navigation ul {
list-style: none;
margin: 0;
padding-left: 0;
    display: inline-block;
}

.ht-main-navigation li {
float: left;
position: relative;
margin-left: 30px;
}

.ht-main-navigation a {
display: block;
text-decoration: none;
color: #000;
text-transform: uppercase;
font-size: 15px;
font-family: 'Raleway', sans-serif;
line-height: 36px;
padding: 0 15px;
font-weight: 600;
    letter-spacing: 2px;
    padding-bottom: 40px;
}

.ht-main-navigation ul ul {
display: none;
position: absolute;
left: 0;
top: 100% ;
background: #FFF;
min-width: 200px;
width:900px;
z-index: 999;
padding: 8px;
margin-top: 0px;
box-shadow: 2px 2px 8px rgba(0,0,0,0.05);
}

.ht-sticky .ht-main-navigation ul ul{
margin-top: 17px;
}

.ht-main-navigation .ht-menu > ul > li:last-child > ul{
left: auto;
right: 0;
}

.ht-main-navigation ul ul ul {
left: 100%;
top: 0;
margin: 0 0 0 8px;
border-top: 0;
}

.ht-sticky .ht-main-navigation ul ul ul{
margin-top: 0
}

.ht-main-navigation ul ul a {
text-transform: none;
font-weight: 400;
color: #444;
line-height: 1.5;
padding: 10px 15px;
font-size: 14px;
}

.ht-main-navigation ul ul li {
float: none;
margin: 0 0 5px;
}

.ht-main-navigation ul ul li:last-child{
margin-bottom: 0;
}

.ht-main-navigation ul li:hover > ul {
display: block;
}

.page-template-home-template .ht-main-navigation .current_page_item > a,
.page-template-home-template .ht-main-navigation .current-menu-item > a,
.page-template-home-template .ht-main-navigation .current_page_ancestor > a,
.home.blog .ht-main-navigation .current_page_item > a,
.home.blog .ht-main-navigation .current-menu-item > a,
.home.blog .ht-main-navigation .current_page_ancestor > a{
background: none;
color: inherit;
}

.ht-main-navigation li:hover > a,
.page-template-home-template .ht-main-navigation li:hover > a,
.home.blog .ht-main-navigation li:hover > a,
.ht-main-navigation .current_page_item > a,
.ht-main-navigation .current-menu-item > a,
.ht-main-navigation .current_page_ancestor > a,
.page-template-home-template .ht-main-navigation .current > a,
.home.blog .ht-main-navigation .current > a {
color: #000;
text-decoration: none;
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
margin: 0 0 15px;
overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
float: left;
width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
float: right;
text-align: right;
width: 50%;
}

最佳答案

li 中删除 position: relative,并将其添加到 ul 中,这样子菜单就是 absolutely 位于 ul 顶部的 100%

如果您希望子菜单跨越父级的整个宽度,请从 .ht-main-navigation ul ul 中删除 width: 900px; 并添加 right: 0(我没有这样做,因为你没有要求它)

/*--------------------------------------------------------------
## Header
--------------------------------------------------------------*/

#ht-masthead {
  background: #FFF;
  height: 70px;
  border-bottom: 1px solid #eee;
  z-index: 99;
  transition: height 0.3s ease;
  -moz-transition: height 0.3s ease;
  -webkit-transition: height 0.3s ease;
  position: fixed;
  text-align: center;
  width: 0 auto;
  margin-right: 38px;
  width: 100%;
}

.ht-sticky-header #ht-masthead {
  position: fixed;
  left: 0;
  right: 0;
}

.ht-sticky#ht-masthead {
  height: 74px;
}

.ht-sticky-header #ht-content {
  position: relative;
  z-index: 9;
  padding-top: 94px;
}

#ht-site-branding {
  float: left;
  width: 30%;
  transition: padding 0.3s ease;
  -moz-transition: padding 0.3s ease;
  -webkit-transition: padding 0.3s ease;
}

.ht-sticky #ht-site-branding {
  padding: 5px 0;
}

#ht-site-branding img {
  max-height: 60px;
  width: auto;
}

.ht-main-header {
  background: #f9f9f9;
  padding: 45px 0;
  margin-bottom: 25px;
}

.ht-main-title {
  margin: 0 0 15px;
  letter-spacing: 1px;
  font-weight: 400;
  text-transform: uppercase;
}

.ht-main-title:last-child {
  margin-bottom: 0;
}

.ht-site-title {
  font-family: 'futura_tbold';
  font-size: 24px;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 6px;
  margin-left: 20px;
}

.ht-site-title a {
  text-decoration: none;
  color: #000;
}

.ht-site-title a:hover {
  text-decoration: none;
  color: #000;
}

.ht-site-description {
  color: #EEE;
  margin: 0;
  font-size: 15px;
  font-style: italic;
  line-height: 1;
}

.ht-site-description a {
  color: #333;
}

#total-breadcrumbs,
.woocommerce .woocommerce-breadcrumb {
  font-size: 15px;
  margin: 0;
  color: inherit;
}

.woocommerce .woocommerce-breadcrumb a,
#total-breadcrumbs a {
  color: #000;
}

.woocommerce .woocommerce-breadcrumb a:hover,
#total-breadcrumbs a:hover {
  color: #000;
}

.taxonomy-description,
.term-description {
  margin-bottom: 15px;
}

.taxonomy-description p:last-child,
.term-description p:last-child {
  margin-bottom: 0;
}


/*--------------------------------------------------------------
## General
--------------------------------------------------------------*/

.ht-section {
  padding: 60px 0;
  background: #FFF;
}

.ht-section-title-tagline {
  margin-bottom: 60px;
  text-align: center;
}

.ht-section-title {
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 36px;
  width: 60%;
  margin: 0 auto 15px;
}

.ht-section-title:last-child {
  margin-bottom: 0;
}

.ht-section-tagline {
  font-size: 20px;
  width: 70%;
  margin: 0 auto;
}

#ht-page {
  width: 100% !important;
  margin: 0 auto;
  max-width: 100% !important;
  overflow: hidden !important;
}


/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/

#ht-site-navigation {
  position: absolute;
  width: 100%;
  padding: 15px 0;
  transition: padding 0.3s ease;
  -moz-transition: padding 0.3s ease;
  -webkit-transition: padding 0.3s ease;
  float: right;
}

.ht-sticky #ht-site-navigation {
  padding: 17px 0;
}

.ht-main-navigation .ht-menu {}

.ht-main-navigation ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
  display: inline-block;
  position: relative;
}

.ht-main-navigation li {
  float: left;
  margin-left: 30px;
}

.ht-main-navigation a {
  display: block;
  text-decoration: none;
  color: #000;
  text-transform: uppercase;
  font-size: 15px;
  font-family: 'Raleway', sans-serif;
  line-height: 36px;
  padding: 0 15px;
  font-weight: 600;
  letter-spacing: 2px;
  padding-bottom: 40px;
}

.ht-main-navigation ul ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background: #FFF;
  min-width: 200px;
  width: 900px;
  z-index: 999;
  padding: 8px;
  margin-top: 0px;
  box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.05);
}

.ht-sticky .ht-main-navigation ul ul {
  margin-top: 17px;
}

.ht-main-navigation ul ul ul {
  left: 100%;
  top: 0;
  margin: 0 0 0 8px;
  border-top: 0;
}

.ht-sticky .ht-main-navigation ul ul ul {
  margin-top: 0
}

.ht-main-navigation ul ul a {
  text-transform: none;
  font-weight: 400;
  color: #444;
  line-height: 1.5;
  padding: 10px 15px;
  font-size: 14px;
}

.ht-main-navigation ul ul li {
  float: none;
  margin: 0 0 5px;
}

.ht-main-navigation ul ul li:last-child {
  margin-bottom: 0;
}

.ht-main-navigation ul li:hover > ul {
  display: block;
}

.page-template-home-template .ht-main-navigation .current_page_item > a,
.page-template-home-template .ht-main-navigation .current-menu-item > a,
.page-template-home-template .ht-main-navigation .current_page_ancestor > a,
.home.blog .ht-main-navigation .current_page_item > a,
.home.blog .ht-main-navigation .current-menu-item > a,
.home.blog .ht-main-navigation .current_page_ancestor > a {
  background: none;
  color: inherit;
}

.ht-main-navigation li:hover > a,
.page-template-home-template .ht-main-navigation li:hover > a,
.home.blog .ht-main-navigation li:hover > a,
.ht-main-navigation .current_page_item > a,
.ht-main-navigation .current-menu-item > a,
.ht-main-navigation .current_page_ancestor > a,
.page-template-home-template .ht-main-navigation .current > a,
.home.blog .ht-main-navigation .current > a {
  color: #000;
  text-decoration: none;
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 15px;
  overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  float: left;
  width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  float: right;
  text-align: right;
  width: 50%;
}
<nav id="ht-site-navigation" class="ht-main-navigation">
  <div class="toggle-bar"><span></span></div>
  <div class="ht-menu ht-clearfix">
    <ul id="menu-primary-menu-links" class="ht-clearfix">
      <li id="menu-item-129" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-129"><a href="http://localhost:8888/wordpress/fashion/">item 1</a>
        <ul class="sub-menu">
          <li id="menu-item-139" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-139"><a href="http://localhost:8888/wordpress/fashion/fashion-news/">sub item 1</a></li>
          <li id="menu-item-140" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-140"><a href="http://localhost:8888/wordpress/fashion/my-looks/">sub item 2</a></li>
          <li id="menu-item-138" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-138"><a href="http://localhost:8888/wordpress/fashion/outfit-ideas/">sub item 3</a></li>
          <li id="menu-item-137" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-137"><a href="http://localhost:8888/wordpress/fashion/shopping/">sub item 4</a></li>
        </ul>
      </li>
      <li id="menu-item-128" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-128"><a href="http://localhost:8888/wordpress/beauty/">item 2</a>
        <ul class="sub-menu">
          <li id="menu-item-142" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-142"><a href="http://localhost:8888/wordpress/beauty/hair/">sub item 1</a></li>
          <li id="menu-item-143" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-143"><a href="http://localhost:8888/wordpress/beauty/makeup/">sub item 2</a></li>
          <li id="menu-item-141" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-141"><a href="http://localhost:8888/wordpress/beauty/skincare/">sub item 3</a></li>
        </ul>
      </li>
      <li id="menu-item-132" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-132"><a href="http://localhost:8888/wordpress/living/">item 3</a></li>
      <li id="menu-item-130" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-130"><a href="http://localhost:8888/wordpress/wellness/">item 4</a></li>
      <li id="menu-item-759" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-759"><a href="http://localhost:8888/wordpress/travel/">item 5</a></li>
      <li id="menu-item-135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-135"><a href="http://localhost:8888/wordpress/video/">item6</a></li>
      <li id="menu-item-133" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-133"><a href="http://localhost:8888/wordpress/shop/">item 7</a>
        <ul class="sub-menu">
          <li id="menu-item-150" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-150"><a href="http://localhost:8888/wordpress/shop/my-closet/">sub item 1</a></li>
          <li id="menu-item-149" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-149"><a href="http://localhost:8888/wordpress/shop/my-picks/">sub item 2</a></li>
          <li id="menu-item-148" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-148"><a href="http://localhost:8888/wordpress/shop/instagram/">sub item 3</a></li>
          <li id="menu-item-147" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-147"><a href="http://localhost:8888/wordpress/shop/snapchat/">sub item 4</a></li>
        </ul>
      </li>
      <li id="menu-item-509" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-509"><a href="http://localhost:8888/wordpress/more/">item 8</a>
        <ul class="sub-menu">
          <li id="menu-item-512" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-512"><a href="http://localhost:8888/wordpress/contact/">sub item 1</a></li>
          <li id="menu-item-510" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-510"><a href="http://localhost:8888/wordpress/about/">sub item 2</a></li>
          <li id="menu-item-513" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-513"><a href="http://localhost:8888/wordpress/faq/">sub item 3</a></li>
          <li id="menu-item-511" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-511"><a href="http://localhost:8888/wordpress/archive/">sub item 4</a></li>
        </ul>
      </li>
    </ul>
  </div>
</nav>

关于css - 如何让下拉菜单固定在同一位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468217/

相关文章:

javascript - 未呈现选定的下拉菜单项

css - 坚持使用 Wordpress 菜单(可能需要自定义 CSS Walker)

javascript - 当用户单击 MENU 按钮时滚动到带有 ID 的元素(如果其子页面也重定向到另一个页面)

css - Zend框架2 : adding custom attribute in favicon icon

css - 垂直下拉菜单

css - 如何检测用户控件中的 "where i am"?

python - 菜单总索引数、菜单项长度

javascript - 文本区域中的空格消失了吗?

css - 绝对定位元素的高度差异(Firefox 与 Chrome),内部带有 float 、clearfix、负边距

asp.net - 如何更改 asp.net DropDownList 中文本框区域的背景颜色?