繁体   English   中英

根据内容调整导航栏的大小

[英]Resize Navigation Bar based on content

我目前有一个导航侧边栏,其中包含一些内容。 我想根据侧边栏中的内容动态调整其高度。 我曾尝试删除高度选项,但这似乎不起作用。 我真的很难过,需要一些帮助。

这是我的代码。

HTML:

<nav class="main-menu">
    <ul>
        <?php
            if(hasMediaFile(wp_title($sep = '', $display = false, $seplocation = ''),"images.txt")) :
        ?>
        <li>
            <a href="#images">
                <i class="fa fa-picture-o fa-2x"></i>
                <span class="nav-text">
                            Images
                </span>
            </a>
        </li>
        <?php endif; ?>


        <?php
            if(hasMediaFile(wp_title($sep = '', $display = false, $seplocation = ''),"videos.txt")) :
        ?>
        <li class="has-subnav">
            <a href="#videos">
                <i class="fa fa-play fa-2x"></i>
                <span class="nav-text">
                            Videos
                </span>
            </a>
        </li>
        <?php endif; ?>


        <?php
            if(hasMediaFile(wp_title($sep = '', $display = false, $seplocation = ''),"audios.txt")) :
        ?>
        <li class="has-subnav">
            <a href="#audio">
                <i class="fa fa-headphones fa-2x"></i>
                <span class="nav-text">
                            Audios
                </span>
            </a>
        </li>
        <?php endif; ?>

        <?php
            if(hasMediaFile(wp_title($sep = '', $display = false, $seplocation = ''),"gviewdocs.txt")) :
        ?>
        <li class="has-subnav">
            <a href="#documents">
                <i class="fa fa-file-text fa-2x"></i>
                <span class="nav-text">
                            Documents
                </span>
            </a>
        </li>
        <?php endif; ?>

        <?php
            if(hasMediaFile(wp_title($sep = '', $display = false, $seplocation = ''),"snapshots.txt")) :
        ?>
        <li>
            <a href="#websites">
                <i class="fa  fa-link fa-2x"></i>
                <span class="nav-text">
                            Websites
                </span>
            </a>
        </li>
        <?php endif; ?>
    </ul>
</nav>

CSS:

.main-menu:hover,nav.main-menu.expanded {
  width:250px;
  overflow:visible;
}

.main-menu {
  background:#212121;
  position:absolute;
  border-radius: 25px;
  top:50px;
  bottom:0;
  height: 20%;
  left:30px;
  width:60px;
  overflow:hidden;
  -webkit-transition:width .05s linear;
  transition:width .05s linear;
  -webkit-transform:translateZ(0) scale(1,1);
  z-index:1000;
}

.main-menu>ul {
  margin:7px 0;
}

.main-menu li {
  position:relative;
  display:block;
  width:250px;
}

.main-menu li>a {
  position:relative;
  display:table;
  border-collapse:collapse;
  border-spacing:0;
  color:#999;
  font-family: arial;
  font-size: 14px;
  text-decoration:none;
  -webkit-transform:translateZ(0) scale(1,1);
  -webkit-transition:all .1s linear;
  transition:all .1s linear;

}

.main-menu .nav-icon {
  position:relative;
  display:table-cell;
  width:60px;
  height:36px;
  text-align:center;
  vertical-align:middle;
  font-size:18px;
}

.main-menu .nav-text {
  position:relative;
  display:table-cell;
  vertical-align:middle;
  width:190px;
  font-family: 'Titillium Web', sans-serif;
}

这是当前输出的预览:

带三个元素: https://imgur.com/a/yaIYKPq

有五个元素: https://imgur.com/a/7aBhD24

.main-menu的高度更改为fit-content

像这样:

.main-menu {
  background:#212121;
  position:absolute;
  border-radius: 25px;
  top:50px;
  bottom:0;
  height: fit-content;
  /* height: 20%; */
  left:30px;
  width:60px;
  overflow:hidden;
  -webkit-transition:width .05s linear;
  transition:width .05s linear;
  -webkit-transform:translateZ(0) scale(1,1);
  z-index:1000;
}

您需要将height CSS 属性设置为fit-content更多关于 MDN 上的适合内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM