Blogger Information
Blog 16
fans 0
comment 1
visits 17016
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
em的原理与实现
半生
Original
1238 people have browsed it

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>

  • 效果图

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:咱们在em上花了不少时间, 其实是值得的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post