精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

RTL

Learn how to enable support for right-to-left text in Bootstrap across our layout, components, and utilities.

Get familiar

We recommend getting familiar with Bootstrap first by reading through our Getting Started Introduction page. Once you’ve run through it, continue reading here for how to enable RTL.

You may also want to read up on the RTLCSS project, as it powers our approach to RTL.

Experimental feature

The RTL feature is still experimental and will probably evolve according to user feedback. Spotted something or have an improvement to suggest? Open an issue, we’d love to get your insights.

Required HTML

There are two strict requirements for enabling RTL in Bootstrap-powered pages.

  1. Set dir="rtl" on the <html> element.
  2. Add an appropriate lang attribute, like lang="ar", on the <html> element.

From there, you’ll need to include an RTL version of our CSS. For example, here’s the stylesheet for our compiled and minified CSS with RTL enabled:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.rtl.min.css" integrity="sha384-trxYGD5BY4TyBTvU5H23FalSCYwpLA0vWEvXXGm5eytyztxb+97WzzY+IWDOSbav" crossorigin="anonymous">

Starter template

You can see the above requirements reflected in this modified RTL starter template.

<!doctype html>
<html lang="ar" dir="rtl">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.rtl.min.css" integrity="sha384-trxYGD5BY4TyBTvU5H23FalSCYwpLA0vWEvXXGm5eytyztxb+97WzzY+IWDOSbav" crossorigin="anonymous">

<title>????? ???????!</title>
</head>
<body>
<h1>????? ???????!</h1>

<!-- Optional JavaScript; choose one of the two! -->

<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>

<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script>
    -->
</body>
</html>

RTL examples

Get started with one of our several RTL examples.

Approach

Our approach to building RTL support into Bootstrap comes with two important decisions that impact how we write and use our CSS:

  1. First, we decided to build it with the RTLCSS project. This gives us some powerful features for managing changes and overrides when moving from LTR to RTL. It also allows us to build two versions of Bootstrap from one codebase.

  2. Second, we’ve renamed a handful of directional classes to adopt a logical properties approach. Most of you have already interacted with logical properties thanks to our flex utilities—they replace direction properties like left and right in favor start and end. That makes the class names and values appropriate for LTR and RTL without any overhead.

For example, instead of .ml-3 for margin-left, use .ms-3.

Working with RTL, through our source Sass or compiled CSS, shouldn’t be much different from our default LTR though.

Customize from source

When it comes to customization, the preferred way is to take advantage of variables, maps, and mixins. This approach works the same for RTL, even if it’s post-processed from the compiled files, thanks to how RTLCSS works.

Custom RTL values

Using RTLCSS value directives, you can make a variable output a different value for RTL. For example, to decrease the weight for $font-weight-bold throughout the codebase, you may use the /*rtl: {value}*/ syntax:

$font-weight-bold: 700 #{/* rtl:600 */} !default;

Which would ouput to the following for our default CSS and RTL CSS:

/* bootstrap.css */
dt {
font-weight: 700 /* rtl:600 */;
}

/* bootstrap.rtl.css */
dt {
font-weight: 600;
}

Alternative font stack

In the case you’re using a custom font, be aware that not all fonts support the non-Latin alphabet. To switch from Pan-European to Arabic family, you may need to use /*rtl:insert: {value}*/ in your font stack to modify the names of font families.

For example, to switch from Helvetica Neue Webfont for LTR to Helvetica Neue Arabic for RTL, your Sass code look like this:

$font-family-sans-serif:
Helvetica Neue #{"/* rtl:insert:Arabic */"},
// Cross-platform generic font family (default user interface font)
system-ui,
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Chrome < 56 for macOS (San Francisco)
BlinkMacSystemFont,
// Windows
"Segoe UI",
// Android
Roboto,
// Basic web fallback
Arial,
// Linux
"Noto Sans",
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;

LTR and RTL at the same time

