我正在使用rtl语言开发页面,而Bootstrap的input-group
看起来像这样:
显然border-radius
是错误的,我可以用CSS修复它,但我想知道Bootstrap是否有本地方式来处理它。
这是我的代码:
<div class="input-group" lang="fa" dir="rtl">
<input type="text"
lang="fa" dir="rtl"
class="form-control"/>
<span class="input-group-btn">
<button ng-click="editor.removeQuestion(question)"
title="Remove question"
class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
</div>
答案 0 :(得分:6)
你有所有组件,只是顺序错误:)
如果您希望在输入的左侧显示跨度,则希望跨度位于输入元素之前。此外,您不需要dir="rtl"
元素(外部div)上的input-group
属性,仅需要输入元素本身。
因此您只需将代码更改为以下内容:
<div class="input-group">
<span class="input-group-btn">
<button ng-click="editor.removeQuestion(question)"
title="Remove question"
class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
<input type="text" lang="fa" dir="rtl" class="form-control"/>
</div>
答案 1 :(得分:4)
这是一个有效的解决方案:
.input-group {
direction:rtl !important;
}
.input-group-btn:last-child >.btn {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-top-left-radius: 4px !important;
border-bottom-left-radius: 4px !important;
border-right:0px !important;
border-left:1px !important;
}
.input-group .form-control:first-child {
border-top-right-radius: 4px !important;
border-bottom-right-radius: 4px !important;
border-top-left-radius: 0px !important;
border-bottom-left-radius: 0px !important;
}
答案 2 :(得分:0)
另一种对我有用的有效解决方案,但这是用于Bootstrap 4的。不需要更改任何CSS。
<div class="input-group w-100" dir="ltr">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button" style="background-color: #fff;">
<i class="fa fa-search"></i>
</button>
</div>
<input type="text" class="form-control border-dark" placeholder="گەڕان" />
</div>