lovebet下载深刻理解CSS中之margin深入理解CSS中的margin

1.css margin得变更容器的尺寸
  元素尺寸
  可视尺寸–标准盒子模型中盒子的幅度是勿包括margin值的,clientWidth
  占据尺寸–包括margin的宽
outWidth不以正规里,jquery中生出相对应的计

1.css margin得变动容器的尺寸
  元素尺寸
  可视尺寸–标准盒子模型中盒子的小幅是休包括margin值的,clientWidth
  占据尺寸–包括margin的幅度
outWidth不以正式里,jquery中生出相对应之主意

  margin与可视尺寸
    1.1运十分与无设定width/height的普通block水平元素
    2.2止适用于水平方向尺寸
    <body style=”background-color:#1a2b3c”>
      <div style=”border:4px 6px; background-color:blue”>
        文字<br />
        文字<br />
      </div>
    </body>
    当改变margin值时盒子的宽度会变动。

  margin与可视尺寸
    1.1采取好与无设定width/height的普通block水平元素
    2.2单单适用于水平方向尺寸
    <body style=”background-color:#1a2b3c”>
      <div style=”border:4px 6px; background-color:blue”>
        文字<br />
        文字<br />
      </div>
    </body>
    当改变margin值时盒子的涨幅会转变。

    应用 :实现一侧定宽的于适应布局
      <img width=”150px” style=”float:left;”>
      <p style=”margin-left:170px”>图片左浮动</p>

    应用 :实现一侧定宽的打适应布局
      <img width=”150px” style=”float:left;”>
      <p style=”margin-left:170px”>图片左浮动</p>

    margin与占用尺寸
    1.block/inline-block档次元素都适用
    2.和从不设定width/height值无关
    3.适用于水平方向及直方向
    例
      <body style=”background-color:#1a2b3c”>
        <img style=”marign-bototm:-50″>
      </body>
    可以看来容器占据的尺码变多少了。
    利用这同一特性
    滚动容器内及下留白
      <div style=”height:100px; padding:50px 0;”>
        <img height=”300″>
      </div>
    里面盒子撑起来外面盒子显示滚动条,当然就在非chrome浏览器中凡从未留白效果的(上面有脚没有)。
    正确的做法是
    <div style=”height:100px; “>
      <img height=”300″ style=”marign:50px 0″>
    </div>

    margin与占用尺寸
    1.block/inline-block品位元素都适用
    2.与没有设定width/height值无关
    3.适用于水平方向及直方向
    例
      <body style=”background-color:#1a2b3c”>
        <img style=”marign-bototm:-50″>
      </body>
    可以观看容器占据的尺码变多少了。
    利用这同特征
    滚动容器内及下留白
      <div style=”height:100px; padding:50px 0;”>
        <img height=”300″>
      </div>
    里面盒子撑起来外面盒子显示滚动条,当然就当非chrome浏览器中凡是未曾留白效果的(上面来下面没有)。
    正确的做法是
    <div style=”height:100px; “>
      <img height=”300″ style=”marign:50px 0″>
    </div>

亚言辞:css margin与比例单位——了解margin百分比单位
      水平方向百分比/垂直方向百分比
      普通元素百分比/绝对元素百分比

亚言:css margin与比例单位——了解margin百分比单位
      水平方向百分比/垂直方向百分比
      普通元素百分比/绝对元素百分比

      百分比margin的计算规则
        img{margin :10%;with:600px;heigth:200px;}
      普通元素的百分比margin都是对立于容器的宽度计算的!所以这里的margin:10%;—->top:60px,left:60px;都是相对与容器的肥瘦来测算的。

      百分比margin的计算规则
        img{margin :10%;with:600px;heigth:200px;}
      普通元素的百分比margin都是相对于容器的升幅计算的!所以这边的margin:10%;—->top:60px,left:60px;都是对立与容器的宽度来测算的。

      绝对定位元素的百分比margin
        img{margin:10%; position:absolute;}
      绝对元素的百分比margin是相对与第一单固定元素的祖先元素具有(relative/absolute/fixed)的增幅计算的。普通元素的凡对立与父元素的来测算的。
        <div style=”width:1024px;height:200px;