Need both LTR and RTL on the same page? Thanks to RTLCSS String Maps, this is pretty straightforward. Wrap your @imports with a class, and set a custom rename rule for RTLCSS:

/* rtl:begin:options: {
  "autoRename": true,
  "stringMap":[
    "name": "ltr-rtl",
    "priority": 100,
    "search": ["ltr"],
    "replace": ["rtl"],
    "options": {
      "scope": "*",
      "ignoreCase": false
    }
  ]
} */
.ltr {
@import "../node_modules/bootstrap/scss/bootstrap";
}
/*rtl:end:options*/

After running Sass then RTLCSS, each selector in your CSS files will be prepended by .ltr, and .rtl for RTL files. Now you’re able to use both files on the same page, and simply use .ltr or .rtl on your components wrappers to use one or the other direction.

Edge cases and known limitations

While this approach is understandable, please pay attention to the following:

  1. When switching .ltr and .rtl, make sure you add dir and lang attributes accordingly.
  2. Loading both files can be a real performance bottleneck: consider some optimization, and maybe try to load one of those files asynchronously.
  3. Nesting styles this way will prevent our form-validation-state() mixin from working as intended, thus require you tweak it a bit by yourself. See #31223.

The breadcrumb case

The breadcrumb separator is the only case requiring its own brand new variable— namely $breadcrumb-divider-flipped —defaulting to $breadcrumb-divider.

Additional resources

