有关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%
1vh = viewport高度的1%
1vmin = 1vw或者1vh中较小的值
1vmax = 1vw或者1vh中较大的值

  例如我们可以在样式表中定义如下样式:

h1 {
  font-size: 5.9vw;
}

h2 {
  font-size: 3.0vh;
}

p {
  font-size: 2vmin;
}

什么是viewport?

  viewport是HTML5中新加入的一个meta标记,其主要作用是为移动客户端的浏览器进行显示优化。通过设置viewport的属性值,可以控制当前页面默认采用什么样的方式在移动端的浏览器中显示页面。下面是一个常用的针对移动网页优化过的页面的viewport meta标记的设置项:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″></meta>

  如果想让页面支持响应式设计,需要给页面添加viewport meta标记。详见Bootstrap中的响应式设计

  完整的viewport语法如下:

<!-- html document -->
<meta name="viewport"
        content="
            height = [pixel_value | device-height] ,
            width = [pixel_value | device-width ] ,
            initial-scale = float_value ,
            minimum-scale = float_value ,
            maximum-scale = float_value ,
            user-scalable = [yes | no] ,
            target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
        "
/>

height:控制viewport的高度,可以指定一个固定的值,或者device-height来表示设备的高度(单位为缩放100%时的像素值)。

width:和height对应,表示viewport的宽度。devive-width表示设备的高度。

initial-scale:页面的初始缩放比例,值允许为小数,表示当前页面大小的倍数。例如2.0表示页面初始状态下会被放大2倍。

minimum-scale:最小允许缩放比例,值允许为小数,表示页面最小能以多大的倍数显示。例如2.0表示页面不能缩小到2倍以下进行显示。

maxmium-scale:和minimun-scale对应,表示最大允许缩放比例。

user-scalable:是否允许用户缩放页面。默认值为yes,当设置为no时minimum-scale和maximum-scale无效。

target-densitydpi:指定页面在什么样的dpi下显示。屏幕像素密度是由屏幕分辨率来决定的,通常定义为每英寸点的数量,即dpi。Android支持三种dpi设置:低像素密度(low-dpi),中像素密度(medium-dpi),高像素密度(high-dpi)。低像素密度的屏幕每英寸上的像素点少,而高像素密度的屏幕每英寸上的像素点多。Android Browser和WebView默认屏幕为中像素密度。也可以直接指定一个具体的dpi值,该值允许的范围为70-400之间。device-dpi表示以设备默认的dpi来显示页面。

  注意:所有的缩放值都必须在0.01-10的范围之内,否则无效。

CSS中几种不同单位之间的比较

px:像素(Pixel)。相对长度单位,所占大小由屏幕分辨率决定。

em:相对长度单位。相当于当前对象内文本的字体尺寸,如果当前对行内文本的字体尺寸未被认为设置,则相对于浏览器的默认字体尺寸。em的值并不是固定的,它会继承父级元素的字体大小。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

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

pt:印刷业上常使用的单位,一般用于页面打印排版,即磅的意思。

%:另外我们还可以使用百分比来指定大小,它表示当前字体相对于浏览器默认字体大小的倍数。该单位在页面响应式设计中也被经常用到。

vw/vh/vmin/vmax:上面已经介绍了,表示字体相对于viewport高或宽的大小。

时间: 2024-10-07 06:30:33

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

【逆战】CSS中的响应式布局

一.响应式布局: 在小型网站建设中,有运用一套代码代码来适应不同终端分辨率的需求,优点:节约制作时间.节约制作成本.便于维护等优点. CSS3利用媒体查询(media queries)即可针对不同的媒体类型定义不同的样式,从而实现响应式布局 .也可以针对不同的分辨率设置不同的样式. 1024分辨率以上:PC端  1024 ~ 768 : pad pro 768 ~ 450 : pad mini , mobile 横屏 450分辨率以下: mobile 竖屏 二.media的值以及用法: 1.me

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的用法 在代码重写的过程中

RxJava入门系列四,Android中的响应式编程

RxJava入门系列四,Android中的响应式编程 在入门系列1,2,3中,我基本介绍了RxJava是如何使用的.但是作为一名Android开发人员,你怎么让RxJava能为你所用呢?这篇博客我将针对Android开发来介绍一下RxJava的使用场景. RxAndroid RxAndroid是为Android打造的RxJava扩展.通过RxAndroid可以让你的Android开发变得更轻松. 首先,RxAndroid中提供了AndroidSchedulers,你可以用它来切换Android线

html中的响应式图片

html中的响应式图片 img sizes 指定屏幕尺寸 srcset 指定可以使用的图片和大小,多个使用逗号分隔,需要指定图片的真实宽度,个人觉得没有picture好用 <img sizes="(min-width: 1200px) 680px, (min-width: 640px) 500px, 300px" srcset="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000

css中的border-collapse属性如何设置表格边框线?(代码示例)

css中的border-collapse属性如何设置表格边框线?本篇文章就给大家介绍css中的border-collapse属性是什么? border-collapse属性设置表格边框线的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来了解一下css border-collapse属性是什么?它的作用. border-collapse 属性:设置表格的边框是否被合并为一个单一的边框,即:用于设置表格边框是合并显示还是分开显示. border-collapse 属

Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新

一.为什么需要使用Vue.set? vue中不能检测到数组和对象的两种变化: 1.数组长度的变化 vm.arr.length = 4 2.数组通过索引值修改内容 vm.arr[1] = ‘aa’ Vue.$set(target,key,value):可以动态的给数组.对象添加和修改数据,并更新视图中数据的显示. vue在构造函数new Vue()时,就通过Object.defineProperty中的getter和setter 这两个方法,完成了对数据的绑定.所以直接通过vm.arr[1] =

Css3中的响应式布局的应用

Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: <link href="css/reset.css" rel="stylesheet" type="text/css" media="screen" /> <link href="css/style.css" rel="stylesheet" type=&qu

胡博君浅谈HTML5中的响应式布局

通过媒体查询的设置,我们可以根据屏幕宽度.屏幕方向等各个属性来加载不同场景下不同的CSS文件来渲染页面的视觉风格.具体的使用方法有以下两种: 1.通过link标签: <link rel="stylesheet" type="text/css" media="screen and (max-width: 479px)" href="testcssbywidth1.css" /> 2.CSS中直接设置: @media

如何使用CSS绘制一个响应式的矩形

背景: 最近因为需要用到绘制类似九宫格的需求,所以研究了一下响应式矩形的实现方案. 有如下几种方案: 使用js来设置元素的高度 使用vw单位  div {width: 50vw; height: 50vw;} 使用伪元素设置padding的方式来实现正方形(也就是本次使用的方式) 实现一个正方形 1 .square 2 position: relative 3 width: 100% 4 5 &::before 6 content: '' 7 display: block 8 padding-t