CSS基础知识储备(文字处理)

2020-12-04  本文已影响0人  蜡笔小青新

一、 css字体属性

image

浏览器支持情况:

image

二 、 属性详细说明

1、font

font 简写属性在一个声明中设置所有字体属性。

注释:此属性也有第六个值:"line-height",可设置行间距。

说明

可以按顺序设置如下属性:

2、font-style:规定字体样式

3、font-variant :规定字体异体

4、font-weight:规定字体粗细

5、font-size:规定字体尺寸

6 、line-height:规定字体行高

7、font-family:规定字体系列

8、word-spacing:增加或减少单词间的空白(即字间隔)。

9、word-break:规定自动换行的处理方法

10、letter-spacing:增加或减少字符间的空白(字符间距)

11、white-space:指定元素内的空白怎样处理

8、其他

三、font-size相关内容

1、font-size和line-height

image

4种box

要说的4种盒子分别是inline box、line box、content area、containing box

image

2、font-size和vertical-align

(1)vertical-align可能的值:

vertical-align 属性,它也是计算 line-box 高度的重要因素之一。我们甚至可以说 vertical-align 是内联格式化上下文(IFC)中最重要的属性。

(2)字体的相关高度计算

这意味着 Catamaran 字体占据了 1100 + 540 个相对单位,尽管它的 em-square 只有 1000 个相对单位,所以当我们设置 font-size:100px 时,这个字体里的文字高度是 164px。这个计算出来的高度决定了 HTML 元素的 content-area(内容区域)你可以认为 content-area 就是 background 作用的区域。

(3)line-box计算

(4)vertical-align

它的默认值是 baseline。还记得字体度量里的 ascender 和 descender 吗?这两个值决定了 baseline 的位置。很少有字体的 ascender 和 descender 的比例是一比一的,所以我们经常看到一些意想不到的现象。

<p>
    <span>Ba</span>
    <span>Ba</span>
</p>

p {
    font-family: Catamaran;
    font-size: 100px;
    line-height: 200px;
}

span:last-child {
    font-size: 50px;
}

我们会发现一个非常奇怪的现象,line-box 的高度变高了!如下图所示。提示你一下,line-box 的高度是从子元素的最高点到最低点。


image

用 baseline 来对齐令人费解,如果我们用 vertical-align: middle,middle 的意思是「用父元素 baseline 高度加上父元素中 x-height 的一半的高度来对齐当前元素的垂直方向的中点」。baseline 所处的高度跟字体有关,x-height 的高度也跟字体有关,所以 middle 对齐也不靠谱。更糟糕的是,一般来说,middle 根本就不是居中对齐!内联元素的对齐受太多因素影响,因此不可能用 CSS 实现。

vertical-align 的其他 4 个值

image

不过你依然要小心,大部分情况下,对齐的是 line-height ,也就是一个不可见的高度。看看下面这个用 vertical-align:top 的例子:


image

3、font-size和ex、em、rem

image

任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。*

px特点

  1. IE无法调整那些使用px作为单位的字体大小;
  2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;
  3. Firefox能够调整px和em。

em特点

  1. em的值并不是固定的;
  2. em会继承父级元素的字体大小。

rem特点

rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。

四、font face及图标字体

上一篇 下一篇

猜你喜欢

热点阅读