CSS中的font-size属性使用教程

   基本语法结构:

  Font-size+字体大小数值+单位

  单词:font-size

  语法:font-size : absolute-size | relative-size | length

  取值:xx-small | x-small | small | medium | large | x-large | xx-large

  xx-small:最小

  x-small:较小

  small:小

  medium:正常(默认值),根据字体进行调整

  large:大

  x-large:较大

  xx-large:最大

  也可取具体长度单位值

  可用的单位

  有几种不同的方法可以在CSS中声明字体大小。总的来说,这些单位分为两类——相对和绝对。 绝对单位(大多)是固定的,并且涉及到一些物理的测量。他们一旦被声明,将不能通过改变其他元素的字体大小来改变他的大小。

  相对单位没有一个客观的测量。相反,它们的实际大小是通过父元素的尺寸来确定的。这意味着他们的大小可以通过改变相关元素的大小来改变。

  下面是一些单位的概要描述——


  在这里你可以看到单位的详细列表,但我将专注于我认为最常用的单位——px, pt, %, em, rem, 和 vw。

  他们有什么区别?

  这些单位之间的差异可能很难通过概念理解,所以最好的方式就是通过例子来展示他们之间的差异。

  例子1——默认设置

  在一个空白的HTML文档内,你没有任何关于字体大小的声明而只使用默认设置。在大多数浏览器上为html和body标签的默认字体大小为100%。这等同于如下算式——

  CSS Code复制内容到剪贴板

  100% = 1em = 1rem = 16px = 12pt

  这意味着如果你为一个

标签设置字体大小为100%,另一个

为16px,他们将以相同的大小呈现在屏幕上。你可以在这里看到这个证明——


  例子2——绝对单位VS相对单位

  绝对和相对单位之间的差异可以通过改变html的字体大小来突出显示。如果我们设置html{font-size:200%},这将只影响

用相对单位设置的字体的大小。

  这是使用相对单位的一个重要优势。有了如此轻易缩放字体大小的功能,你可以通过只改变html字体大小来创建一个真正具有响应性的网站。这里有一个很好的例子

  例子3——REM VS EM(和%)

  em(和%)单位是通过计算父元素的字体大小来显示当前的字体大小。比如——

  CSS Code复制内容到剪贴板

  html {

  font-size: 100% /* =16px */

  }

  body {

  font-size: 2em; /* =32px */

  }

  p {

  font-size: 1em; /* =32px */

  /* font-size: 0.5em; =16px */

  }

  因为p继承body,body继承html,所以我们可以计算出以em和%设置的段落字体大小变成(默认大小)两倍。


  当你为一个元素使用em单位时,你必须考虑到所有父元素的字体大小。正如你看到的,这很容易(让字体大小的计算)变得复杂而凌乱。

  解决这个问题的便是rem。rem是基于html元素的字体大小而不是父元素。比如——

  CSS Code复制内容到剪贴板

  html {

  font-size: 100% /* =16px */

  }

  body {

  font-size: 2rem; /* =32px */

  }

  p {

  font-size: 1rem; /* =16px */

  }

  使用rem可以让你拥有em和%的缩放能力而无需处理嵌套问题。

  例子4——视口宽度大小

  vw是CSS3新加入的一个使用视口宽度来计算字体大小的单位。这样可以允许更多的响应字体大小。

  尽管这似乎是为响应式设计的一个很有用的单位,但我个人不是它的粉丝。因为它并不能在字体大小上给我更多的控制权,他总是显示的过大或过小。

  我的方法

  在我做这项研究之前,我一直使用像素来设置我的字体大小。这是因为现在的大多数浏览器允许用户在字体太小的情况下自行放大页面,所以使用像素并没有什么问题。

  但是,我发现这种方式在很大程度上限制了扩展能力。虽然我的字体在中小屏幕上看起来不错,但他应该在大屏幕上有更好的优化。即便用户有放大的选项,这也不应该是我们希望他们来做的事情。

  因此我使用rem设置的解决方案是(使用像素作为备用)。

  CSS Code复制内容到剪贴板

  html {

  font-size: 62.5%; /* sets the base font to 10px for easier math */

  }

  body {

  font-size: 16px;

  font-size: 1.6rem;

  /* sets the default sizing to make sure nothing is actually 10px */

  }

  h1 {

  font-size: 32px;

  font-size: 3.2rem;

  }

  这样我扩大了字体大小而只需要这样写——

  CSS Code复制内容到剪贴板

  @media screen and (min-width: 1280px) {

  html {

  font-size: 100%;

  }

  }

  这个方法是用像素作为降级单位因为IE8及以下不支持rem。这有一个问题是当我改变基础字体大小时只能应用在可扩展性大小上面而不适用于后备字体大小。不过我不认为这是一个巨大的问题,因为这个问题对于较大规模的设备的核心来说只是一个额外的问题。

  如果你有任何关于如何改善这个问题的想法,请在评论里让我知道。我也可以写一个SCSS的混入,这样我可以不必输入这两个后备和rem单位。

