【发布时间】:2021-11-26 22:59:39
【问题描述】:
Dancing Script 是一种看起来(至少对我而言)本质上小于 Helvetica、Arial、sans-serif 的字体:
* {
padding: 0;
margin: 0;
}
div > div {
display: flex;
flex-direction: horizontal;
align-items: flex-end;
}
body {
--main-font: Helvetica, Arial, sans-serif;
--handwritten-font: 'Dancing Script', cursive;
font-family: var(--main-font);
}
.handwritten {
font-family: var(--handwritten-font);
}
<!DOCTYPE html>
<!-- https://www.webmasterpoint.org/programmazione/html5/guida-html5/struttura-sito-header-nav-section-article-aside-footer-nuovo-doctype.html -->
<html lang="en">
<head>
<style>
@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&display=swap');
</style>
</head>
<body>
<div class="outer">
<div>
<h1>Ciao</h1>
<h1 class="handwritten">Ciao</h1>
</div>
<div>
<h2>Ciao</h2>
<h2 class="handwritten">Ciao</h2>
</div>
<div>
<h3>Ciao</h3>
<h3 class="handwritten">Ciao</h3>
</div>
<div>
<h4>Ciao</h4>
<h4 class="handwritten">Ciao</h4>
</div>
<div>
<h5>Ciao</h5>
<h5 class="handwritten">Ciao</h5>
</div>
<div>
<h6>Ciao</h6>
<h6 class="handwritten">Ciao</h6>
</div>
</div>
</body>
</html>
因此,举个例子,我使用h2标签和字体Helvetica, Arial, sans-serif,我想使用h1大小的字体Dancing Script, cursive,所以我会采用这样的规则:
/* browser's defaults */
h1 {
font-size: 2em
}
h2 {
font-size: 1.5em
}
/* ... and so on */
/* my styles */
h1.handwritten-font {
/* increas font-size by the 2em/1.5em ratio */;
}
h2.handwritten-font {
/* increas font-size by the 2em/1.5em ratio */;
}
/* ... and so on */
但显然 font-size: calc(2em/1.5em); 规则不是我们所需要的:
* {
margin: 0;
padding: 0;
}
body {
--main-font: Helvetica, Arial, sans-serif;
--handwritten-font: 'Dancing Script', cursive;
font-family: var(--main-font);
}
.handwritten {
font-family: var(--handwritten-font);
}
div > div {
display: flex;
align-items: flex-end;
}
h1 {
font-size: 2em
}
h2 {
font-size: 1.5em
}
/* these have no effect */
h1.handwritten {
font-size: calc(2em/1.5em);
}
h2.handwritten {
font-size: calc(2em/1.5em);
}
<!DOCTYPE html>
<!-- https://www.webmasterpoint.org/programmazione/html5/guida-html5/struttura-sito-header-nav-section-article-aside-footer-nuovo-doctype.html -->
<html lang="en">
<head>
<style>
@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&display=swap');
</style>
</head>
<body>
<div class="outer">
<div>
<h1>Ciao</h1>
<h1 class="handwritten">Ciao</h1>
</div>
<div>
<h2>Ciao</h2>
<h2 class="handwritten">Ciao</h2>
</div>
<div>
<h3>Ciao</h3>
<h3 class="handwritten">Ciao</h3>
</div>
<div>
<h4>Ciao</h4>
<h4 class="handwritten">Ciao</h4>
</div>
<div>
<h5>Ciao</h5>
<h5 class="handwritten">Ciao</h5>
</div>
<div>
<h6>Ciao</h6>
<h6 class="handwritten">Ciao</h6>
</div>
</div>
</body>
</html>
【问题讨论】:
-
我怀疑我可能没有完全理解,因为我不明白为什么答案不是设置 font-size: calc(2em* 2 / 1.5) [只是拼出来-那里如果不涉及变量,当然不需要让 CSS 来做算术]。
-
font-size-adjust属性可能会有所帮助。 -
我认为 font-size-adjust 在这里不相关(尽管我可能是错的)。你能说说为什么 font-size: calc(2em * 2 / 1.5) 不合适吗?
-
@AHaworth,如果我这样做
h1.handwritten { font-size: calc(2em * 2/1.5); }、h2.handwritten { font-size: calc(2em * 2/1.5); }等等,我将得到相同font-size的所有标题,而我希望每个hN.handwritten都有一个font-size,它是calc(2/1.5)乘以对应hN的font-size。