position:relative;”>
          <div style=”width:600px; height:200px”>
           <img style=”margin:10%;position:absolute;”
/>

      绝对定位元素的百分比margin
        img{margin:10%; position:absolute;}
      绝对元素的百分比margin凡相对与第一单固定元素的先世元素具有(relative/absolute/fixed)的宽计算的。普通元素的是对立与父元素的来计算的。
        <div style=”width:1024px;height:200px;
position:relative;”>
          <div style=”width:600px; height:200px”>
           <img style=”margin:10%;position:absolute;”
/>

          </div>
        </div>
      利用特色
        宽高2:1由适应矩形
          .box{background-color:olive; overflow:hidden;}
          .box > div{margin:50%}
        这里还干一个单单是点就算是margin重叠。这里安装overflow
也是为防止margin重叠

          </div>
        </div>
      利用特色
        宽高2:1由适应矩形
          .box{background-color:olive; overflow:hidden;}
          .box > div{margin:50%}
        这里尚波及一个只是是触发即是margin重叠。这里安装overflow
也是坐防止margin重叠

其三谈 margin重叠通常特性
  1.block水平元素(不包float和absolute元素)
  2.非考虑writing-mode(文字书写方向是打上及下的),只发在笔直方向的(margin-top/margin-bottom)

老三话 margin重叠通常特性
  1.block程度元素(不包括float和absolute元素)
  2.不考虑writing-mode(文字书写方向是打达到至下之),只生在直方向的(margin-top/margin-bottom)

  margin重叠3种情境
    1.相邻的哥们元素
      p{line-height:2em;margin:1em 0;background:#f0f3f9;}
        <p>第一行</p>
        <p>第二行</p>
      这里虽会发出margin重叠了
    2.父级和率先个/最后一个子元素
      .father{background:#f0f3f9}
      <div class=”father”>
        <div class=”son”
style=”margin-top:80px;”>son</div>
      </div>
      给子第一只或最后一个子元素设置margin等同于给父元素设置同一之margin值,子元素相同margin,子元素和父元素一样的margin值
    3.空的block元素
      .father{background:#f0f3f9}
      <div class=”father”>
        <div class=”son”></div>
      </div>
      这里son的莫大只有出1em,不是2em
      空block元素margin重叠其他规格
        1.元素未曾border设置
        2.元素没有padding值
        3.里边没inline元素
        4.没有height,或者min-height

  margin重叠3种情境
    1.相邻的哥们元素
      p{line-height:2em;margin:1em 0;background:#f0f3f9;}
        <p>第一行</p>
        <p>第二行</p>
      这里虽会有margin重叠了
    2.父级和率先独/最后一个子元素
      .father{background:#f0f3f9}
      <div class=”father”>
        <div class=”son”
style=”margin-top:80px;”>son</div>
      </div>
      给子第一单或最后一个子元素设置margin等同于让父元素设置同样的margin值,子元素相同margin,子元素和父元素一样的margin值
    3.空的block元素
      .father{background:#f0f3f9}
      <div class=”father”>
        <div class=”son”></div>
      </div>
      这里son的冲天只有出1em,不是2em
      空block元素margin重叠其他标准化
        1.元素从未有过border设置
        2.元素没有padding值
        3.中没有inline元素
        4.没有height,或者min-height

      margin-top重叠
        1.1父元素非块状格式化上下文元素
        1.2父元素没有border-top设置
        1.3父元素没有padding-top值
        1.4父元素和率先独子元素之间莫inline元素分隔

      margin-top重叠
        1.1父元素非块状格式化上下文元素
        1.2父元素没有border-top设置
        1.3父元素没有padding-top值
        1.4父元素和第一个子元素之间莫inline元素分隔

      margin-bottom重叠
        1.1父元素非块状格式化上下文元素
        1.2父元素没有border-bottom设置
        1.3父元素没有padding-bottom值
        1.4父元素和结尾一个子元素之间莫inline元素分隔
        1.5父元素没有height,min-height,max-height限制
      干掉margin-top重叠
        .father{background:#f0f3f9}
        <div class=”father”>
          <div class=”son”
style=”margin-top:80px;”>son</div>
        </div>
      1.父元素非块状格式化上下文元素 .father:overflow:hidden;
      2.父元素没有border-top设置
        .father:border:4px solid #ccc;
      3.父元素没有padding-top值
      4.父元素和第一个子元素之间从来不inline元素分隔
        <div class=”father”> 
          <div class=”son”
style=”margin-top:80px;”>son</div>
        </div>
        干掉margin-bottom重叠
        前面四只同margin-top一样,
          <div class=”father”
style=”height:100px”> 
            <div class=”son”
style=”margin-top:80px;”>son</div>
          </div>

      margin-bottom重叠
        1.1父元素非块状格式化上下文元素
        1.2父元素没有border-bottom设置
        1.3父元素没有padding-bottom值
        1.4父元素和最后一个子元素之间莫inline元素分隔
        1.5父元素没有height,min-height,max-height限制
      干掉margin-top重叠
        .father{background:#f0f3f9}
        <div class=”father”>
          <div class=”son”
style=”margin-top:80px;”>son</div>
        </div>
      1.父元素非块状格式化上下文元素 .father:overflow:hidden;
      2.父元素没有border-top设置
        .father:border:4px solid #ccc;
      3.父元素没有padding-top值
      4.父元素和第一只子元素之间从未inline元素分隔
        <div class=”father”> 
          <div class=”son”
style=”margin-top:80px;”>son</div>
        </div>
        干掉margin-bottom重叠
        前面四个和margin-top一样,
          <div class=”father”
style=”height:100px”> 
            <div class=”son”
style=”margin-top:80px;”>son</div>
          </div>

    margin重叠的计算规则
      1.正正取大值
        .a{margin-bottom:50px;}
        .b{margin-top:20px;}
        <div class=”a”></div>
        <div class=”b”></div>

    margin重叠的盘算规则
      1.正正取大值
        .a{margin-bottom:50px;}
        .b{margin-top:20px;}
        <div class=”a”></div>
        <div class=”b”></div>

          .father{margin-top:20px;}
          .son{margin-top:50px;}
      <div class=”father”>
        <div class=”son”></div>
      </div>

          .father{margin-top:20px;}
          .son{margin-top:50px;}
      <div class=”father”>
        <div class=”son”></div>
      </div>

      .a{margin-top:20px;margin-bottom:50px}
      <div class=”a”></div>

      .a{margin-top:20px;margin-bottom:50px}
      <div class=”a”></div>

      上面的结果还是margin:50px;
    2.正要负值相加
      .a{margin-bottom:50px;}
      .b{margin-top:-20px;}
      <div class=”a”></div>
      <div class=”b”></div>

      上面的结果还是margin:50px;
    2.正好负值相加
      .a{margin-bottom:50px;}
      .b{margin-top:-20px;}
      <div class=”a”></div>
      <div class=”b”></div>

      .father{margin-top:-20px;}
      .son{margin-top:50px;}
      <div class=”father”>
        <div class=”son”></div>
      </div>

      .father{margin-top:-20px;}
      .son{margin-top:50px;}
      <div class=”father”>
        <div class=”son”></div>
      </div>

      .a{margin-top:-20px;margin-bottom:50px}
      <div class=”a”></div>
      上面的结果尚且是30px
  3.负负最负值
    .a{margin-bottom:-50px;}
    .b{margin-top:-20px;}
    <div class=”a”></div>
    <div class=”b”></div>

      .a{margin-top:-20px;margin-bottom:50px}
      <div class=”a”></div>
      上面的结果还是30px
  3.负负最负值
    .a{margin-bottom:-50px;}
    .b{margin-top:-20px;}
    <div class=”a”></div>
    <div class=”b”></div>

    .father{margin-top:-20px;}
    .son{margin-top:-50px;}
    <div class=”father”>
      <div class=”son”></div>
    </div>

    .father{margin-top:-20px;}
    .son{margin-top:-50px;}
    <div class=”father”>
      <div class=”son”></div>
    </div>

    .a{margin-top:-20px;margin-bottom:-50px}
    <div class=”a”></div>
    上面的结果还是-50px
    margin重叠的义是?
    网页诞生之初…………只是排版文字布局用,没有今天这么复杂。
      1.一连段落或列表之类,如果没有margin重叠首尾项间距会和其它兄弟标签1:2关系,排版不自;
      2.web受另外地方嵌套或直接放入任何裸div都无见面影响原本的布局
      3.丢失的空人一个p元素,不要影响原本的开卷排版

    .a{margin-top:-20px;margin-bottom:-50px}
    <div class=”a”></div>
    上面的结果都是-50px
    margin重叠的义是?
    网页诞生的新…………只是排版文字布局用,没有今天如此复杂。
      1.连段落或列表之类,如果没有margin重叠首尾项间距会和其它兄弟标签1:2干,排版不自然;
      2.web遭另外地方嵌套或直接放入任何裸div都未会见潜移默化原本的布局
      3.掉的空人一个p元素,不要影响原本的阅读排版

    实践:
      善用margin重叠
        .list{margin-top:15px;}
      更好贯彻
        .list{
          margin-top:15px;
          margin-bottom:15px;
         }
      更具健壮性,最后一个要素移除或岗位调换,均无见面摔原来的布局。
第4话:理解CSS中的margin:auto
    margin:auto 的机制
    元素有时候,就算没设置width或height,也会活动填写
      div{background:#f0f3f9}

    实践:
      善用margin重叠
        .list{margin-top:15px;}
      更好落实
        .list{
          margin-top:15px;
          margin-bottom:15px;
         }
      更富有健壮性,最后一个因素移除或职务调换,均未见面损坏原来的布局。
第4话:理解CSS中的margin:auto
    margin:auto 的机制
    元素有时候,就算没装width或height,也会自动填写
      div{background:#f0f3f9}

    如果安width或height,自动填写特性即见面被盖
      div{width:500px;background:#f0f3f9;}
      此时的margin值是0px
    如果安值width或height,自动填写特性就是会让埋。

    如果设置width或height,自动填写特性即会于遮住
      div{width:500px;background:#f0f3f9;}
      此时的margin值是0px
    如果安值width或height,自动填写特性就是会被覆盖。

    原来该填的尺码为width/height强制变更,而margin:auto就是为填充这个改变的尺寸设置的;
      div{width:500px;marign-right:100px;margin-left:auto;}

    原来该填的尺码为width/height强制变更,而margin:auto就是为填充这个改变的尺码设置的;
      div{width:500px;marign-right:100px;margin-left:auto;}

    如果干定值,一侧auto,auto为剩下空间尺寸,如果两侧全是auto,则平均剩余空间

    如果干定值,一侧auto,auto为剩下空间尺寸,如果两侧全是auto,则平均剩余空间

    为什么图片img{width:200px;marign:0 auto}不居中
    因为图片是inline水平的,就算没width,也未会见占用整个容器。
    设置img{display:block;width:200px;marign:0 auto;}
    因为这时候图是block水平的,就算没width,也会见占整个容器不可知以一行显示。

    为什么图片img{width:200px;marign:0 auto}不放在中
    因为图片是inline水平的,就算没width,也非会见占据整个容器。
    设置img{display:block;width:200px;marign:0 auto;}
    因为此时图是block水平的,就算没width,也会占据整个容器不克当一行显示。

    为什么明明容器定高,元素定高margin:auto 0 无法垂直居中

    为什么明明容器定高,元素定高margin:auto 0 无法垂直居中

    .father{height:200px;background:#f0f3f9;}
    .son{height:100px; width:500px;margin:auto;}
    水平居中了,垂直不在中。

    .father{height:200px;background:#f0f3f9;}
    .son{height:100px; width:500px;margin:auto;}
    水平在中了,垂直不放在中。

    解释:如果.son没有装height:100px;高度会自动200px高啊?——NO
所以margin谈不达标机关填写充,强制安装宽度高度, 所以是免会见自动填写的。
    注意:水平方向及一旦果实大于父,计算结果也负值的时光吗是勿放在中的。

    解释:如果.son没有装height:100px;高度会自动200px高呢?——NO
所以margin谈不达机关填写充,强制安装宽度高度, 所以是勿会见自动填写的。
    注意:水平方向及如果果实大于父,计算结果也负值的上吧是无放在中的。

    实现垂直方向margin居中
      更改流为垂直方向,实现垂直方向的margin:auto
      writing-mode与直居中(css3)
      .father{height:200px; width:100%;
wiriting-mode:vertical-lr;}
      .son{height:100px;width:500px;margin:auto;}
    absolute与margin居中
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px}
      .son没有width/height,absolute元素自动填写满了容器。

    实现垂直方向margin居中
      更改流为垂直方向,实现垂直方向的margin:auto
      writing-mode与直居中(css3)
      .father{height:200px; width:100%;
wiriting-mode:vertical-lr;}
      .son{height:100px;width:500px;margin:auto;}
    absolute与margin居中
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px}
      .son没有width/height,absolute元素自动填写满了容器。

    当装了width和惊人
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px;width:500px;height:100px;}
    原来关伸铺满现在缩回来了。
      被关伸的半空中设置margin:auto;平均分配就见面落实程度垂直居中了
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px;width:500px;height:100px;margin:auto;}

    当装了width和高度
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px;width:500px;height:100px;}
    原来关伸铺满现在缩回来了。
      被关伸的空间设置margin:auto;平均分配就会见兑现程度垂直居中了
      .father{height:200px;position:relative;}
      .son{position:absolute; top:0px right:0px
bottom:0px;left:0px;width:500px;height:100px;margin:auto;}

    IE8+以上支持!
第五口舌:css margin负值定位
    1.margin负值下之双边对同步(margin改变元素尺寸)
    例子
      .box{
        width:1200px; margin:auto;background:orange;
        .ul{overflow:hidden;}
        .li{
          width:380px;height:300px;
          margin-right:20px;
          background:green;
          float:left;
        }
      }
    实现之列表最后一个雁过拔毛出暇。
      而经过margin负值来转容器的大大小小,让容器变富裕。能全面解决这个题材
    .box{
      width:1200px; margin:auto;background:orange;
    .ul{overflow:hidden;margin-right:-20px;}
    .li{
      width:386.66px;height:300px;
      margin-right:20px;
      background:green;
      float:left;
     }
    }
    2.margin负值下的顶高布局 margin改变元素占据空间
    margin与上下留白
    <div style=”height:200px;”>
      <img height=”300px” style=”margin:50px 0;” />
    </div>
    .box{overflow:hidden;resize:vertical;}
    .child-orange,
    .child-green{margin-bottom:-600px;padding-bottom:600px;}
    .child-orange{float:left;background:orange;}
    .child-green{float:left;background:green;}

    IE8+以上支持!
第五谈:css margin负值定位
    1.margin负值下之两端对伙同(margin改变元素尺寸)
    例子
      .box{
        width:1200px; margin:auto;background:orange;
        .ul{overflow:hidden;}
        .li{
          width:380px;height:300px;
          margin-right:20px;
          background:green;
          float:left;
        }
      }
    实现之列表最后一个留给有空闲。
      而通过margin负值来改容器的大小,让容器变富裕。能完美解决此题材
    .box{
      width:1200px; margin:auto;background:orange;
    .ul{overflow:hidden;margin-right:-20px;}
    .li{
      width:386.66px;height:300px;
      margin-right:20px;
      background:green;
      float:left;
     }
    }
    2.margin负值下的相当高布局 margin改变元素占据空间
    margin与上下留白
    <div style=”height:200px;”>
      <img height=”300px” style=”margin:50px 0;” />
    </div>
    .box{overflow:hidden;resize:vertical;}
    .child-orange,
    .child-green{margin-bottom:-600px;padding-bottom:600px;}
    .child-orange{float:left;background:orange;}
    .child-green{float:left;background:green;}

    通过安装非常挺的margin-bottom负值,和大老之padding-bottom填充缺失的空中,实现等高布局。原理:内容块状元素可以在padding中显示.只要没安装    

    通过安装老十分之margin-bottom负值,和非常充分的padding-bottom填充缺失的上空,实现等高布局。原理:内容块状元素可以当padding中显示.只要没有设置    

    background:clip,box-sizing:content
    3.margin负值下之鲜栏自适应布局,元素占据空间从margin移动

    background:clip,box-sizing:content
    3.margin负值下的有限棚自适应布局,元素占据空间从margin移动

    <div style=”float:left;width:100%”>
      <p style=”margin-right:170px;”>图片右侧变</p>
    </div>
    <img width=”150px;”
style=”float:left;margin-left:-150px;”/>

    <div style=”float:left;width:100%”>
      <p style=”margin-right:170px;”>图片右侧变</p>
    </div>
    <img width=”150px;”
style=”float:left;margin-left:-150px;”/>

第六语 css marign无效情形解析
  1.inline档次元素的垂直margin无效
  2个前提 1.非调换元素,例如不是img元素;2.例行书写模式
  例
    <span style=”margin:0px”>marign:0px</span>
    给span设置margin233px;
    水平上有效性的,垂直方向是不行的。
    2.margin重叠
    3.display:table-cell
      display:table-cell/display:tab-row等声明margin无效!

第六话 css marign无效情形解析
  1.inline水准元素的垂直margin无效
  2独前提 1.非调换元素,例如非是img元素;2.正常书写模式
  例
    <span style=”margin:0px”>marign:0px</span>
    给span设置margin233px;
    水平达有效之,垂直方向是无效的。
    2.margin重叠
    3.display:table-cell
      display:table-cell/display:tab-row等声明margin无效!

      例外的更迭元素img,button

      例外的替换元素img,button

    4.position与margin
      绝对定位元素不定点方向的margin值“无效”
      绝对定位的margin值一直有效,不只是像普通元素那样。
    5.鞭长莫及的margin失效
      bfc内容块被如果前方有变化元素那下一个素的margin是对立与外层的div计算的。
    6.内联导致的margin失效
      div[style=”height:200px;background-color:#f0f3f9;”]>img[style=”marign-top:30;”]
      当margin-top足够好之早晚失效了。
      解释:内联元素要兑现和基线对伙同,在图片后加x可以看看,无论margin-top有差不多远,他还无会见退出容器外面。

    4.position与margin
      绝对定位元素不固定方向的margin值“无效”
      绝对定位的margin值一直有效,不只是比如说一般元素那样。
    5.鞭长莫及的margin失效
      bfc内容块被要面前来转移元素那下一个因素的margin是对立与外层的div计算的。
    6.内联导致的margin失效
      div[style=”height:200px;background-color:#f0f3f9;”]>img[style=”marign-top:30;”]
      当margin-top足够大之时段失效了。
      解释:内联元素要贯彻与基线对联合,在图后加x可以观看,无论margin-top有多远,他都未会见退出容器外面。

第七话margin-start和margin-end
    margin-start
    img{
      margin-left:100px;
      -webkit-margin-start:100px;
      -moz-margin-start:100px;
      margin-sart:100px;
    }
    1.好端端的流向,margin-sart等同于margin-left,两者重叠不加上;
    2.如果水平没有从右边为左,margin-start等与与margin-right;direction:ltr(rtl)
    3.以笔直流下(writring-mode:vertical-lr),margin-sart等同于margin-top
    webkit下之另外margin相关属性
      margin-before
        img{-webkit-margin-before:100px;}
默认流向的状况下,等同于marign-top
      margin-after
        img{-webkit-marign-after:100px;}
默认流向的场面下,等同于margin-bottom;
      margin-collapse lovebet下载外边框重叠
        -webkit-margin-collapse: collapse|discard|separate
         控制margin重叠
         collapse默认-重叠
         discard 取消
         separate 分隔 没有重叠

第七话margin-start和margin-end
    margin-start
    img{
      margin-left:100px;
      -webkit-margin-start:100px;
      -moz-margin-start:100px;
      margin-sart:100px;
    }
    1.常规的流向,margin-sart等同于margin-left,两者重叠不加上;
    2.若水平没有从右边为左,margin-start等与同margin-right;direction:ltr(rtl)
    3.以笔直流下(writring-mode:vertical-lr),margin-sart等同于margin-top
    webkit下之另外margin相关属性
      margin-before
        img{-webkit-margin-before:100px;}
默认流向的情景下,等同于marign-top
      margin-after
        img{-webkit-marign-after:100px;}
默认流向的气象下,等同于margin-bottom;
      margin-collapse 外边框重叠
        -webkit-margin-collapse: collapse|discard|separate
         控制margin重叠
         collapse默认-重叠
         discard 取消
         separate 分隔 没有重叠