CSS_像素&视口&媒体查询(响应式布局)

电玩女神 2023-10-06 17:00 92阅读 0赞

像素

  1. 像素:
  2. -屏幕是由一个一个发光的小点构成,这一个个的小点就是像素
  3. -分辨率: 1920 x 1080说的就是屏幕中小点的数量
  4. -在前端开发中像素要分成两种情况讨论: CSS像素 和物理像素
  5. -物理像素,上述所说的小点点就属于物理像素
  6. -css像素,编写网页时,我们所用像素都是css像素
  7. -浏览器在显示网页时,需要将Css像素转换为物理像素然后再呈现
  8. -一个css像素最终由几个物理像素显示,由浏览器决定:
  9. -默认情况下在pc端,一个css像素等于一个物理像素

手机像素

  1. 在不同的屏幕,单位像素的大小是不同的,像素越小屏幕会越清晰
  2. 241920x1080
  3. i6 4.7750 x 1334
  4. 智能手机的像素点远远小于计算机的像素点
  5. 问题:一个宽度为900px的网页在iphone6中要如何显示呢?
  6. -默认情况下,移动端的网页都会将视口设置为980像素(css像素 ),以确保pc端网页可以在移动端正常访问,但是如果网页的宽度超过了980,移动端的浏览器会自动对网页缩放以完整显示网页
  7. https://material.io/resources/devices/
  8. 所以基本大部分的pc端网站都可以在移动端中正常浏览,但是往往都不会有一个好的体验
  9. 为了解决这个问题,需要为移动端专门设置网页

视口

  1. 视口(viewport)
  2. 视口就是屏幕中用来显示网页的区域
  3. 可以通过查看视口的大小,来观察cSsS像素和物理像素的比值
  4. 默认情况下:
  5. 视口宽度1920px (CSS像素)
  6. 1920px (物理像素)
  7. 此时,css像素和物理像素的比是1:1
  8. 放大两倍的情况:
  9. 视口宽度960px (CSS像素)
  10. 1920px (物理像素)
  11. 此时,css像素 和物理像素的比是1:2
  12. -我们可以通过改变视口的大小,来改变CSS像素和物理像素的比值

完美视口

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <!-- 设置视口大小 device-width完美视口-->
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Document</title>
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. }
  14. box1 {
  15. width: 100px;
  16. height: 100px;
  17. background-color: red;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <!--
  23. 移动端默认的视口大小是980px(css像素),
  24. 默认情况下,移动端的像素比就是980/移动端宽度 (980/750)
  25. 如果我们直接在网页中编写移动端代码,这样在980的视口下,像素比是非常不好,
  26. 导致网页中的内容非常非常的小
  27. 编写移动页面时,必须要确保有一个比较合理的像素比:
  28. 1css像素对应2个物理像素
  29. 1css像素对应3个物理像素
  30. -可以通过meta标签来设置视口大小
  31. -->
  32. <div class="box1"></div>
  33. </body>
  34. </html>

vm

(在移动端开发时,就不能再使用px来进行布局了)
vw表示的是视口的宽度(viewport width)
100vw =一个视口的宽度
1vw = 1%视口宽度

  1. vw这个单位永远相当于视口宽度进行计算
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Document</title>
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. }
  14. .box1 {
  15. width: 100vw;
  16. height: 100px;
  17. background-color: #bfa;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <!--
  23. 不同的设备完美视口的大小是不一样的
  24. iphone6 -- 375
  25. iphone6plus -- 414
  26. 由于不同设备视口和像素比不同,所以同样的375个像素在不同的设备下意义是不一样,
  27. 比如在iphone6375就是全屏,而到了plus375就会缺一块
  28. 所以在移动端开发时,就不能再使用px来进行布局了
  29. vw表示的是视口的宽度(viewport width)
  30. 100vw =一个视口的宽度
  31. 1vw = 1%视口宽度
  32. vw这个单位永远相当于视口宽度进行计算
  33. 设计图的宽度
  34. 750px 1125px
  35. 设计图
  36. 750px
  37. 使用vw作为单位
  38. 100vw
  39. 创建一个48px x 35px大小的元素
  40. 100vw = 750px(设计图的像素)
  41. 100vw = 750px(设计图的像素) 0. 133333333333333vw = 1px
  42. 6.4vw = 48px(设计图像素)
  43. 4.667vw = 35px
  44. -->
  45. <div class="box1">
  46. aa
  47. </div>
  48. </body>
  49. </html>

vm适配

  1. 网页中字体大小最小是12px,不能设置一个比12像素还小的字体
  2. 如果我们设置了一个小于12px的字体,则字体自动设置为12

媒体查询

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. /*
  10. 使用媒体查询
  11. 语法: @media 查询规则{}
  12. 媒体类型:
  13. all所有设备
  14. print打印设备
  15. screen带屏幕设备
  16. speech屏幕阅读器
  17. -可以使用,连接多个媒体类型,这样它们之间就是一个或的关系
  18. 可以在媒体类型前添加一个only,表示只有。
  19. only的使用主要是为了兼容一些老版本浏 览器
  20. */
  21. /* @media print,screen {
  22. body{
  23. background-color: #bfa;
  24. }
  25. } */
  26. @media only print {
  27. body {
  28. background-color: #bfa;
  29. }
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <!-- 响应式布局
  35. -网页可以根据不通的设备或窗口大小呈现出不同的效果
  36. -使用响应式布局,可以使一个网页 适用于所有设备
  37. -响应布局的关键就是媒体查询
  38. -通过媒体查询,可以为不通的设备,或设备不同状态来分别设置样式 -->
  39. </body>
  40. </html>
  41. <!DOCTYPE html>
  42. <html lang="en">
  43. <head>
  44. <meta charset="UTF-8">
  45. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  46. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  47. <title>Document</title>
  48. <style>
  49. /* 媒体特性:
  50. width:视口的宽度
  51. height视口的高度
  52. min-width视口的最小宽度(视口大于指定宽度时生效)
  53. max-width视口的最大宽度(视口小于指定宽度时生效)*/
  54. /* @media (max-width: 500px) {
  55. body {
  56. background-color: #bfa;
  57. } */
  58. /* 样式切换的分界点称为断点
  59. 一般使用的断点
  60. 小于768超小屏幕max-width= 768px
  61. 大于768小屏幕min-width=768px
  62. 大于992中型屏幕min-width=992px
  63. 大于1200 大屏幕min-width=1200px */
  64. /* ,逗号表示或则 */
  65. @media (min-width: 500px),
  66. (max-width: 700px) {
  67. body {
  68. background-color: #bfa;
  69. }
  70. /* and表示且 */
  71. @media (min-width: 500px) and (max-width: 700px) {
  72. body {
  73. background-color: #bfa;
  74. }
  75. /* only */
  76. @media only screen and (min-width: 500px),
  77. (max-width: 700px) {
  78. body {
  79. background-color: #bfa;
  80. }
  81. /* not 除了 */
  82. @media not screen and (min-width: 500px),
  83. (max-width: 700px) {
  84. body {
  85. background-color: #bfa;
  86. }
  87. </style>
  88. </head>
  89. <body>
  90. <div class="box1"></div>
  91. </body>
  92. </html>

发表评论

表情:
评论列表 (有 0 条评论,92人围观)

还没有评论,来说两句吧...

相关阅读