CSS中字体尺寸总结

下面是我总结的css中关于字体尺寸的知识,欢迎高手拍砖!

前端开发过程中,我们经常会遇到设置某个div固定显示几行文本;这时我们需要精确计算每个字号字体的宽度和高度。

下面是w3school中描述的尺寸的单位:

单位 描述
% 百分比
in 英寸
cm 厘米
mm 毫米
em
1em 等于当前的字体尺寸。

2em 等于当前字体尺寸的两倍。

例如,如果某元素以 12pt 显示,那么 2em 是24pt。

在 CSS 中,em 是非常有用的单位,因为它可以自动适应用户所使用的字体。

ex 一个 ex 是一个字体的 x-height。 (x-height 通常是字体尺寸的一半。)
pt 磅 (1 pt 等于 1/72 英寸)
pc 12 点活字 (1 pc 等于 12 点)
px 像素 (计算机屏幕上的一个点)

我的总结:

1.px

10px: 高度13px(等于10+3),宽度10px;
11px: 高度14px(等于11+3),宽度11px;

以此类推:px占用的高度等于字号大小加3,宽度等于字号大小。

2.em
1em: 高度13px(等于10+3),宽度10px;
2em: 高度14px(等于11+3),宽度11px;
以此类推:em占用的高度等于字号大小加12,宽度等于字号大小加9。

上面是大概的推论,具体的请运行下面的工具,查看精确结果。

我做了一个工具,用来验证上面的总结:

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5         <title>测试字体宽度和高度</title>
  6         <script src="http://code.jquery.com/jquery.min.js"></script> <!--这个永远是最新版本的CDN-->
  7         <style>
  8         body,html{
  9             height: 100%;
 10         }
 11         div{bordor 1px green dotted;}
 12         div,p,h1,h2{
 13             margin:0;
 14             padding:0;
 15         }
 16         h1,h2{
 17             text-align:center;
 18             margin:3px 0;
 19         }
 20         div.content{
 21             width:90%;
 22             margin:auto;
 23             border:yellow 1px solid;
 24             overflow:auto;
 25             padding:10px;
 26             text-align:center;
 27         }
 28         div#font{
 29             border:1px red dotted;
 30             height:230px;
 31             overflow:auto;
 32         }
 33         div#font p{
 34             border:1px green dotted;
 35         }
 36         .hidden{
 37             display:none;
 38         }
 39         div.fontlist{
 40             border:1px red dotted;
 41             height:400px;
 42             overflow:auto;
 43         }
 44         table.result{
 45             border-left:1px solid blue;
 46             border-bottom:1px solid blue;
 47             width:50%;
 48             margin:auto;
 49         }
 50         table.result th,table.result td{
 51             border-right:1px solid blue;
 52             border-top:1px solid blue;
 53             padding:5px;
 54         }
 55         .fl{
 56             float:left;
 57         }
 58         .fr{
 59             float:right;
 60         }
 61         .clearboth{
 62             clear:both;
 63         }
 64         .hidden{
 65             display:none;
 66         }
 67         div.Top_Error{
 68             position:fixed;
 69             bottom:0;
 70             left:0;
 71             z-index:99;
 72             width:20%;
 73             overflow:auto;
 74             color:red;
 75             background-color:white;
 76             border:1px green solid;
 77         }
 78         .red{
 79             color:red;
 80         }
 81         </style>
 82     </head>
 83     <body>
 84         <h1>测试字体宽度和高度</h1>
 85         <div class="content">
 86         <input type="button" class="test" value="获取字体高度"/>
 87         <h2>字体</h2>
 88         <div id="font">
 89         </div>
 90         <h2>结果</h2>
 91         <div class="fontlist">
 92         <table cellspacing="0" class="result">
 93             <caption>结果</caption>
 94             <thead>
 95             <tr>
 96             <th>字体大小</th>
 97             <th>字体高度</th>
 98             <th>字体宽度</th>
 99             </tr>
