优雅降级和渐进增强
- 优雅降级是优先考虑新版本浏览器可用性,使用最新写法,最后兼容老版本
- 渐进增强是优先考虑老版本浏览器,最后考虑新版本增强写法
viewport
手机浏览器把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。
1 | <meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″> |
属性名 | 取值 | 描述 |
---|---|---|
width | 正整数 (device-width) | 定义视口的宽度,单位为像素 |
height | 正整数 (device-height) | 定义视口的高度,单位为像素,一般不用 |
initial-scale | [0.0-10.0] | 定义初始缩放值 |
minimum-scale | [0.0-10.0] | 定义缩小最小比例,它必须小于或等于maximum-scale设置 |
maximum-scale | [0.0-10.0] | 定义放大最大比例,它必须大于或等于minimum-scale设置 |
user-scalable | yes | no | 定义是否允许用户手动缩放页面,默认值yes |
px,em,rem区别
px
- IE无法调整使用px作为单位的字体大小
- 相对长度单位,像素px是相对于显示器屏幕分辨率而言的
em
相对长度单位.
如果当前行内文本字体未被设置,则相对于浏览器的默认字体尺寸
em的值不固定
em会继承父级元素的字体大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
font-size: 30px;
}
p {
font-size: 2em;
}
</style>
</head>
<body>
<span>lorem</span>
<p>使用浏览器默认大小作为基准</p>
<div>
30px大小
<p>继承div的font-size作为基准</p>
</div>
</body>
</html>
rem
- CSS3新增的相对单位
- rem以根元素的font-size大小作为基准来计算大小
浏览器内核
浏览器内核:浏览器核心的部分,即 渲染引擎
,负责对网页语法的解释 并渲染(显示)网页。
- Trident (IE内核)
- Gecko (FireFox内核)
- Webkit (Safari内核,Chrome内核原型)
- Blink (Chrome(28及往后版本)、Opera(15及往后版本)和Yandex)
盒模型
- 标准模型: 包括margin,border,padding,content,标准模型的content不包括其他部分
- IE模型: 包括margin,border,padding,content,IE模型的content包含padding,border部分
- box-sizing: box-sizing|centent-box
伪类和伪元素
- 伪类不存在文档流中,可以理解为对元素的样式控制
- 伪元素存在于文档流中
- 伪类使用
:
,伪元素使用::
为什么HTML5只要写<!DOCTYPE HTML>
就可以了
HTML5和HTML4基于的标准不同.HTML4基于SGML,该标准是通用标记语言的集合.其中包含HTML,XHTML,因此需要DTD指定渲染标准.
CSS让文字变细
影响文字的粗细有三个元素
font-weight
:字体粗细设置font-family
:指定的字体其实是一个系列,当字体变细时,会在系列中寻找细的字体.因此如果字体系列中只有一种,这个时候不管怎么调整都不会变化-webkit-font-smoothing
:Chrome 的抗锯齿属性。加上后会显得细一些,但是只针对 webkit 内核的浏览器才有效。
div模拟textarea
1 | <html lang="en"> |