时间: 2024-10-02 03:41:48

CSS中的font-size属性使用教程的相关文章

CSS中的背景部分编程学习教程

  在CSS里面,每个元素盒子都可以想象成由两个图层组成. 前景层:内容(如文本或图片)和边框. 背景层:用实色填充(使用 background-color 属性),也可以包含任意多个背景图片(使用 background-image 属性),背景图片叠加在背景颜色之上. 在 CSS3 被浏览器实现之前,只能在背景颜色上添加一张图片.而现在,我们可以为背景图层添加多张图片(以及 CSS3 渐变). CSS背景属性: background-color background-image backgro

详细讲解CSS中alt和title属性的困惑

css 浏览器卖主扭曲了标准并且自顾自的不按规则去做一些事,他们可能会造成一些问题,或者至少产生了混淆.例子之一就是一些浏览器处理alt属性(一般会被错误的称作alt标签)的方式,比如拥有大量用户的Windows的IE浏览器. 替换文字(alt text)并不是用来做提示(tool tip),或者更加确切的说,它并不是为图片提供额外说明信息的.相反地,title属性才应该用来为元素提供额外说明信息.这些信息在大部分图像浏览器里显示为提示(tool tip),虽然制造商可以任意采取其他方式渲染ti

css中visibility与display属性区别比较

浏览器支持 所有主流浏览器都支持 visibility 属性. 注释:任何的版本的 internet explorer (包括 ie8)都不支持 "inherit" 和 "collaps教程e" 属性值. 所有主流浏览器都支持 display 属性. 注释:任何版本的 internet explorer (包括 ie8)都不支持 "inherit"."inline-table"."run-in"."

CSS中一个font缩写的实例

font:italic bold 100px/200px Arial, Helvetica, sans-serif; 表示的意思是是:这个元素里的字体是斜体,加粗,字体大小为100px,行间距是200px,字体是:Arial, Helvetica, sans-serif;

CSS中控制不换行属性

强制不换行属性 white-space:nowrap;    word-break:break-all;只对英文起作用,以字母作为换行依据    word-wrap:break-word; 只对英文起作用,以单词作为换行依据    white-space:pre-wrap; 只对中文起作用,强制换行    white-space:nowrap; 强制不换行,都起作用    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;不换

CSS学习教程:认识会用CSS样式表的文本属性

css|教程|样式表 文本(text):css控制的文本属性主要包括以下四个: text-indent, text-align, text-decoration, text-transform; 1. text-align:属性text-align指文本的对齐方式,其有向左,向右,居中对齐以及自动适应四种对齐方式: text-align: left;text-align: right;text-align: center;text-align: justify; 例:css代码: body {f

CSS中的文本属性

本文总结一下CSS中关于文字的相关属性,最后给出实例. CSS基础文字属性 文字的基础属性主要包括:字体.颜色和文本.除去颜色color的属性外,字体和文本的相关属性可以权威参考: CSS 文本属性(Text) CSS 字体属性(Font) CSS3新增属性 文本阴影:text-shadow 文本溢出:text-overflow 这个属性一般需要配合overflow:hidden和white-spance:nowrap(强制文本容器不换行)使用. 文本换行:word-wrap word-brea

详细学习CSS中的网页布局的属性

css|网页 布局(Layout)属性: 在以前的HTML里,元素的位置只能靠元素的依次排列觉得,而在CSS里你可以更精确的定位元素.Netscape曾提出过Layer标记,它对于精确布局很有好处,但是并没有被W3C承认,W3C在CSS提出了类似于Layer标记的功能. position属性: position属性用来决定元素的位置类型,详见属性: 属性名称: 'position'属性值: absolute | relative | static初始值: static适合对象: 所有元素是否继承

注意CSS代码中的!important属性

CSS中的!important是一个非常重要的属性,有时候发挥着非常大的作用,这方面的知识并不是非常多,我们看下面的文章,对它作比较感观的了解. 前几天写一些CSS代码的时候又难为我了,因为那个该死的IE6对CSS的支持是如此的差劲,以前我还没注意过,因为做的东西基本都是基于IE的,可是我这次为博客写的CSS要支持不止IE一个浏览器,可恨的是我装的Windows 7,这里面自带的是IE8浏览器,我自认为已经没有问题了,可是打开IE6,仍然出现错位,于是我决定看看IE6到底是什么情况. 我把所有的