Html 如何使元素与其父元素一起增加高度(未指定父元素高度)
这个问题已经被问过好几次了,但从我所看到的情况来看,所有人都至少有4-5岁。因此,我想知道是否有一种新的更好/更简单的方法来做到这一点 我有一个菜单,里面有一个按钮,菜单的大小会根据贴在菜单上的标志而变化。因此,当我上传一个大徽标时,菜单的高度被拉伸,但按钮的高度保持不变。菜单栏没有指定的高度,因此Html 如何使元素与其父元素一起增加高度(未指定父元素高度),html,css,Html,Css,这个问题已经被问过好几次了,但从我所看到的情况来看,所有人都至少有4-5岁。因此,我想知道是否有一种新的更好/更简单的方法来做到这一点 我有一个菜单,里面有一个按钮,菜单的大小会根据贴在菜单上的标志而变化。因此,当我上传一个大徽标时,菜单的高度被拉伸,但按钮的高度保持不变。菜单栏没有指定的高度,因此height:100%将不起作用 图像更清晰: 白色栏是我的菜单,灰色区域是我的按钮 html标记: <nav class="navbar navbar-default navbar-stat
height:100%
将不起作用
图像更清晰:
白色栏是我的菜单,灰色区域是我的按钮
html标记:
<nav class="navbar navbar-default navbar-static-top m-b-0">
<div class="navbar-header">
<a class="navbar-toggle hidden-sm hidden-md hidden-lg " href="javascript:void(0)" data-toggle="collapse" data-target=".navbar-collapse"><i class="ti-menu"></i></a>
<div class="top-left-part"><a class="logo" href="index.php"><img style="height:100%;" src="logo.png" alt="home" /></a></div>
<ul class="nav navbar-top-links navbar-left hidden-xs">
<li><a href="javascript:void(0)" class="open-close hidden-xs waves-effect waves-light"><i class="icon-arrow-left-circle ti-menu"></i></a></li>
</ul>
<ul class="nav navbar-top-links navbar-right pull-right">
<li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"><b class="hidden-xs"><i class="fa fa-user"></i> User</b> </a>
<ul class="dropdown-menu dropdown-user animated flipInY">
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
</li>
</ul>
</div>
</nav>
使用CSS,这可以通过父级的
display:table
和子级的display:table cell
来实现。但我不建议你在你目前的情况下使用它,因为你有很多div,导航条等等
所以我提出了一个JQ解决方案。我希望你不介意。它很容易理解,如果需要,也很容易修改
如果有帮助,请告诉我
请看这里的小提琴>
JQ代码:
var newHeight = $(".top-left-part").height()
$(".pull-right > li.dropdown > a.dropdown-toggle").height(newHeight)
为了垂直对齐文本,我添加了
a.dropdown-toggle {
display:flex
align-items:center;
}
使用CSS,这可以通过父级的
display:table
和子级的display:table cell
来实现。但我不建议你在你目前的情况下使用它,因为你有很多div,导航条等等
所以我提出了一个JQ解决方案。我希望你不介意。它很容易理解,如果需要,也很容易修改
如果有帮助,请告诉我
请看这里的小提琴>
JQ代码:
var newHeight = $(".top-left-part").height()
$(".pull-right > li.dropdown > a.dropdown-toggle").height(newHeight)
为了垂直对齐文本,我添加了
a.dropdown-toggle {
display:flex
align-items:center;
}
下面是一个可能会有所帮助的概念验证解决方案。此解决方案仅使用CSS,不需要JavaScript 让
.wrap
成为包含导航、徽标等内容的父容器
在.wrap
中,在右侧创建一个包含按钮的受保护区域。为此,请指定右填充:100px
(例如),然后指定位置:相对
现在可以定义一个名为。右面板的元素,该元素将包含按钮等。对于。右侧面板
,指定位置:绝对
,并将偏移设置为顶部:0
和底部:0
,以强制其保持在父块的高度,然后右侧:0
将其固定在父块的右侧,然后设置宽度:100px
(例如)
更改父容器中的内容时,。右侧面板将以响应方式显示父容器的高度
这里的限制是您需要为右侧面板/元素指定宽度,这可能不会太大,因为您了解按钮的设计(如尺寸)
对于没有徽标或徽标的高度小于按钮固有高度的情况,可能需要为父级指定最小高度
。wrap
注意:如果您使用的是像Bootstrap这样的CSS框架,您可能需要做更多的工作来将其融入浮动父级,但我还没有尝试过
.wrap{
边框:1px点蓝色;
位置:相对位置;
右边填充:100px;
}
.右面板{
边框:1px灰色虚线;
位置:绝对位置;
右:0;
排名:0;
底部:0;
宽度:100px;
}
一些标题可以是文本或徽标。
一些内容等等
按钮什么的
以下是一个概念验证解决方案,可能会有所帮助。此解决方案仅使用CSS,不需要JavaScript
让.wrap
成为包含导航、徽标等内容的父容器
在.wrap
中,在右侧创建一个包含按钮的受保护区域。为此,请指定右填充:100px
(例如),然后指定位置:相对
现在可以定义一个名为。右面板的元素,该元素将包含按钮等。对于。右侧面板
,指定位置:绝对
,并将偏移设置为顶部:0
和底部:0
,以强制其保持在父块的高度,然后右侧:0
将其固定在父块的右侧,然后设置宽度:100px
(例如)
更改父容器中的内容时,。右侧面板将以响应方式显示父容器的高度
这里的限制是您需要为右侧面板/元素指定宽度,这可能不会太大,因为您了解按钮的设计(如尺寸)
对于没有徽标或徽标的高度小于按钮固有高度的情况,可能需要为父级指定最小高度
。wrap
注意:如果您使用的是像Bootstrap这样的CSS框架,您可能需要做更多的工作来将其融入浮动父级,但我还没有尝试过
.wrap{
边框:1px点蓝色;
位置:相对位置;
右边填充:100px;
}
.右面板{
边框:1px灰色虚线;
位置:绝对位置;
右:0;
排名:0;
底部:0;
宽度:100px;
}
一些标题可以是文本或徽标。
一些内容等等
按钮什么的
javaScript是一个选项吗?javaScript是一个选项吗?太棒了,我已经用javaScript修复了它,但这比我拥有的代码要少。此外,文本现在垂直居中。要垂直对齐文本,我在a.下拉菜单上添加了display:flex
,以及align items:center代码>是的,我注意到了,干得不错,太棒了,我已经用javascript修复了它,但这比我的代码要少。还有文本