博客列表 >盒模型属性演示和em演示案例

盒模型属性演示和em演示案例

ccc9112020
ccc9112020原创
2020年10月20日 23:16:32789浏览
  1. 盒模型常用属性演示

    盒模型分为border-box和content-box.content-box为默认盒模型。实际使用场景我还没有很多接触。所以引用CSDN的经验来讲述一下。
    border-box和content-box最直观的区别和解释【不理解包赔】

    我更喜欢用border-box,因为border-box更灵活一点,举个例子,我在业务中遇到一个问题,我的商品详情页的一个盒子是高度自适应的,为146px,但是在ie8浏览器上显示为146.8px,如何解决,如果对盒子设置height:146px;则会出现被撑高的情况,因为box-sizing默认为content-box,你给元素设置宽高,只是给元素内容设置宽高,你元素的总高度是heigtht + border + padding所以就会出现撑高,解决方法就是给当前的盒子设置box-sizing: border-box这样你设置高度为146px时,会默然将元素内容的高度进行相应减少来保证整体高度为146px,这个最大的好处就是你这个盒子有好几个,而且有不同的padding和border值,解决这个的最好的方法就是给盒子设置border-box。

    下面演示一下盒模型常用属性。

    html代码:

    1. <div class="box1">
    2. <h3>border-box盒模型演示(chrome)</h3>
    3. border-width:300px*300px=273+10+10+2+5;<br />
    4. content:273px*281px; <br />
    5. padding:5px 10px 10px 10px;(上右下左) <br />
    6. border:2px 2px 2px 5px;(上右下左)
    7. <br />
    8. margin:10px 5px 10px 5px;(上右下左)
    9. <br />
    10. </div>
    11. <div class="box2">
    12. <h3>默认盒模型演示(content-box)(chrome)</h3>
    13. border-width:300px*300px+30+30+5+5=370px;<br />
    14. content:300px*300px; <br />
    15. padding:30px;(上右下左) <br />
    16. border:5px;(上右下左)
    17. <br />
    18. margin:20px;(上右下左)
    19. <br />
    20. </div>
    21. <div class="box3">content-box盒模型演示</div>
    22. <div class="box4">默认盒模型演示padding无样式</div>
    23. </body>

    css代码:

    1. .box1 {
    2. /* border-box的width,height等于border+padding+ content width/height */
    3. box-sizing: border-box;
    4. width: 300px;
    5. height: 300px;
    6. /* 内边距padding和外边距margin都是上右下左定义,在只有3个和两个数字的情况下,第二个都是左右相同的数值 */
    7. /* padding不能设置样式,是透明的,但是会和content一样的背景,可以通过background-clip裁剪 */
    8. padding: 5px 10px 10px;
    9. /* background-clip: content-box; */
    10. background-clip: border-box;
    11. /* margin在任何情况下都不计入width和height */
    12. /* margin在可以为负值,在相邻元素中会折叠,这需要后续课程的讲解 */
    13. margin: 10px 5px;
    14. /* border是border-left,-right,-top,-bottom的复合属性,这些属性又是width,style,color的复合属性 */
    15. border: 2px solid red;
    16. border-left: 5px dashed green;
    17. border-right-style: dotted;
    18. /* outline不属于盒模型 */
    19. outline: 1px;
    20. background-color: ivory;
    21. }
    22. .box2 {
    23. width: 300px;
    24. height: 300px;
    25. background-color: lightblue;
    26. padding: 30px;
    27. margin: 20px;
    28. border: 5px solid red;
    29. }
    30. .box3 {
    31. box-sizing: content-box;
    32. width: 300px;
    33. height: 300px;
    34. background-color: lightgreen;
    35. padding: 30px;
    36. margin: 20px;
    37. border: 5px solid red;
    38. }
    39. .box4 {
    40. font-size: 2em;
    41. width: 300px;
    42. height: 300px;
    43. background-color: lightpink;
    44. background-clip: content-box;
    45. padding: 30px;
    46. margin: 20px;
    47. border: 5px solid red;
    48. }

    效果(chrome浏览器):
    border-box:
    border-box
    content-box:
    content-box

    content-boxpadding无样式

  2. em的意义和案例
    emrem是响应式布局的常用单位,这里先介绍em
    em以当前元素的font-size字号为基准,1em就是当前字号。这样可以在不同的屏幕大小里面保持相同的布局。

    • 案例

      html代码:

      1. <h1>em演示</h1>
      2. <div class="box1">小盒子</div>
      3. <div class="box2">中盒子</div>
      4. <div class="box3">大盒子</div>

      css代码:

      1. :root {
      2. font-size: 10px;
      3. }
      4. .box1 {
      5. font-size: 1em;
      6. box-sizing: border-box;
      7. width: 20em;
      8. height: 15em;
      9. background-color: lightpink;
      10. }
      11. .box2 {
      12. font-size: 2em;
      13. box-sizing: border-box;
      14. width: 20em;
      15. height: 15em;
      16. background-color: lightseagreen;
      17. }
      18. .box3 {
      19. font-size: 30px;
      20. box-sizing: border-box;
      21. width: 20em;
      22. height: 15em;
      23. background-color: lightgoldenrodyellow;
      24. }
      25. .box1:hover {
      26. font-size: 2em;
      27. background-color: lightgreen;
      28. transition: 2s;
      29. }

      效果:
      初始:

      鼠标悬停后:

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