【问题标题】:The font shorthand property is not working, but longhand properties do. Why?字体速记属性不起作用,但速记属性起作用。为什么?
【发布时间】:2017-02-01 23:29:52
【问题描述】:

对于这么简单的问题,我深表歉意,但我已经有好几年没有真正不得不玩 CSS 了,经过一整天的测试,这让我无法理解。感谢您的帮助。

问题是关于字体特征继承的简写与简写 CSS 声明。经过大量测试,我无法让 Roboto (100, 300) 真正工作。无论 div 是否嵌套,一个字体粗细总是覆盖另一个。当用速记编写时,Open Sans 也失败了,但使用速记对单个和嵌套 div 效果很好。这是怎么回事? (将 font-family 和 font-size 结合起来,例如:“font: 32px san-serif;”似乎也受到尊重)。

这种 CSS 格式适用于单个和嵌套的 div,唯一的变化是 Formal/Longhand 字体、粗细和颜色。

.div-1 {
    font: 32px 'Open Sans', sans-serif;
    color: #333;
    font-weight: 300; 
    width: 800px;
    padding: 10px;
    margin: 10px;
    border: 1px solid #333;serif
}

简写 CSS 格式失败,字体声明中包括粗细或颜色

.div-1 {
    font: 32px #333 300 'Open Sans', sans-serif;
    width: 800px;
    padding: 10px;
    margin: 10px;
    border: 1px solid #333;serif
}

HTML 代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">

<title></title>

<link href='https://fonts.googleapis.com/css?family=Open+Sans|Roboto' rel='stylesheet'>
<link rel='stylesheet' type='text/css' href="../test.css">

</head>
<body>

<div class="div-1">This is Div-1 text</div>
<div class="div-2">This is Div-2 text</div>
<div class="div-3">This is Div-3 text</div>

<div class="div-3">This is Div-3 text
<div class="div-1">This is Div-1 text</div>
<div class="div-2">This is Div-2 text</div>
</div>

</body>
</html>

【问题讨论】:

  • 感谢大家的快速反应——救了我的培根。看来我在编码中犯了两个错误。下面buidingsramen的回应是正确的,让我走到了一半。另一个问题似乎是我必须在谷歌字体请求中询问特定的字体粗细。我问了 Roboto,假设我会得到全系列的重量 - 没用。在 HTML 中包含特定的权重变体(错过了一个逗号并且没有抓住它,这对原因没有帮助!)在删除字体颜色并将权重放在首位的额外帮助下完成了这项工作。

标签: html css fonts


【解决方案1】:

这里有两个不同的问题:

  • 颜色不是font 速记的一部分。
  • 字体粗细必须在字体大小之前。

如果你解决了这个问题应该可以工作。

【讨论】:

    【解决方案2】:

    您没有使用正确的 font 速记语法。请参阅mdn documentation 以获取格式正确的速记规则示例。

    .div-1 {
        font: bolder 32px 'Open Sans', sans-serif; 
        color: #333;
        width: 800px;
        padding: 10px;
        margin: 10px;
        border: 1px solid #333;
    }
    <div class="div-1">This is Div-1 text</div>
    <div class="div-2">This is Div-2 text</div>
    <div class="div-3">This is Div-3 text</div>
    
    <div class="div-3">This is Div-3 text</div>
    <div class="div-1">This is Div-1 text</div>
    <div class="div-2">This is Div-2 text</div>

    【讨论】:

      【解决方案3】:

      这些是font 速记可接受的属性:

      (注意color不在列表中。)

      • font-style
      • font-variant
      • font-weight
      • font-size
      • line-height
      • font-family

      以下是允许的属性顺序:

      首先(不分先后):

      • font-style 和/或 font-variant 和/或 font-weight 或什么都没有

      第二:

      • font-size

      第三:

      • line-height 或者什么都没有

      第四:

      • font-family

      第五:

      • 其他不太受欢迎的属性(请参阅下面的链接)

      https://www.w3.org/TR/CSS22/fonts.html#font-shorthand

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 2019-01-13
        • 1970-01-01
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 2019-02-19
        相关资源
        最近更新 更多