精品久久久久久亚洲精品_成人午夜网站_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日本高清_亚洲精品久久久久午夜福

      欧美日韩在线观看一区二区| 亚洲综合导航| 国产欧美日韩亚洲一区二区三区| 久久久久久久久一区二区| 亚洲风情亚aⅴ在线发布| 国产精品视频久久| 欧美成人dvd在线视频| 欧美一区二区三区四区在线观看| 亚洲精品精选| 红桃视频成人| 国产精品中文字幕欧美| 欧美日韩不卡视频| 老鸭窝毛片一区二区三区| 午夜久久久久久久久久一区二区| 亚洲欧洲日本一区二区三区| 国产日韩欧美精品| 国产精品wwwwww| 欧美日韩国产不卡在线看| 老巨人导航500精品| 久久久久国产精品午夜一区| 亚洲夜晚福利在线观看| 日韩一本二本av| 亚洲美女毛片| 亚洲精品欧美日韩专区| 在线观看中文字幕亚洲| 激情国产一区| 亚洲成色777777女色窝| 激情综合久久| 狠狠色狠狠色综合日日五| 国模吧视频一区| 一区在线影院| 原创国产精品91| 亚洲国产mv| 亚洲美女毛片| 99热免费精品| 在线视频精品一区| 亚洲男人第一网站| 午夜亚洲影视| 久久免费国产精品| 男人天堂欧美日韩| 欧美人牲a欧美精品| 欧美日韩国产区一| 国产精品日韩欧美一区| 国产欧美亚洲一区| 韩国视频理论视频久久| 永久免费精品影视网站| 在线日韩av片| 一区二区三区免费网站| 亚洲欧美日韩另类| 久久久免费精品| 欧美日韩高清在线| 国产精品外国| 亚洲国产精品一区二区www| 亚洲看片一区| 欧美一二三视频| 嫩草影视亚洲| 国产精品麻豆成人av电影艾秋| 国产日韩精品一区二区| 亚洲人成网站色ww在线| 亚洲一区二区三区777| 久久久久久高潮国产精品视| 欧美大片网址| 国产一区二区三区高清播放| 在线免费不卡视频| 亚洲专区欧美专区| 欧美69wwwcom| 国产日韩精品一区二区三区在线 | 最近看过的日韩成人| 亚洲一区中文| 玖玖在线精品| 国产日韩欧美一区在线| 99pao成人国产永久免费视频| 亚洲免费在线电影| 欧美久久一级| 一区精品在线播放| 性欧美长视频| 欧美日韩中文字幕在线视频| 极品少妇一区二区三区精品视频| 宅男66日本亚洲欧美视频| 美女成人午夜| 伊人久久亚洲影院| 欧美在线短视频| 国产精品青草久久| 亚洲深夜av| 欧美日韩黄色大片| 亚洲国产精品传媒在线观看| 欧美在线一二三区| 国产精品欧美一区二区三区奶水| 99re6热只有精品免费观看| 久久女同精品一区二区| 国产一区二区三区在线观看免费| 亚洲一区在线看| 国产精品久久久久aaaa| 一区二区三区视频在线观看| 欧美精品三级日韩久久| 亚洲黄色成人| 欧美激情一区| 日韩午夜激情av| 欧美久久九九| 亚洲午夜女主播在线直播| 欧美日韩中文字幕在线| 99精品欧美| 国产精品国产馆在线真实露脸 | 亚洲电影自拍| 欧美电影免费网站| 亚洲精品免费网站| 欧美日韩国产区| 一区二区三区视频免费在线观看| 欧美日韩国语| 亚洲在线中文字幕| 国产精品资源在线观看| 久久精品一区蜜桃臀影院| 国内综合精品午夜久久资源| 久久婷婷久久| 亚洲美女啪啪| 国产精品自拍一区| 久久精品二区三区| 91久久精品一区二区三区| 欧美区一区二区三区| 亚洲尤物精选| 黄色一区二区三区| 欧美精品一区在线观看| 午夜精品久久久久影视 | 久久精品国产第一区二区三区最新章节| 国产色视频一区| 欧美大秀在线观看| 亚洲欧美激情四射在线日| 国产亚洲视频在线| 欧美伦理a级免费电影| 亚洲网站视频| 亚洲高清视频一区| 欧美午夜激情视频| 久久人人爽人人爽| 亚洲最新合集| 国内一区二区三区| 欧美色大人视频| 久久综合网hezyo| 亚洲自拍偷拍福利| 亚洲激情校园春色| 国产麻豆一精品一av一免费| 美女日韩欧美| 欧美一级一区| 一本色道久久综合亚洲精品小说 | 久久九九国产精品怡红院| 一本色道久久综合狠狠躁的推荐| 国产一区二区三区免费在线观看| 欧美日韩亚洲高清| 免费观看成人网| 欧美在线免费观看| 亚洲综合色在线| 一本久道久久综合中文字幕| 国产自产2019最新不卡| 欧美视频在线视频| 欧美日韩国产在线播放| 久久一区二区三区四区五区| 性做久久久久久| 亚洲性视频网站| 中文精品视频一区二区在线观看| 在线精品国精品国产尤物884a| 国产精品视频一| 国产精品国产a级| 欧美日韩一级大片网址| 欧美精品一区二区三区在线看午夜 | 欧美夜福利tv在线| 亚洲综合国产激情另类一区| 99精品国产福利在线观看免费| 在线国产日韩| 亚洲高清色综合| 亚洲激情二区| 亚洲精品一区二区三区福利| 1204国产成人精品视频| 极品尤物av久久免费看| 好男人免费精品视频| 国产一区二区高清视频| 国产日韩欧美精品在线| 国产一区二区三区久久精品| 国产视频一区二区在线观看| 国产亚洲精品v| 在线欧美日韩精品| 日韩视频一区二区在线观看| 日韩视频永久免费| 亚洲欧美日韩精品在线| 午夜视频在线观看一区| 久久精品毛片| 欧美高清视频www夜色资源网| 欧美xx视频| 欧美性猛交xxxx乱大交退制版| 欧美日韩在线三级| 国产亚洲在线观看| 亚洲国产日韩精品| 亚洲一区二区高清| 久久三级福利| 欧美日韩精品福利| 国产精品一区二区女厕厕| 狠狠88综合久久久久综合网| 91久久中文字幕| 亚洲在线观看免费视频| 久久男人资源视频| 欧美日韩国产精品| 国产日韩久久|