100             </thead>
101             <tbody></tbody>
102         </table>
103         </div>
104         </div>
105     <script>
106         //显示/隐藏错误窗口
107         function hiddenerr(){
108             $(‘.ErrContent‘).toggle(800);
109         }
110         //点击按钮[测试字体宽度和高度]
111         $(‘input[type=button].test‘).click(function(){
112             var $tbody = $(‘table.result tbody‘);
113             var $font = $(‘div#font‘);
114
115             $tbody.empty();
116             $font.empty();
117             var sbody="";
118             sbody +=GetFontSize(‘px‘,10,30);
119             sbody +=GetFontSize(‘em‘,1,10,‘red‘);
120             $tbody.append(sbody);
121             //滚动条置顶
122             $font.scrollTop(0);
123             $tbody.scrollTop(0);
124         })
125         //获取字体高度-宽度
126         function GetFontSize(sunit,b,n,classname){
127             var sbody="";
128             var $font=$(‘<div></div>‘);
129
130             for(var i=b;i<=n;i++){
131                 var p = $(‘<p class="fl ‘+ classname +‘"></p>‘);
132                 p.css(‘fontSize‘,i + sunit);
133                 p.text(‘字‘);
134                 p.attr(‘title‘,‘字体大小‘+p.css(‘fontSize‘))
135                 $font.append(p);
136             }
137             $(‘div#font‘).append($font);
138             $(‘div#font‘).append(‘<div class="clearboth"></div>‘);
139
140             $(‘div#font p‘).each(function(i){
141                 var p = $(this);
142                 sbody +="<tr class=‘"+ classname +"‘>";
143                 sbody +="<td>"+ (i+b) + sunit + "</td>";
144                 sbody +="<td>"+ p.height() +"</td>";
145                 sbody +="<td>"+ p.width() +"</td>";
146                 sbody +="</tr>";
147             });
148             return sbody;
149         }
150         //组织错误提示窗口
151         function setError(sError){
152             var div = $(‘div.Top_Error‘);
153             if(div.length == 0){
154                 div=‘<div class="Top_Error"><div class="fr"><button onclick="hiddenerr()" class="hiddenerr">关闭</button></div><div class="ErrContent"><ul></ul></div></div>‘;
155                 $(‘body‘).append(div);
156             }
157             div = $(‘div.Top_Error ul‘);
158             var p = ‘<p>‘ + DateFormat(Date(),2) + ‘</p>‘;
159             p += ‘<p>‘ + sError + ‘</p>‘;
160             div.append(‘<li>‘ + p + ‘</li>‘)
161             console.log($(‘.Top_Error .toggle‘));
162         }
163         //获取当前日期
164         var DateFormat = function (date,itype) {
165             if (!(date instanceof Date)) {
166                 date = date.replace(/-/g, "/");
167                 date = new Date(date);
168             }
169             var month = date.getMonth() + 1;
170             var year = date.getFullYear();
171             var day = date.getDate();
172             var Hour = date.getHours();
173             var second = date.getSeconds();
174             var minute = date.getMinutes();
175             var NewDate="";
176
177             if (month < 10) {
178                 month = "0" + month;
179             }
180             if (day < 10) {
181                 day = "0" + day;
182             }
183             NewDate = year + "-" + month + "-" + day;
184             if(itype == 2){
185                 NewDate +=":" + Hour +":" + second +":" + minute;
186             }
187             return NewDate;
188         }
189         //全局错误捕获
190         window.onerror = function (sMsg, sUrl, sLine) {
191             var sContent = "<p>信息:" + sMsg + "</p>" + "<p>网页:" + sUrl + "</p>" + "<p>行:" + sLine + "</p>";
192             alert(sContent);
193             setError(sContent);
194             return true;
195         }
196     </script>
197     </body>
198 </html>

工具-测试字体占用的宽度和高度

运行截图:

时间: 2024-08-15 23:13:35

CSS中字体尺寸总结的相关文章

css中字体单位px,pt,em ,rem,百分比之间的区别和用法

css中字体单位px,pt,em ,rem,百分比之间的区别和用法 px 即像素,一般国内网站使用较多,默认大小是16px; pt 印刷行业常用单位 em  相对单位,相对父元素属性的单位 ,一般用于移动端布局 rem  结合相对定位和绝对定位的优势,相对根元素html,想要修改字体大小,只要修改html的大小就可以了 转换公式: pt=px乘以3/4 倍数em=倍数x16px 注意:1em=16px.那么12px=0.75em,10px=0.625em.   1.em的用法 在代码重写的过程中

有关CSS中字体响应式的设置

在进行页面响应式设计中,往往需要根据屏幕分辨率来显示不同大小的字体.通常的做法是通过media queries给不同的分辨率指定不同的字体样式,例如: body { font-size: 22px; } h1 { font-size:44px; } @media (min-width: 768) { body { font-size: 17px; } h1 { font-size:24px; } } 除此之外,我们还可以通过下面的方式让字体自适应屏幕分辨率. 1vw = viewport宽度的1

css中字体大小在不同浏览器兼容性问题

css中使用font-size设定字体大小,不同浏览器的字体height一样,但是width不同,比如在火狐和谷歌中,font-size:20px,字体的高度变为20px,但是谷歌的字体宽度比火狐长 一,解决方法如下: 1. 将浏览器的基准字号设置为 62.5%,也就是 10px,现在 1rem = 10px -- 为了计算方便.然后 在 body上应用 font-size: 2rem;,那么现在body的字体大小就是 20px. html { font-size: 62.5%; } body

CSS中的尺寸单位

绝对单位 px: Pixel 像素 pt: Points 磅 pc: Picas 派卡 in: Inches 英寸 mm: Millimeter 毫米 cm: Centimeter 厘米 q: Quarter millimeters 1/4毫米 相对单位 %: 百分比 em: Element meter 根据文档字体计算尺寸 rem: Root element meter 根据根文档( body/html )字体计算尺寸 ex: 文档字符"x"的高度 ch: 文档数字"0&q

认识CSS中字体图标

前端之HTML,CSS(十一) 字体图标 使用文字做出小图标的效果并超越了小图标应用精灵图,使得图标变得灵活,减少了请求次数,优化了界面的性能.字体图标本身为矢量图. 字体图标的使用过程 1.UI设计字体图标效果图 使用illustrator或者Sketch矢量图软件创建icon图标,并保存svg格式. 2.前端上传生成兼容性字体文件包 将svg格式文件转换成页面能够使用的字体文件,并且需要兼容各种浏览器. icomoon字库:https://icomoon.io/ 阿里妈妈字库:https:/

前端开发入门到实战:CSS中字体单位:px、em、rem和%

对于绘图和印刷而言,"单位"相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px.em.rem-等),这篇文章将整理这些常用的CSS单位,也帮助自己未来在使用上能更加得心应手. "网页"和"印刷"的单位若要把单位做区隔,最简单可以分为"网页"和"印刷"两大类,通常对于CSS来说只会应用到网页的样式,毕竟真正要做印刷,还是会倾向透过排版软件来进行设计. 网页

css中字体和文本的控制

字重font-weight font-weight 的取值 : normal | bold |bolder |lighter |100 ~ 900 其中400对应的自重是normal ,700对应的是bold font-weight : normal; 字号 font-size 百分数 - 百分数是子元素相对于父元素的大小,如父元素是20px,子元素设置为 200%即为你元素的两倍大小. em - em单位等同于百分数单位. px - 像素大小 p { font-size:20px; } p {

21 css中字体的缩写

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style type="text/css"> /*下边是body{ font-style:italic; font-variant:small-caps; font-weight:bold; font-size:20px; line-h

css中字体单位

认识这些单位 em:相对长度单位.相对于父元素.是一个可伸缩的单位. px:像素.是一个固定大小的单元. pt:点.是固定大小,不可伸缩的. %:百分比.相对于父元素.可伸缩的单位. rem:相对于根目录的em. 关联 一般来说,任意浏览器默认字体高度都是16px,而 1em=100%=16px=12pt 当不存在父级元素时默认样式: .px{font-size: 16px;} .em{font-size: 1em;} .rem{font-size: 1rem;} .pt{font-size: