精品久久久久久亚洲精品_成人午夜网站_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;">

          午夜精品123| 亚洲欧美日韩一区二区| 色综合久久88色综合天天免费| 日韩不卡一二三区| 亚洲小说欧美激情另类| 亚洲综合一二三区| 日韩一区在线看| 亚洲卡通欧美制服中文| 亚洲国产你懂的| 亚洲一区二区欧美日韩| 亚洲综合清纯丝袜自拍| 一区二区在线免费观看| 一区二区在线免费观看| 一区二区三区美女| 亚洲成人在线免费| 日本视频一区二区| 美女性感视频久久| 国产精品一二三四| a4yy欧美一区二区三区| 在线欧美小视频| 欧美精品tushy高清| 亚洲精品一区在线观看| 欧美激情一区二区三区四区| 中文字幕综合网| 亚洲国产中文字幕| 精品中文字幕一区二区小辣椒| 久久福利视频一区二区| 高清不卡一二三区| 在线欧美日韩精品| 日韩一区二区视频| 中文字幕国产一区| 亚洲午夜久久久久久久久电影网 | 美女免费视频一区二区| 国产精品一区二区三区网站| 99久久精品免费看| 欧美精品乱人伦久久久久久| 精品国产制服丝袜高跟| 国产精品久久久久aaaa| 日韩vs国产vs欧美| 成人福利视频在线看| 欧美丰满嫩嫩电影| 中文字幕一区二区三区在线不卡 | 色网综合在线观看| 欧美一级二级在线观看| 国产片一区二区| 亚洲v日本v欧美v久久精品| 国产一区二区0| 欧美日韩精品高清| 中文一区二区完整视频在线观看| 亚洲h在线观看| 99免费精品在线观看| 日韩久久免费av| 一区二区三区四区视频精品免费| 国产一区在线视频| 欧美久久久久久蜜桃| 亚洲欧美日韩人成在线播放| 麻豆高清免费国产一区| 欧美日韩一区在线观看| 亚洲黄色录像片| 成人午夜免费视频| 国产清纯在线一区二区www| 日韩主播视频在线| 欧美三级韩国三级日本三斤 | 亚瑟在线精品视频| 91在线观看地址| 久久久久国产精品厨房| 久久av中文字幕片| 欧美一区二区三区色| 日本少妇一区二区| 欧美一区永久视频免费观看| 性欧美疯狂xxxxbbbb| 欧美日韩一区二区三区不卡| 夜夜嗨av一区二区三区中文字幕| 99久久久精品| 亚洲乱码一区二区三区在线观看| a亚洲天堂av| 1区2区3区欧美| 91小视频免费观看| 亚洲色图欧洲色图婷婷| 色婷婷国产精品久久包臀| 综合久久久久久| 一本到三区不卡视频| 亚洲男人的天堂在线aⅴ视频| 99精品国产91久久久久久 | 午夜欧美视频在线观看 | 激情综合一区二区三区| 久久婷婷色综合| 久久国产精品免费| 久久九九影视网| 国产aⅴ综合色| ...av二区三区久久精品| 成人久久18免费网站麻豆| 国产精品三级视频| 一本久久精品一区二区| 午夜精品福利一区二区三区av | 成人性生交大片免费看在线播放| 欧美激情综合五月色丁香小说| 99久久婷婷国产| 亚洲午夜久久久久久久久久久 | 成人综合激情网| 一区二区三区欧美日| 欧美午夜精品一区二区蜜桃| 麻豆精品一区二区三区| 国产亚洲欧美激情| 91成人在线观看喷潮| 免费在线成人网| 国产日韩高清在线| 欧美专区在线观看一区| 精品一区免费av| 18欧美乱大交hd1984| 这里只有精品电影| 国产精品小仙女| 亚洲午夜免费电影| 国产日韩欧美制服另类| 欧美综合亚洲图片综合区| 精品一区二区三区免费播放 | 久久―日本道色综合久久| 色香蕉成人二区免费| 日韩不卡手机在线v区| 中文字幕亚洲成人| 日韩欧美一区中文| 欧美亚洲综合久久| 国产馆精品极品| 日韩高清不卡在线| 日韩久久一区二区| 久久美女高清视频| 欧美在线免费观看视频| 国产91在线|亚洲| 奇米888四色在线精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 成人精品小蝌蚪| 蜜臀av一级做a爰片久久| 亚洲三级电影网站| 国产三级欧美三级| 欧美一级视频精品观看| 日本精品视频一区二区| 成人网在线免费视频| 精品亚洲欧美一区| 日本在线不卡一区| 亚洲一级在线观看| 亚洲免费av高清| 中文字幕综合网| 中文子幕无线码一区tr| 国产日韩欧美综合在线| 日韩欧美在线123| 欧美一区二区三区视频在线| 欧美日韩国产影片| 欧美视频中文字幕| 欧美午夜影院一区| 精品1区2区3区| 欧美视频完全免费看| 日本高清成人免费播放| 91无套直看片红桃| 91视频在线观看| 色哟哟日韩精品| 欧美体内she精视频| 欧美偷拍一区二区| 欧美性生活一区| 6080日韩午夜伦伦午夜伦| 91精品国产综合久久香蕉麻豆| 欧美男人的天堂一二区| 欧美日韩国产一级| 欧美一区在线视频| 国产亚洲精品福利| 自拍偷拍亚洲欧美日韩| 亚洲成国产人片在线观看| 亚洲福中文字幕伊人影院| 日韩经典一区二区| 极品瑜伽女神91| 91免费视频观看| 欧美日韩高清在线播放| 精品国产污污免费网站入口| 欧美国产欧美综合| 亚洲精品久久7777| 日本美女一区二区三区| 国产a视频精品免费观看| 91福利国产成人精品照片| 91精品国产免费| 国产精品美女一区二区| 亚洲精品成人天堂一二三| 亚洲成人自拍网| 国产在线播放一区| 91行情网站电视在线观看高清版| 91麻豆精品国产综合久久久久久| 久久亚洲一级片| 一区二区三区波多野结衣在线观看| 日韩vs国产vs欧美| 成人黄动漫网站免费app| 欧美在线免费视屏| 久久久亚洲精品石原莉奈| 亚洲精品欧美在线| 韩国在线一区二区| 91女厕偷拍女厕偷拍高清| 日韩一级完整毛片| 亚洲人成网站在线| 麻豆高清免费国产一区| 91福利国产精品| 欧美国产亚洲另类动漫| 青青草精品视频| 欧美亚洲国产怡红院影院|