如何在 bootstrap 下拉菜单项上添加与父项相同的宽度
how to add same width on bootstrap dropdown menu item as parent item
如何在 bootstrap 下拉菜单项上添加与父项相同的宽度?
我有
html 是
<header class="navbar navbar-purple navbar-static-top bs-docs-nav" role="banner">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://pos.shalvasoft.tk/"><span class="first">ShalvaSoft</span> <span class="second">POS</span></a>
</div>
<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown langs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> ქართული <i class='flag-icon flag-icon-ge'></i></span>
</a>
<ul class="dropdown-menu" role="menu">
<li class="hidden"><a href="#" class="lang" data-link="ge">ქართული <i class='flag-icon flag-icon-ge'></i></a></li>
<li><a href="#" class="lang" data-link="ru">русский <i class='flag-icon flag-icon-ru'></i></a></li>
<li><a href="#" class="lang" data-link="en">English <i class='flag-icon flag-icon-us'></i></a></li>
</ul>
</li>
</ul>
</nav>
</div>
</header>
在 css 中,我尝试了此代码
.navbar-purple .dropdown-menu { background-color: rgba(155, 89, 182,0.8); min-width:118px;padding-top: 0; padding-bottom: 0;}
.navbar-purple .dropdown-menu > li > a { color: #FFFFFF; text-align: right !important; padding: 3px 5px 3px 0;}
但没有发生任何事情,因为当父下拉菜单的文本是格鲁吉亚语时,文本大小比英语或俄语大
所以我尝试使用 jquery 检查父下拉菜单的大小
var langwidth = $('.langs > a').width();
if(langwidth > 70) {
$('.navbar-purple .tmenu .dropdown-menu>li>a').css({
'padding-left': (100 - langwidth + 2) + 'px',
'padding-right': (100 - langwidth + 2) + 'px'
});
}
我不能每次都使用 if else 语句,因为这个栏是动态的,将来可能需要添加新项目
所以尺寸不会像我需要的那样
请帮帮我
这是 jsfiddle link
https://jsfiddle.net/giasoft/f0zsroaj/
这是只有这个菜单和 1 个表单的页面,因此您可以更改语言并检查它是如何显示下拉内容的。
http://pos.shalvasoft.tk/login/en
感谢您以后的帮助。
使用此 html.
更新切换菜单 li 标签
<li style="width:130px;" class="dropdown langs open">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> English <i class="flag-icon flag-icon-us"></i></span>
</a>
<ul class="dropdown-menu" role="menu">
<li style="width:130px;"><a href="#" class="lang" data-link="ge">ქართული <i class="flag-icon flag-icon-ge"></i></a></li>
<li style="width:130px;"><a href="#" class="lang" data-link="ru">русский <i class="flag-icon flag-icon-ru"></i></a></li>
<li class="hidden"><a href="#" class="lang" data-link="en">English <i class="flag-icon flag-icon-us"></i></a></li>
</ul>
</li>
我实际上只是将 ul.dropdown-menu
标签设置为具有 width
的 100%
,这将确保它具有与其父 li.dropdown.langs
标签相同的宽度.正如接受的答案也说明的那样,与内联样式相比,将其放入样式标签或外部 sheet 会更好。
<li class="dropdown langs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> English <i class="flag-icon flag-icon-us"></i></span>
</a>
<ul style="width:100%;" class="dropdown-menu" role="menu">
<li><a href="#" class="lang" data-link="ge">ქართული <i class="flag-icon flag-icon-ge"></i></a>
</li>
<li style="width:130px;"><a href="#" class="lang" data-link="ru">русский <i class="flag-icon flag-icon-ru"></i></a>
</li>
<li class="hidden"><a href="#" class="lang" data-link="en">English <i class="flag-icon flag-icon-us"></i></a>
</li>
</ul>
</li>
只需让下拉菜单和父菜单 "dropdown toggle" 都采用 100% 宽度。这是 CSS 规则
.dropdown-toggle,
.dropdown-menu {
width: 100%;
}
如何在 bootstrap 下拉菜单项上添加与父项相同的宽度?
我有
html 是
<header class="navbar navbar-purple navbar-static-top bs-docs-nav" role="banner">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://pos.shalvasoft.tk/"><span class="first">ShalvaSoft</span> <span class="second">POS</span></a>
</div>
<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown langs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> ქართული <i class='flag-icon flag-icon-ge'></i></span>
</a>
<ul class="dropdown-menu" role="menu">
<li class="hidden"><a href="#" class="lang" data-link="ge">ქართული <i class='flag-icon flag-icon-ge'></i></a></li>
<li><a href="#" class="lang" data-link="ru">русский <i class='flag-icon flag-icon-ru'></i></a></li>
<li><a href="#" class="lang" data-link="en">English <i class='flag-icon flag-icon-us'></i></a></li>
</ul>
</li>
</ul>
</nav>
</div>
</header>
在 css 中,我尝试了此代码
.navbar-purple .dropdown-menu { background-color: rgba(155, 89, 182,0.8); min-width:118px;padding-top: 0; padding-bottom: 0;}
.navbar-purple .dropdown-menu > li > a { color: #FFFFFF; text-align: right !important; padding: 3px 5px 3px 0;}
但没有发生任何事情,因为当父下拉菜单的文本是格鲁吉亚语时,文本大小比英语或俄语大 所以我尝试使用 jquery 检查父下拉菜单的大小
var langwidth = $('.langs > a').width();
if(langwidth > 70) {
$('.navbar-purple .tmenu .dropdown-menu>li>a').css({
'padding-left': (100 - langwidth + 2) + 'px',
'padding-right': (100 - langwidth + 2) + 'px'
});
}
我不能每次都使用 if else 语句,因为这个栏是动态的,将来可能需要添加新项目 所以尺寸不会像我需要的那样
请帮帮我
这是 jsfiddle link
https://jsfiddle.net/giasoft/f0zsroaj/
这是只有这个菜单和 1 个表单的页面,因此您可以更改语言并检查它是如何显示下拉内容的。
http://pos.shalvasoft.tk/login/en
感谢您以后的帮助。
使用此 html.
更新切换菜单 li 标签<li style="width:130px;" class="dropdown langs open">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> English <i class="flag-icon flag-icon-us"></i></span>
</a>
<ul class="dropdown-menu" role="menu">
<li style="width:130px;"><a href="#" class="lang" data-link="ge">ქართული <i class="flag-icon flag-icon-ge"></i></a></li>
<li style="width:130px;"><a href="#" class="lang" data-link="ru">русский <i class="flag-icon flag-icon-ru"></i></a></li>
<li class="hidden"><a href="#" class="lang" data-link="en">English <i class="flag-icon flag-icon-us"></i></a></li>
</ul>
</li>
我实际上只是将 ul.dropdown-menu
标签设置为具有 width
的 100%
,这将确保它具有与其父 li.dropdown.langs
标签相同的宽度.正如接受的答案也说明的那样,与内联样式相比,将其放入样式标签或外部 sheet 会更好。
<li class="dropdown langs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="caret"></span>
<span id="selectedlang"> English <i class="flag-icon flag-icon-us"></i></span>
</a>
<ul style="width:100%;" class="dropdown-menu" role="menu">
<li><a href="#" class="lang" data-link="ge">ქართული <i class="flag-icon flag-icon-ge"></i></a>
</li>
<li style="width:130px;"><a href="#" class="lang" data-link="ru">русский <i class="flag-icon flag-icon-ru"></i></a>
</li>
<li class="hidden"><a href="#" class="lang" data-link="en">English <i class="flag-icon flag-icon-us"></i></a>
</li>
</ul>
</li>
只需让下拉菜单和父菜单 "dropdown toggle" 都采用 100% 宽度。这是 CSS 规则
.dropdown-toggle,
.dropdown-menu {
width: 100%;
}