【发布时间】:2019-09-07 17:59:55
【问题描述】:
我创建了一个搜索表单,其中包含一些 nav-tabs 和一个让用户更改语言的按钮。
我的问题是,每当我更改语言时,按钮的位置也会发生变化,因为 nav-items 中的字符串长度不同(例如,如果我用西班牙语翻译“City”,则字符串变为“Ciudad”并且按钮向右移动,因为字符串的长度更大)。
换句话说,当字符串较长时,nav-tabs 的框也会变宽,因此按钮会向右移动。
我想把它的位置固定在nav-items的右边,与里面的字符串长度无关。
该按钮是一个Bootstrap dropdown button,并且位于我放置nav-items 的同一个<div> 中。我还将其位置设置为relative,因为我想根据屏幕宽度来修复它(“translate”是按钮的ID):
#translate {
background-color: #d63040;
position: relative;
left: 100px;
}
<ul class="form-inline nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a lang="en" class="nav-link active" id="citta-tab" data-toggle="tab" href="#citta" role="tab" aria-controls="citta" aria-selected="true">CITY</a>
</li>
<li class="nav-item">
<a lang="en" class="nav-link" id="regione-tab" data-toggle="tab" href="#region" role="tab" aria-controls="region" aria-selected="false">REGION</a>
</li>
<li class="nav-item">
<a lang="en" class="nav-link" id="about-tab" data-toggle="tab" href="#about" role="tab" aria-controls="about" aria-selected="false">ABOUT</a>
</li>
<div class="btn-group">
<button id="translate" type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-language"></i>
</button>
<div class="dropdown-menu">
<a id="itButton" class="dropdown-item" href="#lang-en" onclick="window.lang.change('it');return false;">It</a>
<a id="frButton" class="dropdown-item" href="#lang-en" onclick="window.lang.change('fr');return false;">Fr</a>
<a id="enButton" class="dropdown-item" href="#lang-en" onclick="window.lang.change('en');return false;">En</a>
<a id="esButton" class="dropdown-item" href="#lang-en" onclick="window.lang.change('es');return false;">Es</a>
</div>
</div>
</ul>
理想情况下,我想将位置固定在导航项的右侧,如下图所示:
但是,如果我设置了一个更大的值(例如 300 像素),那么当我调整屏幕大小时按钮就会消失:
无论周围的元素如何,我如何才能固定这样一个按钮的位置?我怎样才能通过保持其位置“相对于”浏览器窗口的大小来做到这一点?
【问题讨论】:
-
你试过添加
margin-left:100px这会让你的按钮向右移动100像素 -
你为什么不想保持
relative的位置。你不能把它设置为absolute并设置一个right和top值吗? -
float按钮组对吗?或定位按钮组absolute,定位ul相对位置,然后使用right: 0将按钮组设置在最右侧。 -
如果你想让它独立于其他元素,那么你必须使用绝对位置
-
@Synapsis 是的,我试过了,但没有解决问题。
标签: html css css-position absolute