博客列表 >em的原理与实现

em的原理与实现

半生
半生原创
2020年10月24日 17:47:511234浏览

em的原理

  • em:是当前浏览器默认的字号大小,也是根元素root的字号大小。
  • 所以em=16px

  • 用em做一个盒子演示
  • 样式代码如下:
    <style>
    .box {

    1. /* 这里运用ie盒子 */
    2. box-sizing: border-box;
    3. background-color: green;
    4. /* 背景裁切 到内容区*/
    5. /* background-clip: content-box; */
    6. border: 2px solid;
    7. }
    8. .box {
    9. /*当前盒子默认字号 em=16px */
    10. width: 15em;
    11. height: 15em;
    12. padding: 2em;
    13. /* 边框设置圆角属性 */
    14. border-radius: 1em;
    15. }

</style>

  • 效果图

  • 因为字号大小(font-size)具有继承性,所以当我们自定义了字号大小时,此时em就不再继承于浏览器或root(根)元素的字号大小,而会直接继承我们自定义的字号大小(font-size)。
  • 示例代码
    `<style>
    .box {

    1. /* 因为字号具有继承性 */
    2. /* 当这里设置了字体大小:font-size=20px时,
    3. 此时em=20px, */
    4. font-size: 20px;
    5. width: 15em;
    6. height: 15em;
    7. padding: 2em;
    8. /* 边框圆角设置 */
    9. border-radius: 1em;
    10. }

    </style>`

  • 效果图


总结

  • em:始终与当前元素字号绑定,只要改变当前这个字号就可以动态的改变依赖于它的所有属性,例如,padding等
  • font-size:这是一个可继承的属性,所以可以在子元素中直接继承它

小案例

  • 用em制作一个简单的页面布局图
  • 代码如下

    `<style>

    1. /* 添加点基本样式 */
    2. .header {
    3. color: white;
    4. padding: 1em 2em;
    5. margin: 2em;
    6. background-color: green;
    7. /* 设置边框圆角 */
    8. border-radius: 1em;
    9. /* 去掉边框 */
    10. border: none;
    11. /* 去掉轮廓 */
    12. outline: none;
    13. }
    14. .main {
    15. color: white;
    16. padding: 5em 10em;
    17. margin: 2em;
    18. background-color: green;
    19. /* 去掉边框 */
    20. border: none;
    21. /* 去掉轮廓 */
    22. outline: none;
    23. }
    24. .footer {
    25. color: white;
    26. padding: 1em 2em;
    27. margin: 2em;
    28. background-color: green;
    29. /* 设置边框圆角 */
    30. border-radius: 1em;
    31. /* 去掉边框 */
    32. border: none;
    33. /* 去掉轮廓 */
    34. outline: none;
    35. }
    36. /* 添加悬停效果 */
    37. .body:hover {
    38. /* 透明度 */
    39. opacity: 0.5;
    40. /* 光标样式 */
    41. cursor: pointer;
    42. transition: 0.5s;
    43. /* 阴影效果 */
    44. box-shadow: 0 0 3px yellow;
    45. }
    46. /* 只要改变当前元素的字号,就可以动态的改变所有依赖于这个字号的其他属性了 */
    47. /* 例如:width,height,border-radius */
    48. .small {
    49. font-size: 15px;
    50. }
    51. .medium {
    52. font-size: 20px;
    53. }
    54. .large {
    55. font-size: 25px;
    56. }

    </style>
    </head>
    <body>
    <div class="header medium">页眉</div>
    <div class="main large">主体</div>
    <div class="footer small">页脚</div>
    </body>
    </html>

  • 效果图

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