《CSS揭秘》第五章:字体排印

字体排印

连字符断行

在杂志和书籍中,经常可以见到两端对齐效果。但是在网页设计中,两端对齐效果很少被使用。
原因是会带来糟糕的显示问题。
text-align: justufy;

clipboard.png

在css第三版中,引入了一个属性hyphens:\[none, manual, auto\]
使用hyphens:auto;会让浏览器决定什么时候用换行符。前提是提前设置好网页的HTML标签的lang属性。
在线编辑:dabblet JSFiddle
注:使用chrome浏览器测试均不正常。使用safari浏览器测试正常

clipboard.png

插入换行

考虑如下代码:

<dl>
    <dt>Name:</dt>
    <dd>Versdf</dd>

    <dt>Email:</dt>
    <dd>hfd@fas.me</dd>

    <dt>Location:</dt>
    <dd>Earth</dd>
</dl>

想要的效果如图:

clipboard.png

由于<dt><dd>都是块级元素,所以在不修改结构的前提下,我们可以使用伪元素实现不破坏语义同时实现此目的

dd + dd::before {
    content: ', ';
    font-weight: normal;
    margin-left: -.25em;
}

文本行的斑马条纹

斑马条纹在UI设计中十分常见。我们可以使用:nth-child()/:nth-of-type()伪类来对奇数行和偶数行设置不同的背景,也可以使用不同的div去包裹奇数行和偶数行。现在我们还有一种简单的方法实现这一目的:对元素设置条纹背景

pre { 
    padding: .5em;
    line-height: 1.5;
    background: hsl(20, 50%, 95%);
    background-image: linear-gradient(
                      rgba(120,0,0,.1) 50%, transparent 0);
    background-size: auto 3em;//北京高度为line-height的两倍
    background-origin: content-box;//设置background-position基准以content box为准
    font-family: Consolas, Monaco, monospace;
}

clipboard.png

调整tab宽度

在网页中,通常使用<pre>或者<code>来显示代码。它们tab会被解析成8个字符。

clipboard.png

而我们通常希望将其设置为4或者2。在CSS第三版中,增加了属性tab-size可以用来控制这个属性.

pre {
    tab-size: 2
}

clipboard.png

连字

某些字形与字形相邻时会带来显示上的问题。比如大多数衬线字体中的fi。在css第三版中,引入了font-variant-ligatures属性

font-variant-ligatures: comon-ligatures
                        discretionary-ligatures
                        historical-ligatures

华丽的&符号

通过@font-face规则实现只对&符号应用特殊的字体。感觉方法不是很通用,先不做深入研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值