首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用价值 | 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

代码语言:javascript
复制
<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

代码语言:javascript
复制
#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

代码语言: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.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com