非常教程

CSS参考手册

Miscellaneous Level 2

使用价值 | used value

CSS属性的使用值是所有计算完成后该属性的最终值。

用户代理完成计算后,每个CSS属性都有一个使用的值。使用的维度值(例如widthline-height)以像素为单位。速记性质(例如,背景)的使用的值是与它们的组分性质的(例如,一致的background-colordisplay)并与positionfloat

对于某些属性,JavaScript可以通过该window.getComputedStyle方法检索使用的值。

细节

计算任何CSS属性的最终值有四个步骤。首先,指定的值是级联(选择最具体的更改属性的样式表规则),继承(如果属性是可继承的,则使用与父项相同的计算值)或使用默认值。然后,所计算的值是根据本说明书中计算出的(例如,spanposition: absolute将有其计算display改为block)。然后,计算布局(auto相对于父项的尺寸或百分比用像素值替换),结果就是使用的值

最后,根据当地环境的局限性进行改造,其结果是具有实际价值。实际值是应用任何近似值后的使用值。例如,用户代理可能只能渲染具有整数像素宽度的边框,因此必须近似计算出的宽度,否则用户代理可能会被迫仅使用黑色和白色阴影,而不是全色。这些步骤是在内部计算的。

JavaScript只能读取最终使用的值window.getComputedStyle。此方法可能会返回计算值,具体取决于属性。它返回的值通常被称为resolved values)。

在调整%29上计算和显示三个元素%28更新的使用宽度:

HTML

<div id="no-width">
  <p>No explicit width.</p>
  <p class="show-used-width">..</p>

  <div id="width-50">
    <p>Explicit width: 50%.</p>
    <p class="show-used-width">..</p>

    <div id="width-inherit">
      <p>Explicit width: inherit.</p>
      <p class="show-used-width">..</p>
    </div>
  </div>
</div>

CSS

#no-width {
  width: auto;
}

#width-50 {
  width: 50%;
}

#width-inherit {
  width: inherit;
}

/* Make results easier to see: */
div {
  border: 1px solid red;
  padding: 8px;
}

JavaScript

function updateUsedWidth(id) {
  var div = document.getElementById(id);
  var par = document.querySelector(`#${id} .show-used-width`);
  var wid = window.getComputedStyle(div)["width"];
  par.textContent = `Used width: ${wid}.`;
}

function updateAllUsedWidths() {
  updateUsedWidth("no-width");
  updateUsedWidth("width-50");
  updateUsedWidth("width-inherit");
}

updateAllUsedWidths();
window.addEventListener('resize', updateAllUsedWidths);

结果

与计算值之差

CSS 2.0只定义了计算值作为属性计算的最后一步。然后,CSS 2.1引入了使用价值的明确定义。然后,元素可以显式继承父元素的宽度/高度,其计算值是一个百分比。对于不依赖于布局的CSS属性(例如,display,font-size,line-height),计算值和使用值是相同的。这些是取决于布局的CSS 2.1属性,因此它们具有不同的计算值和使用值:(取自CSS 2.1更改:指定值,计算值和实际值):

  • 背景位置
  • 下,左,右,上
  • 高度,宽度
  • 边缘-底部,边缘-左,边缘-右,边缘-顶部,
  • 最小高度,最小宽度
  • 填充-底部,填充-左,填充-右,填充-顶部
  • 文本缩进

规范

Specification

Status

Comment

CSS Level 2 (Revision 1)The definition of 'used value' in that specification.

Recommendation

Initial definition.

CSS

层叠样式表( Cascading Style Sheets )是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS目录

1.动画和转换 | Animations & Transitions
2.背景和边框 | Backgrounds & Borders
3.基本框模型 | Basic Box Model
4.基本用户界面 | Basic User Interface
5.框对齐 | Box Alignment
6. 级联和继承 | Cascading & Inheritance
7.颜色 | Color
8. 合成与混合 | Compositing & Blending
9.条件和规则 | Conditional Rules
10.计数器样式 | Counter Styles
11.设备适配 | Device Adaptation
12.扩展 | Extensions
13.滤镜效果 | Filter Effects
14.灵活的框布局 | Flexible Box Layout
15.字体 | Fonts
16.片段模块 | Fragmentation
17.全屏 API | Fullscreen API
18. 生成内容 | Generated Content
19.网格布局 | Grid Layout
20.图像值 | Image Values
21.初始线格局 | Inline Layout
22.列表和计数器 | Lists & Counters
23.逻辑属性 | Logical Properties
24.面具 | Masking
25.媒体查询 | Media Queries
26.杂项 | Miscellaneous
27.Miscellaneous Level 1
28.Miscellaneous Level 2
29.运动路径 | Motion Path
30. 多列布局 | Multi-column Layout
31.命名空间 | Namespaces
32.项目模型 | Object Model View
33.网页媒体 | Paged Media
34.定位布局 | Positioned Layout
35.伪元素 | Pseudo-
36.节奏大小 | Rhythmic Sizing
37. Ruby布局 | Ruby Layout
38.可缩放矢量图形 | Scalable Vector Graphics
39.滚动快照 | Scroll Snap
40.选择 | Selectors
41.形状 | Shapes
42.文本 | Text
43.文字装饰 | Text Decoration
44.变换 | Transforms
45.值和单位 | Values & Units
46.变量 | Variables
47.写入模型 | Writing Modes
48.CSS 教程
49.CSS 创建
50.CSS Id 和 Class选择器
51.CSS 简介
52.CSS 盒子模型
53.CSS Table(表格)
54.CSS 列表样式(ul)
55.CSS 链接(link)
56.CSS Fonts(字体)
57.CSS Text(文本)
58.CSS Backgrounds(背景)
59.CSS Display(显示) 与 Visibility(可见性)
60.CSS 尺寸 (Dimension)
61.CSS 分组和嵌套
62.CSS 轮廓(outline)属性
63.CSS Border(边框)
64.CSS 图像透明/不透明
65.CSS 导航栏
66.CSS 伪元素
67.CSS 伪类
68.CSS Float(浮动)
69.CSS Position(定位)
70.CSS 总结
71.CSS 属性选择器
72.CSS 媒体类型
73.CSS 图像拼合技术
74.CSS 实例
75.CSS 组合选择符
76.响应式 Web 设计 – 框架
77.响应式 Web 设计 – 视频(Video)
78.CSS 提示工具(Tooltip)
79.CSS 布局 Overflow
80.CSS 计数器
81.CSS 表单