响应式字体设置rem,em,px

html-css010

响应式字体设置rem,em,px,第1张

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作为单位就行了。 (em是根据标签元素自身的font-size来计算(宽高设置根据当前元素font-size),而元素自身的font-size又受他父级元素的font-size的影响,这很容易导致错误。而em计算单位的唯一优势就是它的兼容效果更佳。)

rem: CSS3新增的一个相对单位。 rem 是相对于根元素<html>,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。 (一改全改,根据html的根元素标签的font-size的大小来计算)

因为HTML的根元素标签的font-size为100px;

那么   width=5rem*100px=500pxheight=2.5rem*100px=250px

参考 https://blog.csdn.net/w390058785/article/details/80223717

rem是什么?

px,绝对长度单位,最常用

em,相对长度单位,相对于父元素,不常用

rem,相对长度单位,相对于根元素,常用于响应式布局

响应式布局的常用方案

media-query,根据不同屏幕宽度设置根元素font-size

rem,基于根元素的相对单位

rem的弊端:“阶梯性”

做响应式网站离不开CSS响应式布局查询代码写法,而在此之前,我们需要了解什么是媒体查询以及如何才CSS中引入媒体查询。

什么是媒体查询?

媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。媒体查询中可用于检测的媒体特性有width、height和color(等)。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。

如何在CSS中引入媒体查询?

媒体查询写在CSS样式代码的最后,CSS是层叠样式表,在同一特殊性下,靠后的的样式会重叠前面的样式。

如何用CSS做响应式布局呢?

1、在HTML头部添加以下代码,用来显示兼容移动设备的显示效果。

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

参数详解:

width=device-width :宽度等于当前设备的宽度

initial-scale=1 :初始的缩放比例(默认为1)

minimum-scale=1 :允许用户缩放到的最小比例(默认为1)

maximum-scale=1 :允许用户缩放到的最大比例(默认为1)

user-scalable=no :用户是否可以手动缩放(默认为no)

2、引入包含Media的CSS文件

一般情况HTMLCSS代码都是分开写的,Media也不例外。

<link rel="stylesheet" type="text/css" href="m320.css" media="only screen and (max-width:320px)"/>

<link rel="stylesheet" type="text/css" href="m480.css" media="only screen and (min-width:321px) and (max-width:375px)"/>

3、写Media中的代码

以某个网页的响应式布局为例

结构:@media设备类型and (设备特性){样式代码}

/*媒体查询*/

/*当页面大于1200px时,大屏幕,主要是PC端*/

@media (min-width: 1200px) {

}

/*在992 和1199 像素之间的屏幕里,中等屏幕,分辨率低的PC*/

@media (min-width: 992px) and (max-width: 1199px) {

#adver .center {

width: 50%

margin: -10px 0 0 -25%

}

main .center h2 {

font-size: 40px

}

}

/*768和991像素之间的屏幕里,小屏幕,主要是PAD*/

@media (min-width: 768px) and (max-width: 991px) {

#adver .center {

width: 60%

margin: -10px 0 0 -30%

}

#adver .search, #adver .button {

font-size: 20px

}

main .center h2 {

font-size: 35px

}

}

/*在480和767像素之间的屏幕里,超小屏幕,主要是手机*/

@media (min-width: 480px) and (max-width: 767px) {

header, header .center, header .link {

height: 45px

}

header .logo, .sm-hidden,.sidebar,.md-hidden {

display: none

}

header .link {

width: 100%

line-height: 45px

}

#adver {

padding: 45px 0 0 0

}

#adver .center {

width: 70%

height: 53px

margin: -10px 0 0 -35%

}

#adver .search, #adver .button {

height: 45px

font-size: 18px

}

.sm-visible {

display: block

}

main .center h2 {

font-size: 30px

}

main .center p {

font-size: 15px

}

main figure {

width: 49.2%

}

}

/*在小于480像素的屏幕,微小屏幕,更低分辨率的手机*/

@media (max-width: 479px) {

header, header .center, header .link {

height: 45px

}

header .logo, .xs-hidden, .sm-hidden, .sidebar, .md-hidden {

display: none

}

header .link {

width: 100%

line-height: 45px

}

header .link li {

width: 25%

}

#adver {

padding: 45px 0 0 0

}

#adver .center {

width: 80%

height: 48px

margin: -10px 0 0 -40%

}

#adver .search, #adver .button {

height: 40px

font-size: 16px

}

.sm-visible {

display: block

}

footer .bottom, footer .version {

font-size: 13px

}

main .center h2 {

font-size: 26px

}

main .center p {

font-size: 14px

}

main figure {

width: 99%

}

}

响应式布局的原理就是在不同的窗口大小下显示不同的结构和样式。只要掌握好CSS的样式,响应式布局就没问题。