CSS font-stretch — вузьке чи широке накреслення
Властивість font-stretch встановлює вузьке, нормальне або широке накреслення шрифту, що дозволяє ущільнювати або розширювати текст.
Важливо відзначити, що властивість font-stretch насправді не розтягує шрифт. Вона просто вибирає відповідне обличчя від сімейства шрифтів. Коли обличчя не існує для заданої ширини, нормальне або згущене значення вказують на більш вузьке обличчя, в іншому випадку - більш широке обличчя. І навпаки, розширені значення вказують на більш широке обличчя, інакше вузьке обличчя.
На прикладі вище - це дуже добре видно:для першого рядка застосований шрифт "Roboto", а для другого - "Roboto Condensed", який відразу містить більш вузькі "обличчя".
В цьому контексті "обличчя" - вигляд певного гліфа (символу).
автор: Svitlana
Загальний опис
автор: NagarD
- Порада
-
Браузери застосовують властивість
автор: Svitlanafont-stretchне всіх шрифтів, тому ущільнення або розширення тексту може не працювати з деякими популярними і поширеними гарнітурами шрифтів. Також деякі значення можуть не давати видимого результату. - Нотатка
-
Зверніть увагу, що властивість
автор: Svitlanafont-stretchспочатку було введено в CSS2, видалено в CSS2.1, але потім знову введено в CSS3. - Нотатка
-
CSS2 також визначає значення
автор: Svitlanawiderinarrower, але наразі їх немає в специфікації CSS3. - Нотатка
-
Дуже мало веб-шрифтів використовують мають відразу обличчя для нормального та вузького чи широкого відображення гліфів, тому доцільність використання цієї властивості ставиться під сумнів.
автор: Svitlana
Синтаксис
font-stretch: ultra-condensed|extra-condensed|condensed|semi-condensed|normal|semi-expanded|expanded|extra-expanded|ultra-expanded|initial|inherit;
Властивість font-stretch може отримувати 11 значень:
-
ultra-condensed -
Робить літери максимально вузькими
автор: Svitlana -
extra-condensed -
Робить літери дуже вузькими
автор: Svitlana -
condensed -
Робить літери вузькими
автор: Svitlana -
semi-condensed -
Робить літери трохи вузькими
автор: Svitlana -
normal -
Літери як зазвичай
автор: Svitlana -
semi-expanded -
Робить літери трохи широкими
автор: Svitlana -
expanded -
Робить літери широкими
автор: Svitlana -
extra-expanded -
Робить літери дуже широкими
автор: Svitlana -
ultra-expanded -
Робить літери максимально широкими
автор: Svitlana -
initial -
Модифікує всі рядкові символи як заголовні зменшеного розміру
автор: Svitlana -
inherit -
Вказує на спадковість властивостей від свого батьківського елемента
автор: Svitlana
| Значення без задання: | normal |
|---|---|
| Наслідує: | Так |
| Анімується: | Так |
| JavaScript синтаксис: | object.style.fontStretch="expanded" |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 60 | 9 | 11 | 47 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 60 | 60 | 9 | 11 |
Приклади
+ запропонувати свій приклад у пісочниці
Georgia не має вузького накреслення, тому другий рядок такої самої ширини, як перший — font-stretch не має чого вибрати. Геометрично стискає лише transform: scaleX(), як у третьому рядку.
HTML
<p class="base">Рядок для порівняння ширини</p>
<p class="stretch">Рядок для порівняння ширини — font-stretch: condensed</p>
<p class="scale">Рядок для порівняння ширини — transform: scaleX(0.75)</p>
CSS
p {
display: inline-block;
margin: 0 0 10px;
padding: 2px 4px;
background: #e6eefb;
font: 20px Georgia, serif;
}
.stretch {
font-stretch: condensed;
}
.scale {
transform: scaleX(0.75);
transform-origin: left center;
}
HTML
<main role="main">
<p id="changingText" class="fn-text">Variable Font Demo</p>
<aside class="fn-horizontal">
<label for="fontStretch">font-stretch:</label>
<span id="fontStretchOutput"></span>
<div class="rangecontainer">
<input type="range" id="fontStretch" name="fontStretch" min="75" max="125">
</div>
</aside>
</main>
CSS
body {
font-size: 20px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-family: "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
p {
--fontStretch: 100%;
font-stretch: var(--fontStretch);
}
main {
height: 200px;
width: 100%;
display: flex;
flex-direction: column;
padding: 1em;
box-sizing: border-box;
}
aside {
margin: 0;
}
input {
background: #642240;
}
.rangecontainer {
width: 100%;
line-height: 0;
}
.rangecontainer input {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
width: 100%;
height: 1.5em;
background-color: #642240;
opacity: 0.8;
transition: opacity 0.2s;
outline: transparent;
border-radius: 0.75em;
box-shadow: inset 0 2px 4px rgba(62, 21, 40, 0.84);
}
.rangecontainer input:hover {
opacity: 1;
}
.rangecontainer input::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 2em;
height: 2em;
background: #fff9f1;
cursor: pointer;
border-radius: 1em;
box-shadow: 0 1px 4px #3e1528;
}
.rangecontainer input::-moz-range-thumb {
width: 2em;
height: 2em;
background: #fff9f1;
cursor: pointer;
border-radius: 1em;
box-shadow: 0 1px 4px #3e1528;
}
.fn-text {
margin: auto;
color: #6b505a;
}
.fn-horizontal {
margin: 0 auto 1.5em;
max-width: 76.25em;
display: flex;
align-items: center;
width: 100%;
}
.fn-horizontal label,
.fn-horizontal span {
color: #6b213c;
white-space: nowrap;
margin-right: 10px;
}
.fn-horizontal span {
margin-right: 1em;
font-weight: 700;
}
JS
function printValue(slider, output, clay, varName, suffix) {
const input = document.getElementById(slider);
const print = document.getElementById(output);
const result = document.getElementById(clay);
print.innerHTML = input.value;
input.oninput = function () {
print.innerHTML = this.value;
result.style.setProperty(varName, this.value + suffix);
};
}
printValue("fontStretch", "fontStretchOutput", "changingText", "--fontStretch", "%");
//# sourceURL=pen.js
Приклад використання
HTML
<p>Доброго вечора</p>
<p class="condensed">Доброго вечора</p>
CSS
@font-face {
font-family: Demo;
font-stretch: condensed;
src: local("Arial Narrow"), local("Liberation Sans Narrow"),
local("Nimbus Sans Narrow"), local("Helvetica Neue Condensed"),
local("DejaVu Sans Condensed");
}
@font-face {
font-family: Demo;
font-stretch: normal;
src: local("Arial"), local("Helvetica"), local("Liberation Sans"),
local("DejaVu Sans");
}
body {
font-family: Demo, sans-serif;
font-size: 8vw;
}
.condensed {
font-stretch: condensed;
}
Коментарі
Коментарів ще немає — будьте першим!