Html 如何根据内部另一个div的大小调整div的大小?
我有一个垂直导航“滑块”,现在需要根据用户可用的链接数量动态调整大小。我到处找了,但我找到的所有解决办法都不太管用。这可能只是我让css工作的方式。每当我试图更改“高度”属性时,整个事情都会失控。我试图完全用css来实现这一点。我知道这看起来应该很简单,我自己就是想不出来 基本上是:Html 如何根据内部另一个div的大小调整div的大小?,html,css,Html,Css,我有一个垂直导航“滑块”,现在需要根据用户可用的链接数量动态调整大小。我到处找了,但我找到的所有解决办法都不太管用。这可能只是我让css工作的方式。每当我试图更改“高度”属性时,整个事情都会失控。我试图完全用css来实现这一点。我知道这看起来应该很简单,我自己就是想不出来 基本上是: <div class="slideMenu"> <ul class="nav">menu items...</ul> </div> 您不需要指定高度。在本例
<div class="slideMenu">
<ul class="nav">menu items...</ul>
</div>
您不需要指定高度。在本例中使用100%表示高度为其父容器的100%。。。身体。不是你想要的。别说了。这里还有其他可以改进的问题,我在下面代码的注释中标记了这些问题
正文{
保证金:0;
字体系列:“Helvetica Neue”,Helvetica,Arial,“sans serif”!重要;
字体大小:12px;
}
slideMenu先生{
背景:#449bb5;
宽度:140px;
/*高度:100%;移除此*/
右边填充:40px;
位置:绝对位置;
z指数:3;
-网络工具包盒阴影:-3px0px 5px0px rgba(0,0,0,0.2);
盒影:3px0px5px0pxRGBA(0,0,0,0.2);
左:-180px;
排名:0;
颜色:#FFFFFF;
不透明度:100;
过渡:.4s易进易出;
}
.slideMenu:不(:悬停){
转换延迟:.4s;
}
.slideMenu:hover/*,.slideMenu:focus*/{
变换:translate3d(160px,0,0);
}
.slideMenu.nav{
/*位置:绝对;更改为相对*/
位置:相对位置;
最高:30%;
/*高度:自动;删除。不需要*/
/*
-webkit转换:translateY(50%);
-ms转换:translateY(50%);
转化:translateY(-50%);
删除此项。它正在尝试将菜单居中*/
字体大小:400;
}
.slideMenu.nav li{
垫底:10px;
填充顶部:10px;
列表样式类型:无;
}
.slideMenu.nav li a{
显示:块;
文字装饰:无;
颜色:白色;
光标:指针;
}
.slideMenu.nav li a:悬停{
颜色:#aaa;
}
.slideMenuTab{
背景:#449bb5;
位置:相对位置;
宽度:40px;
z指数:3;
-网络工具包盒阴影:-3px0px 5px0px rgba(0,0,0,0.2);
盒影:3px0px5px0pxRGBA(0,0,0,0.2);
左:165px;
颜色:#FFFFFF;
文本对齐:右对齐;
右边填充:8px;
填充顶部:6px;
垫底:3件;
边界半径:8px;
光标:指针;
}
你到底想做什么?你想改变什么高度?实际问题是什么?(你的JSFIDLE在我看来很好,但我不确定你认为它有什么错)我完全不确定我知道你的意思,但也许删除.slideMenu.nav
上的大多数样式就可以了?我可能完全偏离了方向,但这就是你要找的吗?好吧,对不起,我不是很清楚。有时菜单项(nav)可能是12个,有时是3个,有时什么都可以。我需要“slideMenu”,它是一个容器,可以根据显示的菜单项的数量缩小或增大。谢谢韦德先生!成功了!做了一点小调整,但效果很好!
.slideMenu {
background: #449bb5;
width: 140px;
height: 100%;
padding-right: 40px;
position: absolute;
z-index: 3;
-webkit-box-shadow: -3px 0px 5px 0px rgba(0, 0, 0, 0.2);
box-shadow: 3px 0px 5px 0px rgba(0, 0, 0, 0.2);
left: -180px;
color: #FFFFFF;
opacity: 100;
transition: .4s ease-in-out;
}
.slideMenu:not(:hover) {
transition-delay: .4s;
}
.slideMenu:hover {
transform: translate3d(160px, 0, 0);
}
.slideMenu .nav {
position: absolute;
top: 30%;
height: auto;
-webkit-transform: translateY(50%);
-ms-transform: translateY(50%);
transform: translateY(-50%);
font-weight: 400;
}