aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/css/factory_functions/index.html
blob: 8f4eea206a3d32a66f8a7308fd8c8fceb3519a4e (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
---
title: CSS数字工厂函数
slug: Web/API/CSS/factory_functions
translation_of: Web/API/CSS/factory_functions
---
<p>{{SeeCompatTable}}<span class="seoSummary"><strong>CSS numeric factory functions</strong></span>,例如 <code>CSS.em()</code><code>CSS.turn()</code>,是一组使用传入的数字参数以及所指定的单位(单位名称即所用方法名称)来返回 <span class="seoSummary"><a href="/en-US/docs/Web/API/CSSUnitValue">CSSUnitValues</a></span> 的方法。这些函数创建新的数字值,与使用 {{domxref('CSSUnitValue.CSSUnitValue()')}} 构造函数相比,没有后者那么冗长。</p>

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

<pre class="syntaxbox notranslate">CSS.number(<var>number</var>);
CSS.percent(<var>number</var>);

// &lt;length&gt;
CSS.em(<var>number</var>);
CSS.ex(<var>number</var>);
CSS.ch(<var>number</var>);
CSS.ic(<var>number</var>);
CSS.rem(<var>number</var>);
CSS.lh(<var>number</var>);
CSS.rlh(<var>number</var>);
CSS.vw(<var>number</var>);
CSS.vh(<var>number</var>);
CSS.vi(<var>number</var>);
CSS.vb(<var>number</var>);
CSS.vmin(<var>number</var>);
CSS.vmax(<var>number</var>);
CSS.cm(<var>number</var>);
CSS.mm(<var>number</var>);
CSS.Q(<var>number</var>);
CSS.in(<var>number</var>);
CSS.pt(<var>number</var>);
CSS.pc(<var>number</var>);
CSS.px(<var>number</var>);

// &lt;angle&gt;
CSS.deg(<var>number</var>);
CSS.grad(<var>number</var>);
CSS.rad(<var>number</var>);
CSS.turn(<var>number</var>);

// &lt;time&gt;
CSS.s(<var>number</var>);
CSS.ms(<var>number</var>);

// &lt;frequency&gt;
CSS.Hz(<var>number</var>);
CSS.kHz(<var>number</var>);

// &lt;resolution&gt;
CSS.dpi(<var>number</var>);
CSS.dpcm(<var>number</var>);
CSS.dppx(<var>number</var>);

// &lt;flex&gt;
CSS.fr(<var>number</var>);</pre>

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

<p>我们使用 <code>CSS.vmax()</code> 数字工厂函数来创建一个 {{domxref('CSSUnitValue')}}</p>

<pre class="brush: js notranslate">let height = CSS.vmax(50);

console.log( height );       // CSSUnitValue {value: 50, unit: "vmax"}
console.log( height.value )  // 50
console.log( height.unit )   // vmax</pre>

<p>在这个例子中,我们给元素设定 margin 属性值,使用 <code>CSS.px()</code> 函数:</p>

<pre class="brush: js notranslate">myElement.attributeStyleMap.set('margin', CSS.px(40));
let currentMargin = myElement.attributeStyleMap.get('margin');
console.log(currentMargin.value, currentMargin.unit); // 40, 'px'</pre>

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

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('CSSOM', '#numeric-factory', 'Numeric Factory Functions')}}</td>
   <td>{{Spec2('CSSOM')}}</td>
   <td>Initial definition</td>
  </tr>
 </tbody>
</table>

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



<p>{{Compat("api.CSS")}}</p>

<h2 id="另请参阅">另请参阅</h2>

<ul>
 <li>{{domxref('CSSUnitValue.CSSUnitValue()')}}</li>
</ul>