【思考】
rem
(root em)是一个相对单位,类似于 em
,em 是父元素字体大小。
不同的是 rem 的基准是相对于 html 元素的字体大小。
比如,根元素(html)设置 font-size=12px
,非根元素设置 width: 2rem;
则换成 px 表示就是 24px。
rem 的优势:父元素文字大小可能不一致,但是整个页面只有一个 html
,可以很好来控制整个页面的元素大小。(即:达到统一控制全局字体大小的效果!)
注意:rem 控制的不仅仅是字体大小,还能控制其他元素的大小。
/* 根 html 为 12px */
html {
font-size: 12px;
}
/* 此时 div 的字体大小就是 24px */
div {
font-size: 2rem;
}
【案例】
doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>rem单位title>
<style>
html {
font-size: 12px;
}
div {
font-size: 12px;
width: 15rem;
height: 15rem;
background-color: purple;
}
p {
/* 1. em 相对于父元素的字体大小来说的 */
/*
width: 10em;
height: 10em;
*/
/* 2. rem 相对于 html 元素字体大小来说的 */
width: 10rem;
height: 10rem;
background-color: pink;
/* 3.rem 的优点就是可以通过修改 html 里面的文字大小来改变页面中元素的大小可以整体控制 */
}
style>
head>
<body>
<div>
<p>p>
div>
body>
html>
注:虽然使用 rem 之后实现了全局字体大小的统一控制,但是依旧不能根据窗口大小自动适配,所以我们还要学习媒体查询。
媒体查询(Media Query)是 CSS3 新语法。
@media
查询,可以争对不同的媒体类型定义不同的样式@media
可以争对不同的屏幕尺寸设置不同的样式@media mediatype and|not|only (media feature) {
CSS-Code;
}
@
符号将不同的终端设备划分成不同的类型,称为媒体类型。
值 | 解释说明 |
---|---|
all |
用于所有设备 |
print |
用于打印机和打印预览 |
scree |
用于电脑屏幕、平板电脑、智能手机等 |
关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。
每种媒体类型都具有各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。我们暂且了解三个。注意他们要加小括号包含。
值 | 解释说明 |
---|---|
width |
定义输出设备中页面可见区域的宽度 |
min-width |
定义输出设备中页面最小可见区域宽度 |
max-width |
定义输出设备中页面最大可见区域宽度 |
【案例】
根据页面宽度改变背景颜色。
实现思路:
max-width
和最小值 min-width
都是包含等于的注意:为了防止混乱,媒体查询我们要按照从小到大或者从大到小的顺序来写,但是我们最喜欢的还是从小到大来写,这样代码更简洁。
举例:
doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge"