我需要在一个项目中显示几个字体样本的基线、x 高度和大写高度的规则。我已经处理了基线和 x-height,但是无法获得一个通用的 CSS 规则,该规则将在我应用该规则的任何字体的大写高度处绘制边框。我已经调整了行高,但是字体的字形与其布局框顶部之间的空间因字体而异,因此设置一次对任何字体都不起作用。
这个代码笔示例说明了这个问题: http ://codepen.io/DrSpatula/pen/BAgqG
我需要在一个项目中显示几个字体样本的基线、x 高度和大写高度的规则。我已经处理了基线和 x-height,但是无法获得一个通用的 CSS 规则,该规则将在我应用该规则的任何字体的大写高度处绘制边框。我已经调整了行高,但是字体的字形与其布局框顶部之间的空间因字体而异,因此设置一次对任何字体都不起作用。
这个代码笔示例说明了这个问题: http ://codepen.io/DrSpatula/pen/BAgqG
您现在将 line-height 应用于 p。如果您在此处删除它,并将 line-height 应用于 span.text,并将其设置为 1.55ex 的值,它会正确显示。
所以你的 CSS 将是:
p {
font-size: 72px;
position: relative;
margin: 0;
padding: 0;
}
p span {
margin: 0;
padding: 0;
display: inline-block;
}
.sans {
font-family: sans-serif;
}
.text {
border-top: 1px solid blue;
line-height: 1.55ex;
}
.rule {
height: 1ex;
border-top: 1px dotted red;
border-bottom: 1px solid blue;
position: relative;
left: -7.25em;
width: 7.75em;
top: 1px;
}
也许我可以帮忙。我做了一个小小提琴给你看。( http://jsfiddle.net/dgxJh/1/ )
但是,我担心使用此解决方案,您将不得不为每种字体大小和每种字体重新定位粉红色线的跨度。但本质上,您将使用以下代码在文本上放置一个跨度:
span{
height: 1px;
width: 100%;
background: pink;
display: block;
position: absolute;
top: 0.6em;
}
不要忘记将容器相对定位
它很脏,但是您是否尝试过将一个像素的 .gif 作为重复背景,然后您可以设置它相对于字体的位置?