常见的方法

body{
font-size:12px;
}

使用像素单位的优点:

  • 不管使用哪种浏览器或者设备来查看,文字看起来都大小一致。

为什么这么做不是无懈可击的?

  • 以像素为单位设定文字大小之后,Windows平台上的IE用户无法随意改变浏览器文字大小。
  • 不适合响应式开发

我们有哪些选择?

  • 长度单位

    • em:相对于父元素的字体大小
    • ex:相对于特定字体中字母x的高度
    • px:相对于特定设备的分辨率,是最常用的单位
    • rem:根据根元素的字体大小计算出的值
    • 除此之外还有一些绝对单位,在打印的时候比较有用,在此不列举了。
  • 表示相对大小的关键字

    • larger
    • smaller
  • 百分比值

  • 表示绝对大小的关键字

    • xx-small
    • x-small
    • small
    • medium
    • large
    • x-large
    • xx-large

他们之间都是以1.5倍为差

无懈可击的方案:

  • 关键字+百分比,放弃像素级别的精确度

    • 用法:

        body{
      font-size:small;
      }
      h1{
      font-size:150%;
      }
    • 需要注意的地方:

      • 百分比是根据父元素设定,所以慎用嵌套百分比
  • 通过em实现灵活的文字

    • 用法:

        body{font-size:62.5%;} /* 设置为10px大小*/
    • 注意:

      • em 也存在嵌套的问题
  • rem单位

    • 使用rem不必考虑上下文和嵌套,只需根据根元素指定大小。

补充几种响应式中使用的单位

