一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。
rem基础
rem单位
rem(root em)是一个相对单位,类似于em,em是当前文字大小。
不同的是rem的基础是相对于html根标签的字体大小。
比如,根元素(html)设置font-size=12px; 非根元素设置width:2rem;则换成px表示 就是24px
示例
<div>
<p></p>
</div>
html {
font-size: 14px;
}
div {
font-size: 12px;
}
p {
/* 1. p继承了父盒子的文字大小,而em的大小就是一个文字的大小,所以宽度10em就是10 * 12px */
/* width: 10em;
height: 10em; */
/* 2. rem是相对于html元素 字体大小来说的 */
width: 10rem;
height: 10rem;
/* 这时候就变成了宽是140px,高是140px */
/* 3.rem的优点就是可以通过修改html里面的文字大小改变页面中元素的大小,达到整体控制 */
background-color: pink;
}
媒体查询
媒体查询的主要价值就是可以根据不同屏幕尺寸来改变不同样式
使用rem时,在html标签中使用不同的font-size,就会使得使用rem的盒子同步变化
但是html中的font-size是写死的,如果想自动变化就要使用媒体查询。
简介
媒体查询(Media Query)是css3的新语法。
- 使用@Media查询,可以针对不同媒体类型定义不同的样式
- @media可以针对不同的屏幕尺寸设置不同的样式
- 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
- 目前针对很多设备都使用得到媒体查询
语法
@media mediatype and|not|only (media feature) {
css-code;
}
注意:
-
@media开头来声明
-
mediatype是媒体类型将不同的终端设备分为不同的类型,称为媒体类型
all : 用于所有设备
print : 用于打印机和打印预览
scree : 用于电脑屏幕,平板电脑,智能手机 -
关键字 and、not、only
关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。
· and : 可以将多个媒体特性连接到一起,相当于“且”的意思
· not : 排除某个媒体类型,相当于“非”的意思,可以省略
· only: 指定某个特定的媒体类型,可以省略 -
media feature 媒体特性必须有小括号
每种媒体类型都具有各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。暂且了解3个,要小括号包含。
width : 定义输出设备中页面可见区域的宽度
min-width : 定义输出设备中页面最小可见区域宽度
max-width : 定义输出设备中页面最大可见区域宽度
eg:
@media screen and (max-width:800px) {
body {
background-color:red
}
}
这句话的意思是: 在我们屏幕上,并且最大宽度是 800px 设置我们想要的样式
max-width:800px 其实就是小于等于800px
小于等于800时,body的背景色是red色
媒体查询也能用于引入资源
语法
<link rel="stylesheet" href="example.css" media="mediatype and|not|only (media feature)">
当我们样式比较繁多的时候,我们可以针对不同的媒体使用不同的样式表。
原理就是直接在link中判断设备的尺寸,然后引入不同的css文件