如何在bootstrap下拉菜单项上添加相同的宽度作为父项

sha*_*oft 2 jquery html5 css3 twitter-bootstrap drop-down-menu

如何在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>
Run Code Online (Sandbox Code Playgroud)

在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;}
Run Code Online (Sandbox Code Playgroud)

但没有任何事情发生,因为当父母的文本下拉格鲁吉亚文本大小比英文或俄文大,所以我尝试使用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'
        });
    }
Run Code Online (Sandbox Code Playgroud)

我不能每次都使用if else语句因为这个栏是dinamicaly,可能在将来我需要添加新项目所以大小不会像我需要的那样

请帮我

这是jsfiddle链接

https://jsfiddle.net/giasoft/f0zsroaj/
Run Code Online (Sandbox Code Playgroud)

这是仅此菜单和1个表单的页面,因此您可以更改语言并检查它是如何显示下拉内容的.

http://pos.shalvasoft.tk/login/en
Run Code Online (Sandbox Code Playgroud)

感谢您将来的帮助.

RSm*_*lal 7

我会实际上只是设置ul.dropdown-menu标签有一个width100%,这将确保它具有相同的宽度为其父li.dropdown.langs标签.正如所接受的答案所示,这将更好地放入样式标签或外部工作表而不是内联样式.

<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>
Run Code Online (Sandbox Code Playgroud)