这是我的第一篇博客,记录我的css自学心得!

css-盒子模型学习心得

写在前面:

    这是我的第一篇博客心得,希望能对你们有用,由于知识有限,有错误的地方还请指正,定感激不尽!下面,言归正传,一大波干货正朝你而来。

 

css盒子模型的创建

    一个盒子包括四个区域:

      1、内容区(content)

      2、内边距(padding)   

      3、边框(border)

      4、外边距(margin)

 盒子模型直接上图了,四个区域已经很清晰就不过多解释了。

 

 

 创建一个简单的盒子模型,我一般都是这样写的:

 

盒子模型中常见的几类问题以及解决方案

(一)两个或多个毗邻的普通流中的块元素垂直方向上的 margin 折叠问题

 

   解决方案:   

        1.浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠(注意这里指的是上下相邻的元素)。

     2.
创建了块级格式化上下文的元素,不和它的子元素发生 margin 折叠(注意这里指的是创建了BFC的元素和它的子元素不会发生折叠)。

 

简单的来说就是开启BFC(Block Formatting Content),触发的直接做法是:

 1.设置元素浮动。

  2.overflow不为visible。
  3.display设为‘inline-block’。
  4. position既不是static也不是relative。
  5. zoom:1, IE的hasLayout特性会建立一个新的block formatting context。

 

直接上图了,我一般都是这样写的:

       

     

(二)高度塌陷问题

    首先得说下什么是高度塌陷?

          在文档流中,父元素的高度默认是被子元素撑开的。当子元素被设置浮动后,其脱离文档流,使父元素出现高度塌陷,导致整个页面布局混乱。

    解决方案:

     1.可用clear属性来清除其他元素对当前元素的影响

           clear属性的可选值有:

                     none:默认值,不清除浮动。

                     left:清除左侧元素的浮动对当前元素的影响。

                     right:清除右侧元素的浮动对当前元素的影响。

                     both:清除两侧元素的浮动对当前元素的影响。

        注意:clear只适用于兄弟元素之间

直接上图:

高度塌陷之前及运行画面:

 

设置子元素浮动后及运行画面:

  

可见已经出现了高度塌陷

现在分别采用三种方案进行处理:

第一种方案:用clear属性,将其设置成可选值中的both

 

代码和效果图如下:

 

 

第二种方案:可以在高度塌陷的父元素最后,添加一个空白的块元素,由于这个块元素并没有浮动,故其可撑起父元素高度。然后再对其进行清除浮动。基本没有副作用,有一个带来的小问题就是:会在页面中添加多余的结构。

代码和效果图如下:与第一种方案的的代码和效果图是相同的,这里将不再重复。

 

第三种方案:可通过after伪类向元素的最后添加一个空白的块元素,然后对其进行清除浮动。这种方法是几乎没有副作用的,推荐使用。

 

代码和效果图如下:

 

总结

   第一次写博客,还是花了很多时间也很认真的在写。如果以后在遇到问题,解决以后我还会来分享的,希望这些分享对那些初步开始学习css&html的同学有些帮助。喜欢的话,就给个赞吧!作为奖励,我以后会经常分享一些干货的。

 

更多精彩内容请关注公众号:干货分享录

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sustyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值