html - 如何将文本相对于另一个文本的单个字母居中?
问题描述
我有两封信。一个是“M”,字体非常大。另一个是个位数。我希望数字与文本重叠并以 M 为中心,并让它们在任何字体大小下以相同的相对比例保持对齐,就好像它们是一个字符一样。我也不希望数字在以下文本行中占用任何空间。M 也应该能够保持内联,而不会导致换行。这可能吗?
我一直在尝试使用按 em 单位缩放的负边距,但是这两个字母仍然不对齐。
<span style="font-size:200%;"><!-- arbitrary font size for testing to make sure it scales --><span style="margin-right:-1ch;"><span style="font-size:500%; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; user-select: none;">M</span><span style="top:-1px; left:-2em; position:relative; color:blue; display:inline-block;">1</span>
</span></span>test text to make sure the 1 doesn't take up space
解决方案
这是我为您制定的解决方案。您可以检查它是否有效,因为我使用的百分比和em
值都取决于 M 字母的大小。您可以使用它并减小.big-letter
span 的字体大小,它将全部以任意大小对齐。::before
我们通常使用和选择器,而不是使用两个跨度(两个其他标签)来形成一个元素::after
。
如果您想保留修改该字母内该数字的值的机会,我建议使用以下结构:
let test = document.getElementById('test');
let fontSize = window.getComputedStyle(test, null).getPropertyValue('font-size');
let increment = document.getElementById('increment');
increment.addEventListener('click', () => {
fontSize = (parseFloat(fontSize) + 4) + 'px';
test.style.fontSize = fontSize;
});
let decrement = document.getElementById('decrement');
decrement.addEventListener('click', () => {
fontSize = (parseFloat(fontSize) - 4) + 'px';
test.style.fontSize = fontSize;
});
#test {
font-size: 16px;
margin-top: 20px;
}
.big-letter {
font-size: 200%;
margin-right: -0.2em;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
position: relative;
}
.big-letter span {
content: '1';
font-size: 40%;
position: absolute;
bottom: 11%;
left: 40%;
color: blue;
}
#increment {
position: fixed;
top: 10px;
left: 65px;
}
#decrement {
position: fixed;
top: 10px;
left: 155px;
}
<div id="test">
<span class="big-letter">
M
</span>
<span class="big-letter">
M
<span>
2
</span>
</span>
test text to make sure the 1 doesn't take up space
<button id="increment">
increment
</button>
<button id="decrement">
decrement
</button>
</div>
我希望这对你有所帮助。
PS我更新了你可以看到它改变的片段。
推荐阅读
- ios - 如何仅在 indexPath 上使布局无效?
- javascript - 如何在 https 模块上使用 await 在 node.js 中获得响应
- powershell - 向我发送事件查看器错误/警告/失败的电子邮件警报的 PowerShell 脚本
- python - 努力使用 Docker 卷和 Flask 写入文件
- bash - 简单服务器:bash + ncat
- javascript - 如何摆脱 TableBody 中的表格单元格?
- javascript - Webpack CSS Module Error 如何正确加载css
- c++ - 如何传递 matlab::data::TypedArray
作为在 MATLAB mex 文件中构造犰狳矩阵的指针? - unix - 在不同的行上使用带有条件的 awk
- x11 - ffplay over X11 在 Ubuntu 系统上抛出 BadRequest GLX 错误