返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      9000px;">

          日韩av一区二区三区| 1区2区3区欧美| 成人国产亚洲欧美成人综合网| 亚洲在线中文字幕| 亚洲男同性视频| 国产精品久久久99| 欧美国产日产图区| 97se亚洲国产综合在线| 欧美色老头old∨ideo| 伊人婷婷欧美激情| 成人欧美一区二区三区1314| 中文字幕高清不卡| 中文字幕欧美日本乱码一线二线| 国产一区不卡在线| 91网址在线看| 日本一区二区三区高清不卡| 午夜一区二区三区视频| 99久久国产免费看| 久久久精品免费网站| 丝袜美腿亚洲一区二区图片| 91在线观看视频| 国产精品午夜春色av| 日本人妖一区二区| 欧美中文一区二区三区| 中文字幕亚洲一区二区va在线| 久久精品999| 欧美精品自拍偷拍| 亚洲成在线观看| 在线免费精品视频| 亚洲品质自拍视频| www.亚洲精品| 国产精品久久免费看| 国产精品一二三四五| 欧美成人精品3d动漫h| 日韩福利电影在线| 91精品国产综合久久精品麻豆| 亚洲欧美经典视频| 一本高清dvd不卡在线观看| 国产精品久久久久久亚洲毛片| 国产乱码一区二区三区| 欧美成人精品高清在线播放| 久久www免费人成看片高清| 欧美片在线播放| 日韩综合小视频| 日韩视频在线一区二区| 久久国产精品色| 久久精品日韩一区二区三区| 国产成人亚洲综合a∨婷婷| 欧美精品一区二区三区在线| 国产一区二区三区观看| 精品理论电影在线| 国产精品99久久久久久久女警| 国产午夜精品一区二区三区视频| 国产成人亚洲综合a∨婷婷图片| 国产精品久久久久久久久免费丝袜| 成人教育av在线| 中文字幕一区二区三区色视频 | 国产一区二区h| 中文一区二区在线观看| aaa亚洲精品| 亚洲综合精品自拍| 欧美一卡2卡三卡4卡5免费| 精品制服美女久久| 中文字幕一区免费在线观看| 91久久精品一区二区| 日韩电影在线一区| 国产三级一区二区| 91福利小视频| 狠狠色丁香久久婷婷综| 欧美国产日韩精品免费观看| 在线观看日韩电影| 开心九九激情九九欧美日韩精美视频电影 | 国产999精品久久久久久绿帽| 9i看片成人免费高清| 中文字幕不卡在线| av电影在线观看不卡| 亚洲狠狠丁香婷婷综合久久久| 在线播放91灌醉迷j高跟美女| 精品中文字幕一区二区| 亚洲欧美在线aaa| 日韩欧美卡一卡二| 色www精品视频在线观看| 日韩精彩视频在线观看| 国产精品午夜电影| 欧美一区二区黄色| 在线一区二区观看| 懂色av噜噜一区二区三区av| 午夜精品久久久久影视| 国产精品美女视频| 欧美成人精品1314www| 欧美日本在线播放| 91碰在线视频| 成人一区在线看| 麻豆精品在线播放| 亚洲在线视频免费观看| 中文字幕欧美区| 久久九九99视频| 精品久久久久久久久久久久久久久久久 | 天天av天天翘天天综合网 | 国产精品天天看| 91精品国产色综合久久不卡电影 | 欧美一区日韩一区| 欧洲精品在线观看| 大胆欧美人体老妇| 韩国精品主播一区二区在线观看 | 中文字幕高清不卡| 久久九九影视网| 精品福利在线导航| 91精品国产91久久久久久一区二区| 91福利精品视频| 一本大道av一区二区在线播放| av中文字幕在线不卡| 成人aaaa免费全部观看| av资源网一区| 色狠狠桃花综合| 欧美亚洲另类激情小说| 色综合久久久久久久久| 99久久亚洲一区二区三区青草| 成人黄色av电影| 91网站在线观看视频| 91污在线观看| 欧美性大战久久久| 欧美精品一级二级| 欧美高清你懂得| 91麻豆精品国产自产在线| 欧美男生操女生| 日韩欧美精品在线| 精品国产乱码久久久久久1区2区| 日韩一区二区三区免费观看| 精品国产亚洲在线| 中文字幕制服丝袜成人av| 亚洲免费观看在线视频| 亚洲第一福利一区| 久久精品噜噜噜成人av农村| 久久99精品视频| 成人精品一区二区三区四区| av在线综合网| 欧美日韩国产免费| 精品伦理精品一区| 自拍偷拍欧美激情| 亚洲一卡二卡三卡四卡无卡久久| 午夜精品视频一区| 韩国三级在线一区| 在线一区二区三区四区五区| 777a∨成人精品桃花网| 欧美精品一区二区在线观看| 国产精品欧美极品| 亚洲成人在线网站| 国产一区二区三区av电影| 99久久国产综合精品女不卡| 欧美日韩在线三级| 久久精品免视看| 亚洲成人你懂的| 国产原创一区二区| 欧美日韩免费不卡视频一区二区三区| 欧美一三区三区四区免费在线看 | 色88888久久久久久影院野外| 91精品婷婷国产综合久久竹菊| 精品日韩欧美在线| 一区二区三区精品久久久| 精品一区二区久久| 91福利国产成人精品照片| 日韩精品一区二| 亚洲免费av在线| 国产一区二区在线观看免费| 一本色道久久综合亚洲aⅴ蜜桃| 欧美成人精精品一区二区频| 亚洲欧美日韩精品久久久久| 久久99九九99精品| 欧美日韩精品专区| 亚洲视频一二区| 精品一区二区三区久久| 欧美日韩极品在线观看一区| 国产精品毛片久久久久久| 美女爽到高潮91| 色8久久精品久久久久久蜜| 国产性天天综合网| 九九精品视频在线看| 欧美三区在线视频| 国产精品免费久久| 黄网站免费久久| 欧美一区二区播放| 午夜成人在线视频| 91福利精品第一导航| 中文字幕一区二区三区av| 激情综合色综合久久综合| 这里只有精品99re| 亚洲成在线观看| 欧美三级电影精品| 一区二区三区加勒比av| 99久久综合色| 中文字幕日韩精品一区| 风间由美性色一区二区三区| 久久婷婷综合激情| 国产尤物一区二区在线| 日韩亚洲国产中文字幕欧美| 日本伊人精品一区二区三区观看方式| 在线观看国产一区二区| 一区二区视频在线| 在线看不卡av|