响应式所具有的特点

1,网页的宽度可以自己调整
2,尽量少用绝对宽度,px就是绝对宽度
3,字体要使用rem,em作为单位
4,布局要是使用浮动,弹性布局

媒体查询

@media
根据一个或多个基于设备类型,具体特点和环境来应用样式。
1,媒体类型
2,媒体特性
3,逻辑运算符
参考文档:https://drafts.csswg.org/mediaqueries/
@规则补充
@chartset 定义编码
@import 引入css文件(css模块化)
@font-face 自定义字体
@keyframes animation里的关键帧
@media 媒体查询

媒体查询引入方式

1,link的方式引入

  1. <link rel="stylesheet" media="screen and (max-width: 375px)" href="index.css">

2,css样式的方式引入

  1. @media screen and (max-width: 375px){
  2. html, body {
  3. width: 100%;
  4. height: 100%;
  5. background-color: red;
  6. }
  7. }

3,@import的方式引入

  1. @import 'index.css' screen and (max-width: 375px);

1,媒体类型

all 所有设备
print 打印机设备
screen 彩色的电脑屏幕
speech 听觉设备(针对有视力障碍的人士)
注意:tty、tv、projection、handheld、braille、embossed、aural等几种类型在媒体查询4中已经废弃

2,媒体特性

width 宽度
max-width 最大宽度,宽度只能比他小
min-width 最小宽的,宽度只能比他大
height 高度
max-height 最大高度,高度只能比他小
min-height 最小高度,高度只能比他大
orientation 方向
landscape 横屏(宽度大于高度)
portrait 高度(高度大于宽度)
aspect-ratio 宽度比
-webkit-device-pixel-ratio 像素比(webkit内核私有属性)

3,逻辑运算符

逻辑运算符 用来做条件判断
and 合并多个媒体查询(并且的意思)
, 匹配某个媒体查询(或者的意思)
not 对媒体查询结果取反
only 仅在媒体查询匹配成功后应用样式(防范老旧浏览器),
当旧版浏览器不支持时,会直接解析内部样式, 使用only
当浏览器不支持时,不会解析此代码

demo

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. body{
  8. margin: 0;
  9. }
  10. div{
  11. width: 100px;
  12. height: 100px;
  13. background: green;
  14. float: left;
  15. border: 1px solid #000;
  16. box-sizing: border-box;
  17. }
  18. /* <400,显示1个 */
  19. @media all and (max-width:400px){
  20. div{
  21. width: 100%;
  22. }
  23. }
  24. /* 400-600,显示2个 */
  25. @media all and (min-width:400px){
  26. div{
  27. width: 50%;
  28. }
  29. }
  30. /* 600-800,显示3个 */
  31. @media all and (min-width:600px){
  32. div{
  33. width:33.3%;
  34. }
  35. }
  36. /* 800-1000,显示4个 */
  37. @media all and (min-width:800px){
  38. div{
  39. width:25%;
  40. }
  41. }
  42. /* 1000以上,显示5个 */
  43. @media all and (min-width:1000px){
  44. div{
  45. width: 20%;
  46. }
  47. }
  48. </style>
  49. </head>
  50. <body>
  51. <div>1</div>
  52. <div>2</div>
  53. <div>3</div>
  54. <div>4</div>
  55. <div>5</div>
  56. </body>
  57. </html>