aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/css/unicode-bidi/index.html
blob: 0dc0472b596b881119c092fb7da248585101cb58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
title: unicode-bidi
slug: Web/CSS/unicode-bidi
tags:
  - BiDi
  - CSS
translation_of: Web/CSS/unicode-bidi
---
<div>{{CSSRef}}</div>

<p><a href="/zh-CN/docs/Web/CSS">CSS</a> <strong><code>unicode-bidi</code></strong> 属性,和 {{cssxref("direction")}} 属性,决定如何处理文档中的双书写方向文本(bidirectional text)。比如,如果一块内容同时包含有从左到右书写和从右到左书写的文本,那么用户代理(the user-agent)会使用复杂的 Unicode 算法来决定如何显示文本。<code>unicode-bidi</code> 属性会覆盖此算法,允许开发人员控制文本嵌入(text embedding)。</p>

<p><code>unicode-bidi</code>{{cssxref("direction")}} 是仅有的两个不受 {{cssxref("all")}} 简写影响的属性。</p>

<p class="note"><strong>注意:</strong>此属性是文档类型定义(Document Type Definition, DTD)的设计者专用的。Web 设计者与其他类似的人员不应覆盖此属性。</p>

<pre class="brush: css">/* 关键字值 */
unicode-bidi: normal;
unicode-bidi: embed;
unicode-bidi: isolate;
unicode-bidi: bidi-override;
unicode-bidi: isolate-override;
unicode-bidi: plaintext;
/* 全局值 */
unicode-bidi: inherit;
unicode-bidi: initial;
unicode-bidi: unset;
</pre>

<p>{{cssinfo}}</p>

<h2 id="语法">语法</h2>

<h3 id="值"></h3>

<dl>
 <dt><code>normal</code></dt>
 <dd>对双向算法,此元素不提供额外的嵌入级别。对于内联元素,隐式的重新排序在元素的边界上起作用。</dd>
 <dt><code>embed</code></dt>
 <dd>对于内联元素,该值会为双向算法打开一个额外的嵌入级别。嵌入级别的方向是由 {{Cssxref("direction")}} 属性给出的。</dd>
 <dt><code>bidi-override</code></dt>
 <dd>对于内联元素,该值会创建一个覆盖;对于块容器元素,该值将为不在另一个块容器元素内的内联级别的后代创建一个覆盖。这意味着在元素内部,根据 {{Cssxref("direction")}} 属性,重新排序是严格按照顺序排列的;双向算法的隐式部分被忽略。</dd>
 <dt><code>isolate</code></dt>
 <dd>这个关键字表示计算元素容器的方向时,不考虑这个元素的内容。因此,这个元素就从它的兄弟姐妹中分离出来了。当应用它的双向分辨算法的时候,它的容器元素将其视为一个或多个 <code>U+FFFC Object Replacement Character</code>,即像 image 一样。</dd>
 <dt><code>isolate-override</code></dt>
 <dd>这个关键字将 <code>isolate</code> 关键字的隔离行为应用于周围的内容,并将 <code>bidi-override</code> 关键字的覆盖行为应用于内部内容。</dd>
 <dt><code>plaintext</code></dt>
 <dd>这个关键字在计算元素方向的时候,不考虑父元素的双向状态,也不考虑 {{cssxref("direction")}} 属性的值。它是使用 Unicode 双向算法的P2和P3规则计算的。 <br>
 这个值允许按照 Unicode 双向算法显示已经格式化的数据。</dd>
</dl>

<h3 id="正式语法">正式语法</h3>

<pre class="syntaxbox">{{csssyntax}}</pre>

<h2 id="例子">例子</h2>

<h3 id="CSS">CSS</h3>

<pre class="brush: css">.bible-quote {
  direction: rtl;
  unicode-bidi: embed;
}
</pre>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">&lt;div class="bible-quote"&gt;
  A line of text
&lt;/div&gt;
&lt;div&gt;
  Another line of text
&lt;/div&gt;
</pre>

<h3 id="结果">结果</h3>

<p>{{EmbedLiveSample('Examples')}}</p>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">规范</th>
   <th scope="col">状态</th>
   <th scope="col">备注</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('CSS3 Writing Modes', '#unicode-bidi', 'unicode-bidi')}}</td>
   <td>{{Spec2('CSS3 Writing Modes')}}</td>
   <td>添加属性值 <code>plaintext</code><code>isolate</code>,和 <code>isolate-override</code></td>
  </tr>
  <tr>
   <td>{{SpecName('CSS2.1', 'visuren.html#propdef-unicode-bidi', 'unicode-bidi')}}</td>
   <td>{{Spec2('CSS2.1')}}</td>
   <td>初始定义。</td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>



<p>{{Compat("css.properties.unicode-bidi")}}</p>

<h2 id="参见">参见</h2>

<ul>
 <li>{{Cssxref("direction")}}</li>
</ul>