zoukankan      html  css  js  c++  java
  • IfcTextStyleFontModel

    根据W3C对级联样式表的定义:

    设置字体属性将是样式表最常见的用途之一。但是,目前还没有一个定义良好且普遍接受的分类法来对字体进行分类,适用于一个字体系列的术语可能不适用于其他字体系列。例如,“斜体”通常用于标记倾斜文本,但倾斜文本也可以标记为倾斜、倾斜、倾斜、草书或Kursiv。因此,将典型字体选择属性映射到特定字体并不是一个简单的问题。

    字体匹配

    因为没有公认的、通用的字体属性分类法,所以必须小心地将属性与字体面进行匹配。属性按定义良好的顺序进行匹配,以确保此匹配过程的结果在用户代理之间尽可能一致(假设每个代理都有相同的字体库)。

    ①用户代理制作(或访问)一个数据库,其中包含UA知道的所有字体的相关CSS1属性。UA可能知道某个字体,因为它已在本地安装或以前已通过web下载。如果有两种字体具有完全相同的属性,则忽略其中一种。

    ②对于给定的元素和该元素中的每个字符,UA组装适用于该元素的字体属性。UA使用完整的属性集,使用“字体系列”属性来选择一个暂定字体系列。其余的属性将根据每个属性描述的匹配标准针对族进行测试。如果所有剩余属性都匹配,那么这就是给定元素的匹配字体。

    ③如果第2步处理的“字体系列”中没有匹配的字体,并且字体集中有下一个可选的“字体系列”,则使用下一个可选的“字体系列”重复第2步。

    ④如果有一个匹配的字体面,但它不包含当前字符的字形,并且如果字体集中有下一个可选的“字体系列”,则使用下一个可选的“字体系列”重复步骤2。

    ⑤如果在2中选择的系列中没有字体,则使用依赖于UA的默认“字体系列”,并重复步骤2,使用可在默认字体中获得的最佳匹配。

    (可以优化上述算法,以避免重新访问每个字符的CSS1属性。)

    上面(2)中的每个属性匹配规则如下:

    ①首先尝试“字体样式”如果UA的字体数据库中有一张标有CSS关键字“italic”(首选)或“oblique”的人脸,则“italic”将得到满足。否则,值必须完全匹配,否则字体样式将失败。

    ②下一步将尝试使用“字体变体”“normal”匹配未标记为“small caps”的字体;“small caps”匹配

    (1)标记为“small caps”的字体,

    (2)合成小大写的字体,

    (3)将所有小写字母替换为大写字母的字体。小型大写字体可以通过电子缩放普通字体的大写字母来合成。

    ④“font-weight”下一步匹配,它将永远不会失败。(请参阅下面的“字体粗细”。)

    ⑤“字体大小”必须在UA相关公差范围内匹配。(通常,可缩放字体的大小四舍五入到最接近的整像素,而位图字体的公差可能高达20%。)进一步的计算是基于使用的“字体大小”值,而不是指定的值。

    继承的名称属性用于定义字体名称,特别是在没有提供字体系列(列表)的情况下。

    注:对应的CSS1定义是字体属性('Font-family'、'Font-style'、'Font-variant'、'Font-weight')。

    IFC2x3中增加的新实体。

    Formal Propositions

    RuleDescription
    MeasureOfFontSize

    尺寸应该用正的长度来表示。

     

    Attribute inheritance

    #AttributeTypeCardinalityDescriptionC
    IfcPresentationItem
    IfcPreDefinedItem
    1 Name IfcLabel [1:1]

    用来标识预定义项的字符串。字符串的允许值在子类型级别声明。

    X
    IfcPreDefinedTextFont
    IfcTextStyleFontModel
    2 FontFamily IfcTextFontName L[1:?]

    该值是按优先级排列的字体系列名称和/或通用系列名称列表。第一个列表项具有最高优先级,如果此字体失败,则使用下一个列表项。最后一个列表项(如果可能)应该是泛型族。

    X
    3 FontStyle IfcFontStyle [0:1]

    font style属性在字体系列中的普通(有时称为“罗马”或“直立”)、斜体和斜体之间进行选择。

    X
    4 FontVariant IfcFontVariant [0:1]

    font variant属性在普通大写和小写之间进行选择。

    注意,它的引入是为了以后能够完全支持CSS1。

    X
    5 FontWeight IfcFontWeight [0:1]

    font weight属性选择字体的权重。

    注:除了“normal”和“bold”之外,还引入了其他值,以便以后完全符合CSS1支持。

    X
    6 FontSize IfcSizeSelect [1:1]

    字体大小提供文本字体的大小或高度。

    注意:允许使用以下值,<IfcLengthMeasure,对于正值,长度单位在IfcUnitAssignment处全局定义。

    X
     

    EXPRESS Specification

    ENTITY IfcTextStyleFontModel
     SUBTYPE OF (IfcPreDefinedTextFont);
      FontFamily : LIST [1:?] OF IfcTextFontName;
      FontStyle : OPTIONAL IfcFontStyle;
      FontVariant : OPTIONAL IfcFontVariant;
      FontWeight : OPTIONAL IfcFontWeight;
      FontSize : IfcSizeSelect;
     WHERE
      MeasureOfFontSize : ('IFCMEASURERESOURCE.IFCLENGTHMEASURE' IN TYPEOF(SELF.FontSize)) AND (SELF.FontSize > 0.);
    END_ENTITY;
    QQ 3087438119
  • 相关阅读:
    使用koa+mongodb构建的仿知乎接口(二)
    使用koa+mongodb构建的仿知乎接口(一)
    flask学习笔记
    后端遇到一些问题
    前端项目一些细节总结
    python基础学习
    vue本地运行项目使用iframe的跨域问题
    hover状态下改变图片颜色的方式 悬停图片切换;css变量;悬停svg图片改变颜色;VUE
    深拷贝
    git初使用
  • 原文地址:https://www.cnblogs.com/herd/p/14221539.html
Copyright © 2011-2022 走看看