基本语法结构:

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复制内容到剪贴板

@mediascreenand (min-width:1280px) {

html {

font-size: 100%;

}

}

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

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

设置网页的html的font-size,CSS中的font-size属性使用教程相关推荐

  1. css中字体与段落属性设置/文本高级样式

    CSS中字体与段落属性 毫无疑问,不管什么网站,文字一定是必不可少.文字可以是网页传播信息的主要手段.那么怎么显示文字,才能更加的美观,那么大家需要了解以下文字属性. 字体属性 属性 用途 语法(一些 ...

  2. html cellpadding css,CSS中cellspacing和cellpadding属性用法

    CSS中cellspacing和cellpadding属性的使用是否了解,这里和大家分享一下,cellspacing属性设置表格边框之间和表格单元格之间的间距(以像素为单位):cellpadding属 ...

  3. css中reset属性详解,css中如何使用counter-reset属性

    css中如何使用counter-reset属性 发布时间:2020-09-23 14:26:58 来源:亿速云 阅读:83 作者:小新 这篇文章主要介绍css中如何使用counter-reset属性, ...

  4. css中的 type,css中如何使用list-style-type属性

    css中如何使用list-style-type属性 发布时间:2020-09-24 10:05:15 来源:亿速云 阅读:88 作者:小新 小编给大家分享一下css中如何使用list-style-ty ...

  5. [css] css中的选择器、属性、属性值区分大小写吗?

    [css] css中的选择器.属性.属性值区分大小写吗? 选择器和属性区分大小写,属性值如果是颜色可以不区分大小写吧 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢 ...

  6. 妙味css3课程---1-1、css中自定义属性可以用属性选择器么

    妙味css3课程---1-1.css中自定义属性可以用属性选择器么 一.总结 一句话总结:可以的. 1.如何实现用属性选择器实现a标签根据href里面含有的字段选择背景图片? p a[href*=te ...

  7. CSS中内容的剪切属性clip

    1. 在CSS中,可以使用剪切属性对元素内容的可视化区域进行控制,剪切区域所使用的属性时clip属性, 用来裁剪元素的可视化区域,内容的剪切属性可以使用2种属性值,一种为auto值,另一种为区域值,语 ...

  8. php中li标签,li标签有哪些属性?css中li标签的属性详解

    在html中,我们经常会遇到li标签,那么li标签有哪些属性?下面我们来了解一下css中li标签的属性. 一:标签有哪些属性 在html中,使用css中li标签来控制样式,很多网站上都是点为开头,也有 ...

  9. css可以设置文本框颜色吗,如何在css中设置文本框颜色

    如何在css中设置文本框颜色 发布时间:2021-04-29 15:33:54 来源:亿速云 阅读:72 作者:Leah 如何在css中设置文本框颜色?针对这个问题,这篇文章详细介绍了相对应的分析和解 ...

  10. css中的 font 与 font-size

    前言:前段时间修改程序,看到以下代码. 不明白红色部分是什么意思~ body:last-child { font: 64%/133.5% "MS Pゴシック", sans-seri ...

最新文章

  1. python入门指南bl-Vue 3 高阶指南之 Map
  2. 浅谈Ubuntu上离线安装包的制作与安装问题
  3. 几步实现stm32上面移植mqtt
  4. Eclipse调试Logcat类的说明
  5. python中的孤儿进程
  6. openerp mac os 下 报表中文乱码问题。
  7. qq飞车手游微信新服务器失败,关于QQ飞车手游部分玩家更新失败的问题说明
  8. cjson读取json文件_JSON格式介绍和使用cJSON解析 | 学步园
  9. 当数据库新增字段后,接下来需要做的操作(备忘录)
  10. android 圆形渐变背景,android实现圆形渐变进度条
  11. mybatis表不存在的解决办法
  12. DB buffer bussy wait 分析一例
  13. springboott整合mybatis-plus和sharding-jdbc实现分库分表和读写分离(含完整项目代码)
  14. 帆软报表决策系统忘记密码了,使用重置密码插件
  15. 从异构软件开发者的角度看异构计算
  16. npm使用过程中的一些错误解决办法及npm常用命令
  17. python各种有趣的模块
  18. Ultraedit 使用技巧
  19. Python高级教程(三)、数据库操作之mysql
  20. 修道士和野人过河问题 A*算法 人工智能

热门文章

  1. MYSQL导出数据字典
  2. 织梦仿站系列教程第二十一讲——封面页制作(四)
  3. intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...
  4. 内网安全-域横向批量atschtasksimpacket
  5. php微信公众号,服务器配置,一直提示token验证失败?
  6. 荣耀笔记本开机显示 grub 界面
  7. Android开发背景
  8. EMUI11什么时候推送鸿蒙,EMUI11什么时候更新 EMUI11推送更新机型和时间汇总
  9. 【无人机】基于SDRE对NPS II无人机进行点对点(调节)控制(Matlab代码实现)
  10. 配置MySQL字符集教程