用于 RTL 语言的 Twitter Bootstrap 拉右和拉左

Posted

技术标签:

【中文标题】用于 RTL 语言的 Twitter Bootstrap 拉右和拉左【英文标题】:Twitter Bootstrap pull-right and pull-left for RTL languages 【发布时间】:2014-04-28 08:26:05 【问题描述】:

在 Twitter 引导程序 3 中,我的 div 中有一些字形图标,并为默认页面添加了“向右拉”。 当我将方向更改为 RTL 文本等时,翻转成功,但右拉不会切换到左拉。 我应该怎么做才能在 LTR 的右侧和 RTL 的左侧有一个图标?

(当然可以添加javascript代码并检查页面正文中的所有pull-rights并将它们更改为pull-left,但我不喜欢JS解决方案。我试过this但它没有帮助。)

小提琴: http://jsfiddle.net/mavent/dKPE3/1/

<div id="div1" class="alert alert-info">This is my fancy description <span class="badge badge-info">122</span><a class="btn btn-lg pull-right" style="padding:0;" data-toggle="collapse" data-target="#aaa"><i class="glyphicon glyphicon-chevron-down twitp_toggleable_chevron"></i></a>
</div>

<div id="div2" class="alert alert-info">هذا هو بلدي وصف الهوى <span class="badge badge-info">122</span><a class="btn btn-lg pull-right" style="padding:0;" data-toggle="collapse" data-target="#aaa"><i class="glyphicon glyphicon-chevron-down twitp_toggleable_chevron"></i></a>
</div>

【问题讨论】:

如果您在 Bootstrap v3.2.0 (github.com/twbs/bootstrap/pull/12840) 中使用即将推出的 RTL 支持,它目前确实会反转 .pull-left/right 的方向。 @trante 简而言之,当文本从右到左时,您要做的是向左移动字形图标,对吗? 【参考方案1】:

.pull-right 出现在 rtl 元素之后时,您可以覆盖它以向左浮动。

像这样:

.rtl 
    direction: RTL;

.rtl .pull-right 
    float:left !important;

还有你的 div 元素:

<div id="div2" class="alert alert-info rtl">
    هذا هو بلدي وصف الهوى
    <span class="badge badge-info">122</span>
    <a class="btn btn-lg pull-right" style="padding:0;" data-toggle="collapse" data-target="#aaa">
        <i class="glyphicon glyphicon-chevron-down twitp_toggleable_chevron"></i>
    </a>
</div>

这是一个FIDDLE

或者,您也可以使用 javascript:(使用相同的代码只需添加 javascript)

$(document).ready(function() 
    $('.pull-right').each(function() 
        if($(this).parent().css('direction') == 'rtl')
            $(this).attr('style', 'float:left !important');
    );
);

希望这会有所帮助。

【讨论】:

【参考方案2】:

我不知道这是否对你有帮助,但你可以使用这个 Demo,即覆盖 pull-right

css

#div2 
    direction: RTL;


#div2 .pull-right 
    float: left !important;

【讨论】:

【参考方案3】:

我建议调查一下这个library。它建立在 Bootstrap 核心之上,并包含从右到左的支持。

使用此独立 library 的另一种选择。

【讨论】:

我试过“ratnic/bootstrap-rtl”它没有用。我不喜欢使用这个分叉的引导程序 (zerox.me/projects/bootstrap3)。【参考方案4】:

您可以使用RTLCSS 生成完整的 RTL 版本的 CSS,它使您能够扩展其功能以支持自定义场景。此外,它还支持 CSS3 变换(矩阵、平移、旋转……等)。

【讨论】:

以上是关于用于 RTL 语言的 Twitter Bootstrap 拉右和拉左的主要内容,如果未能解决你的问题,请参考以下文章

Flutter RTL(本地化)不适用于网格视图小部件 - 阿拉伯语言

使用 2 个不同的故事板,一个用于 LTR,一个用于 RTL(非自动布局)

在 TextView 中使用区域设置 (ltr/rtl) 作为重力

AngularJs+bootstrap搭载前台框架——准备工作

AngularJs+bootstrap搭载前台框架——准备工作

AngularJs+bootstrap搭载前台框架——准备工作