设计字体

一、添加和使用自定义字体

1、传统的字体定义

一般情况下,开发者会使用CSS中的font-family属性来定义字体,通常会根据优先级定义多个,如果用户的计算机上安装了font-family中定义的字体,就会使用指定的字体(优先使用定义时顺序靠前的)。如果没有定义字体或者定义的字体客户端上没有安装,就会显示默认的字体。

2、个性化的字体定义

@font-face属性可以加载服务器端的字体文件,让客户端显示客户端所没有安装的字体。@font-face的基本语法如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>个性化字体定义</title>
    <style>
        @font-face {
            font-family: myFirstFont;
            src: url('Sansation_Light.ttf'), url('Sansation_Light.eot');
            /* IE9 */
        }
        div {
            font-family: myFirstFont;
        }
    </style>
</head>
<body>
    <p><b>注意:</b> Internet Explorer 9 只支持 .eot 格式的字体.</p>
    <div>
        使用 CSS3,网站终于可以使用字体以外的预先选择“合法”字体
    </div>
</body>
</html>

注:一般来说,个性化的字体需要给字体的版权方付费后才能使用。

3、个性化的字体图标

可以引入一些字体图标插件,例如Font Awesome,引入其相关的CSS和字体文件后,在需要的地方使用"<i class=“图标类”></i>"这样的形式即可。
例如:

<p><i class="fa fa-camera-retro"></i>照相机</p>

二、使用反射让文字倒映

反射(box-reflect)属性器时并不能算是文字的属性,它也可以用在图片等其他方面。box-reflect属性目前只有webkit核心浏览器支持,不过由于其效果对于布局没有任何影响,我们使用它并不会造成其他浏览器出现问题。

反射的基本语法

反射的基本语法如下:
.box-reflect:{<方向><间距><渐变效果>}
(1)方向:可以选择above、below、left、right。
(2)间距:表示倒影和元素本身之间的额外距离。
注:padding同样会影响倒影之间的间距。
(3)渐变效果:

- none:无遮罩图像。
- <url>:使用绝对或相对地址指定遮罩图像。
- <linear-gradient>:使用线性渐变创建遮罩图像。
- <radial-gradient>:使用径向(放射性)渐变创建遮罩图像。
- <repeating-linear-gradient>:使用重复的线性渐变创建遮罩图像。
- <repeating-radial-gradient>:使用重复的径向(放射性)渐变创建遮罩图像。

注:倒影不占据空间。
相关示例代码:

box-reflect:below 1px linear-gradient(transparent,transparent 50%,rgba(0,0,0,.3));

linear-gradient共有3个参数:

  • 第1个参数表示线性渐变的方向,top是从上到下、left是从左到右,如果定义成left top,则表示从左上角到右下角,不过这个参数可以省略,默认是top。
  • 第2个和第3个参数分别是起点颜色和终点颜色。还可以在它们之间插入更多的参数,表示多种颜色的渐变。

注:transparent是rgba(0,0,0,0)的别名。

三、字体阴影——光晕、浮雕、投影效果

字体阴影(text-shadow)的基本语法:

text-shadow:h-shadow v-shadow blur color;

test-shadow有3个长度参数,第1个表示水平偏移,第2个表示垂直偏移,第3个表示模糊程度(可选)。颜色值可以写在最后,也可以写在最前。

说明:text-shadow属性向文本添加一个或多个阴影。该属性是逗号分隔的阴影列表,每个阴影有2个或3个长度值和一个可选的颜色值进行规定。省略时的长度为0。

光晕:当偏移量设为0,就可以构建出光晕的效果。
浮雕:垂直偏移量和水平偏移量设置相同的值,就可以构建出凸起的浮雕效果。

四、字体描边

字体描边(text-stroke)属性目前只有webkit核心浏览器支持。
相关的语法:
text-stroke:width color;
width表示描边的宽度,color表示描边的颜色。
由于text-shadow在和滤镜的配合下可以通吃几乎所有的浏览器,故推荐使用该方法。
示例(以下两个方式所实现的效果表现方面类似):

text-stroke:1.0px #000;

text-shadow:#000 1px 0 0,#000 0 1px 0,#000 -1px 0 0,#000 0 -1px 0;

注:IE6~9浏览器可以使用特有的滤镜来实现该效果。

五、字体分栏

CSS3的多列效果,需要用到以下3个属性:

  • column-count: 定义分列的数量。
  • column-gap:定义每一列中间的宽度。
  • column-rule:定义分栏中间的样式。
    column-rule的语法:
column-rule:样式宽度 样式类型 样式颜色;

column-rule-style的可选项:

  • none:没有定义规则。
  • hidden:定义隐藏规则。
  • dotted:定义点状规则。
  • dashed:定义虚线规则。
  • solid:定义实现规则。
  • double:定义双线规则。
  • groove:定义3D grooved规则,该效果取决于宽度和颜色值。
  • ridge:定义3D ridged规则,该效果取决于宽度和颜色值。
  • inset:定义3D inset规则,该效果取决于宽度和颜色值。
  • outset:定义3D outset规则,该效果取决于宽度和颜色值。

注:column-rule中装饰线的宽度不会影响column-gap中定义的宽度。IE10和Opera支持多列属性。Firefox需要前缀-moz-。Chrome和Safari需要前缀-webkit-。IE9以及更早的版本不支持多列属性。

六、处理字体溢出和破字

在文字完整的情况下进行截断处理,并加上一些提示,这种情况下可以使用CSS的text-overflow属性。

.test{
    display: block;
    white-space: nowrap; /*文本不换行*/
    text-overflow: ellipsis; 
    overflow: hidden; /*不允许出现滚动条*/
    width: 100px;
}

text-overflow的参数选项:
clip:修剪文本。
ellipsis:显示省略号来代表被修剪的文本。
string:使用给定的字符串来代表被修剪的文本。

text-overflow属性目前支持所有主流浏览器,为了兼容老版本的Opera浏览器,可以加上Opera浏览器的私有属性-o-text-overflow:ellipsis。

注:老版本的火狐浏览器不支持text-overflow属性。如果追求完美适配的话,可以选择使用Javascript来进行控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值