zoukankan      html  css  js  c++  java
  • CSS 盒子模型

    简述

      CSS的盒子模型本质上就是一个用于装html元素的盒子,它包括:边框、外边距、内边距和实际内容。

      •border——边框

      •content——内容

      •padding——内边距

      •margin——外边距

    边框

      border可以设置元素的边框,边框有三大部分组成:边框宽度、边框样式、边框颜色

       border-style用于定义边框样式,有如下几个值:

       需要记住的是solid实线边框,none无边框,dashed虚线边框,dotted点边框。

       需要注意的是边框会影响盒子实际的大小,边框会增加盒子的大小。

    内边距

      padding属性用于设置内边距,即边框与内容之间的距离。

      边距的单位是px,理解起来也非常简单,这里不详细讲。

      针对这四个属性,我们同样也有复合写法:

      我们主要记住四个属性值是上右下左顺时针,还有一个值是全部统一两种写法。

      我们还需注意的是内边距也会影响盒子的大小,例如内边距是20,则盒子的上下左右也会增加20的大小,也就是说内边距会撑大盒子。

    外边距

    简述

      margin用于设置盒子之间的外边距,即控制盒子与盒子之间的距离。

      同样margin可以有四个属性对应上下左右:

       例如现在我们有两个div盒子

      我们现在可以给第一个盒子设置下边距,或者给第二个盒子设置上边距,这两种操作都可以给盒子之间空出间隙。

      同样,margin也有简写方式,其简写方式和padding相同,这里就不赘述了。

      需要注意的是很多网页元素都有自带的内外边距,而且不同浏览器的不一样,因此在布局前,我们可以清除一下内外边距。

      我们用一个最暴力的同配符选择器来完成这件事情

    外边距让盒子水平居中

      外边距可以让块级盒子水平居中,我们首先要指定盒子的宽度,然后把盒子的左右外边距指定为auto,这样就能实现盒子的水平居中了。

       开发中我们喜欢使用这种写法

       这种的写法的意思是上下的外边距是0,左右是auto

    外边距合并

      使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。

      主要有两种情况:1.相邻块元素垂直外边距的合并 2.嵌套块元素垂直外边距的塌陷

    垂直外边距合并

      例如我们现在有两个div,给上面那个设置下边距为100,给下面那个设置上边距为200

      我们两个div的外边距理应是300,但实际情况是200

       那是因为他们垂直间距取了最大值200,这种现象称之为垂直外边距的合并。所以我们习惯给每一个盒子设置一个外边距,比如给每一个盒子设置一个上边距,下边距位0,那么垂直上每两个盒子的外边距就是固定值了。

    嵌套块元素的崩塌

      对于两个嵌套关系的块元素,父元素上边有外边距的同时子元素也有上边距,此时父元素会坍塌较大的外边距值。

      例如现在我们有两个div属嵌套关系,我们给父亲设置50px的上边距,给儿子设置100px的上边距。

       我们预想的场景应该位父盒子距上方50,小盒子在大盒子内距离大盒子上方100,但实际情况是

      这就是因为父元素和子元素的外边距合并了,形成了一个外边距,该外边距的距离取较大那个

    坍塌的解决方案

      •可以为父元素定义上边框

      一旦为父元素定义了上边框,子元素就会根据这个上边框设置外边距

      •可以为父元素定义内边距

      一旦为父元素指定了内边距,子元素也会往下挪

      •可以为父元素添overflow: hidden

     

      

      

      

       

  • 相关阅读:
    MYSQL5.7.11安装问题
    Controllerizing the ScrollViewer Thumbnail
    WPF Tutorial
    How to properly release Excel COM objects
    How to detect and avoid memory and resources leaks in .NET applications
    [Forward]Ten Caching Mistakes that Break your App
    Process.StandardOutput
    .NET Framework posters with Namespaces & Types
    【转】常用 Microsoft .NET Framework 各版本下載網址列表
    6 ways to import data into SQL Server
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13904052.html
Copyright © 2011-2022 走看看