博客列表 >em,rem,px的使用和简单手机页面布局

em,rem,px的使用和简单手机页面布局

ccc9112020
ccc9112020原创
2020年10月25日 18:53:291137浏览
  1. em,rem,px
    em和rem是响应式布局常用单位。em是以本元素fontsize作为基准的单位。或者说em是font-size的别名或者是引用。常用于padding,margin,border-radius等的样式单位设置,使得布局和字号对应。rem是以根元素字号为基准的设置单位。常用于字体设置。em和rem理论上可以使用的范围都是一样的,但是em是当前元素字号的别名,rem是根元素字号的别名,所以导致了实际使用场合的不同。字号如果会用em 很容易会导致字号不可预测,从而导致布局混乱。rem一般用于字号设置。px 是作为border的设置单位,因为border只需要固定宽度就可以了。
    • 实例演示
      html代码
      1. <div class="box">
      2. <h2>胡锡进:台当局两次否认美军机飞越台湾的消息,因为他们真怕了</h2>
      3. <p>
      4. 台湾民进党当局的“谋独”路线已经走进死胡同。大陆方面近来几乎天天都有军事准备行动在台海地区进行,对台当局前所未有的高压态势已经形成,后者其实已成惊弓之鸟。台当局两次否认美军机飞越台湾的消息,这在过去不可思议。因为他们真怕了
      5. </p>
      6. </div>
      css代码
      1. /* @media:媒体查询,可以根据屏幕像素设置属性,注意and和()需要空格隔开 */
      2. @media screen and (min-width: 600px) {
      3. :root {
      4. /* root中如果设置字号用em,就是以默认的用户代理也就是浏览器设置的16px作为基准,也就是10px,但是浏览器很多时候默认设置显示字号不小于12px以保障视觉效果,这不影响基准字号的生效 */
      5. font-size: 0.625em;
      6. }
      7. }
      8. @media screen and (min-width: 800px) {
      9. :root {
      10. /* root中如果设置字号用em,就是以默认的用户代理也就是浏览器设置的16px作为基准,也就是10px,但是浏览器很多时候默认设置显示字号不小于12px以保障视觉效果,这不影响基准字号的生效 */
      11. font-size: 0.875em;
      12. }
      13. }
      14. @media screen and (min-width: 1000px) {
      15. :root {
      16. /* root中如果设置字号用em,就是以默认的用户代理也就是浏览器设置的16px作为基准,也就是10px,但是浏览器很多时候默认设置显示字号不小于12px以保障视觉效果,这不影响基准字号的生效 */
      17. font-size: 1em;
      18. }
      19. }
      20. .box {
      21. width: 50em;
      22. height: 10em;
      23. overflow: auto;
      24. margin: auto;
      25. padding: 0.5em;
      26. background-color: rgb(235, 225, 225);
      27. border: 1px solid rgb(53, 37, 37);
      28. border-radius: 0.5em;
      29. }
      30. .box h2 {
      31. font-size: 1.2rem;
      32. line-height: 1.5em;
      33. margin: 0;
      34. }
      35. .box p {
      36. font-size: 1rem;
      37. line-height: 1.5em;
      38. text-indent: 2em;
      39. }
      em,rem,px演示
  2. 简单手机页面布局
    vw,vh写的手机简单页面布局

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>20201021作业:简单手机页面布局</title>
    7. <style>
    8. /* 样式重置 */
    9. * {
    10. margin: 0;
    11. padding: 0;
    12. }
    13. .header {
    14. height: 30vh;
    15. background-color: lightblue;
    16. text-align: center;
    17. line-height: 30vh;
    18. /* vertical-align定义行内元素的基线相对于该元素所在行的基线的垂直对齐,或者是表格设置。此处需要配合上面的line-height使用 */
    19. vertical-align: middle;
    20. }
    21. .main {
    22. height: 60vh;
    23. background-color: lightcoral;
    24. display: flex;
    25. align-items: center;
    26. /* flex布局下text-align不生效?或者是需要看flex方向?justify-content可以实现水平居中 */
    27. text-align: center;
    28. justify-content: center;
    29. }
    30. .footer {
    31. height: 10vh;
    32. background-color: lightgrey;
    33. position: relative;
    34. }
    35. .footer > p {
    36. /* 此处text-align不生效 */
    37. text-align: center;
    38. position: absolute;
    39. top: 50%;
    40. left: 50%;
    41. /* 需要相对于自身偏移50% */
    42. transform: translate(-50%, -50%);
    43. }
    44. /* */
    45. </style>
    46. </head>
    47. <body>
    48. <header class="header">手机页面头部</header>
    49. <main class="main">手机页面主体</main>
    50. <footer class="footer"><p>手机页面页脚</p></footer>
    51. </body>
    52. </html>

    实际效果:
    手机页面布局

    以上演示几种居中方案,更多方案参考10月22日课程或者是其他网址,譬如: 实现css文字垂直居中的8种方法

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议