- vh and vw
- 响应式web设计离不开百分比。但是,CSS百分比并不是所有的问题的最佳解决方案。CSS的宽度是相对于包含它的最近的父元素的宽度的。但是如果你就想用视口(viewpoint)的宽度或者高度,而不是父元素的,那该肿么办?这就是 vh 和 vw 单位为我们提供的。
- 1vh 等于1/100的视口高度。栗子:浏览器高度900px, 1 vh = 900px/100 = 9 px。同理,如果视口宽度未750, 1vw = 750px/100 = 7.5 px。比如,我们用很简单的方法只用一行CSS代码就实现同屏幕等高的框。 .slide{
height:100vh;
} - vmin and vmax
- vh和 vw 依据于视口的高度和宽度,相对的,vmin 和 vmax则关于视口高度和宽度两者的最小或者最大值。比如,浏览器的宽度设置为1100px,高度设置为700px, 1vmin = 7px, 1vmax = 11px。如果宽度设置为800px,高度设置为1080px, 1vmin就等于8px, 1vmax则为10.8px。
- 可以这样定义一个至少有两个边触摸到屏幕的方形: .box{
height:100vmin;
width:100vmin
} ![](http://images2015.cnblogs.com/blog/849146/201512/849146-20151208140015011-401092210.png) - 如果你要让这个方形框框始终铺满整个视口的可见区域(四边始终触摸到屏幕的四边) .box{
height:100vmax;
width:100vmax;
} ![](http://images2015.cnblogs.com/blog/849146/201512/849146-20151208140149465-1034202470.png) 结合使用这些单位可以为我们提供一个新颖有意思的方式来灵活地利用我们视口的大小。

《无懈可击的Web设计》_灵活的文字的更多相关文章

  1. web设计_2_灵活的文字

    最佳设计:可以让用户自由控制任何页面的文字大小. 浏览器中用户都是可以自定义默认的文字大小的,如果使用 px,用户自行在浏览器设置中改变了文字大小后,网页上是不会变化的.我们不能排除视障用户(如近视) ...

  2. Day_8.《无懈可击的web设计》-巧妙地浮动效果

    > 本章内容略显陈旧,主要描述如何用浮动替代表格布局,并没有什么出彩的地方.不过其间提到了清楚浮动的几种方法,那么今天就总结一下如何清楚浮动吧. #### 为什么要清除浮动?虽说是清除浮动,其实 ...

  3. web设计之无懈可击

    无懈可击的web设计旨在尽可能地考虑页面元素在各个情况下都能够呈现最好的效果. 1. 思路总览 2. 灵活的文字 3. 可伸缩的导航栏 4. 可扩展的行 5. 自由的框式组件 6. 图片/标题/说明文 ...

  4. 关于响应式web设计

    手机网站+电脑网站+平版网站 = 响应式网站 在没有足够经费跟精力的做一个手机网站的情况下,响应式网站是个不错的选择.它有以下的优点: 减少工作量(网站代码只要一份,只需要做js方面的改动及可以了) ...

  5. 分享29个超赞的响应式Web设计

    原文自:http://www.csdn.net/article/2013-01-16/2813678-responsive-design-websites 最近几年,响应式Web设计不断印入人们眼帘, ...

  6. Web设计思想——渐进增强

    最近在拜读一本Web体验相关的书<渐进增强--跨平台用户体验设计 >,阅读后做些总结,消化一下书中的精髓. 在阅读本文前,可以先思考下面几个问题. 1. 浏览网页的目的是什么? 2. 浏览 ...

  7. 响应式WEB设计的9项基本原则

    响 应式Web设计对于解决多类型屏幕问题来说是个不错方案,但从印刷的角度来看,其却存在着很多的困难.没有固定的页面尺寸.没有毫米或英寸,没有任何物理 限制,让人感到无从下手.随着建立网站可用的各种小工 ...

  8. 最佳的 14 个免费的响应式 Web 设计测试工具

    一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...

  9. 推荐15款最佳的响应式 Web 设计测试工具

    响应式网页设计是根据设备的屏幕尺寸,平台和方向来开发的网页,是一种对最终用户的行为和环境作出反应的方法.响应式设计使用灵活的网格和布局,图像和智能使用 CSS 媒体查询的组合.当从它们在不同设备使用的 ...

随机推荐

  1. insert例子

    11.20 使用insert代替下标操作. #include<iostream> #include<map> #include<string> #include&l ...

  2. Servlet中的请求包含

    public class SrcIncludeServlet extends HttpServlet { public void doGet(HttpServletRequest request, H ...

  3. HDU1241(bfs)JAVA

    import java.util.Scanner;public class Main1241 { public static void main(String[] args) { Scanner ci ...

  4. XCode模拟器屏幕显示内容非常慢

    今天遇到了一个问题,就是XCode模拟器屏幕显示的非常慢,但是点击一下模拟器,内容就会马上显示出来,最后查找出问题是自己不注意把刷新UI界面的代码放到了异步线程中去执行了,刷新UI界面的代码放到主线程 ...

  5. Linux学习新篇——常用命令和快捷键总结

    最近刚接触Linux,整理了一些常用的命令和快捷键 Tab补全命令 当命令记不清了,输入记得的前几个用Tab就可以将该命令自动补全. 启动tomcat服务用$startup.sh 停止tomcat服务 ...

  6. Maven笔记(二)仓库

    1.仓库布局 任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这就是Maven的仓库布局方式 路径与坐标的对应关系为:groupId/artifactId/version/ ...

  7. 学点css基础

    中午时间学点css,附带http://www.w3cschool.cc/css/css-tutorial.html这个链接! 中午的时间学了这些东西!如下图: 附带代码: <!DOCTYPE h ...

  8. jQuery 常用代码集锦

    1. 选择或者不选页面上全部复选框 var tog = false; // or true if they are checked on load $('a').click(function() { ...

  9. Codevs 3233 古道

    3233 古道 时间限制: 1 s 空间限制: 8000 KB 题目等级:**白银 Silver** [传送门](http://codevs.cn/problem/3233/) 题目描述 Descri ...

  10. 输出图像到文件 imwrite()[OpenCV 笔记7]

    bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector& ...