美文网首页
margin相关

margin相关

作者: 大瓶绿茶 | 来源:发表于2017-01-30 10:13 被阅读0次
  • margin与可视尺寸,适用范围:
    1、没有设定width/height的普通block水平元素
    2、只适用于水平方向尺寸
    实际应用:一侧定宽的自适应布局(原理是因为margin改变了区域的可视区域大小)
    <img width="150" style="float:left">
    <p style="margin-left:170px">图片左浮<p>

  • margin与占据尺寸
    1、block/inline-block水平元素均适用
    2、与有没有设定width/height值无关
    3、适用于水平方向和垂直方向

  • margin与百分比单位
    1、普通元素的百分比margin都是相对于容器的宽度计算的。并不是分别根据宽高计算的。
    2、绝对定位元素的百分比margin是相对于第一个定位祖先元素(relative/absolute/fixed)的宽度计算的。与普通元素的区别是不按照直接容器进行计算。

  • margin重叠
    通常特性:
    1、只发生在block水平元素(不包括float和absolute元素)
    2、不考虑writing-mode,只发生在垂直方向(margin-top/margin-bottom)
    三种情景:
    1、相邻的兄弟元素
    2、父级和第一个/最后一个子元素

Paste_Image.png Paste_Image.png

干掉父元素、子元素margin-top重叠的几个办法:
a、父元素块状格式化上下文元素
b、父元素设置border-top
c、父元素设置padding-top
d、父元素和第一个子元素之间增加一个inline元素分割

3、空的block元素
空的block元素margin重叠的条件
a、元素没有Border设置
b、元素没有padding值
c、里面没有inline元素
d、没有height,或者min-height

  • margin重叠计算规则
    1、正在取大值
    2、正负值相加
    3、负负最负值

  • margin重叠的意义:
    1、连续段落或列表之类,如果没有margin重叠,首尾项间距会和其他兄弟标签1:2关系,排版不自然
    2、web中任何地方嵌套或直接放入任何裸div,都不会影响原来的布局
    3、遗落的空任意多个<p>元素,不要影响原来的阅读排版。

  • margin:auto的机制
    如果一侧定值,一侧auto,auto为剩余空间大小,如果两侧均是auto,则平分剩余空间。
    两个常见疑问:
    1、为何图片用此办法不居中?因为图片是inline-block水平,而inline-block水平是没有剩余空间可以利用的,故无法水平居中!!!
    2、为何容器定高,设置margin:auto不能实现垂直居中?因为垂直方向不会自动填充,没有可以利用的剩余空间。
    元素居中的两种办法:
    a、修改文档流方向,默认方向为水平方向。使用writing-mode:vertical-lr,可将元素置为垂直方向,从而使用以上特性达到垂直方向居中,但是无法实现水平方向居中。
    b、利用absolute的拉伸特性,增加垂直方向剩余面积,然后使用margin:auto即可水平、垂直居中。IE8+
    position:absolute;
    left:0;right:0;top:0;botton:0;
    width:100px;height:100px;
    margin:auto;
    ps:如果宽度不足以分配,那么也不会达到居中效果。

  • margin无效的几种情况
    1、inline水平元素的垂直margin无效(非替换元素,如img)
    2、margin重叠
    3、display:table-cell,按照规范,margin是不会再table-cell中有作用的,但是某些替换元素不适用上述规则,如Img,button(具有浏览器差异)
    4、绝对定位(absolute)元素非定位方位的margin值“无效”,除非给容器增加position:relavite。(原理是由于脱离文档流,故肉眼看不出来)
    5、鞭长莫及。。。。 看似无效,其实有效


    Paste_Image.png

    6、图片不管如何设置margin,都不可能完全脱离容器,原因是因为图片是inline-block水平的,故图片一定会与它之后的文字基线对齐(不管后面是否有文字),而内联元素的特性是不可能超出容器的范围,故导致图片也不会超出此范围

  • 默认情况下,margin-start与margin-left相同,但是当改变文档流时,margin-start会改变,与流向有关。margin-end同理。

相关文章

  • margin相关

    一、标准盒模型和怪异模式盒模型 标准盒模型和怪异模式盒模型可以通过box-sizing来设置: 标准盒模型: bo...

  • margin相关

    1.两个或多个垂直元素,相邻边界会重合 1)边界都为(正或负)值,取绝对值最大的边界。 2)一个为负,一个为...

  • margin相关

    margin与可视尺寸,适用范围:1、没有设定width/height的普通block水平元素2、只适用于水平方向...

  • 盒模型使用margin相关技巧及问题

    仅供学习,转载请注明出处 margin相关技巧 1、设置元素水平居中: margin:x auto;2、margi...

  • margin相关-外边距折叠

    简介 1 .块的margin-top,margin-bottom有时合并折叠为2单个边距,大小是单个边距的最大值,...

  • CSSday06笔记

    一、外边距 1. 外边距属性 margin属性用于设置内边距,也是复合属性,相关设置如下 margin-top:上...

  • 前端面试中遇到的问题总结

    一、css相关 盒子模型都有什么 padding ,margin,border,contentimage CSS ...

  • 常用样式属性

    1. CSS实用属性 文本相关 位置相关 padding & margin 2. 自定义颜色 修改 ./src/t...

  • 3

    学习总结 轮播的相关知识:初始设置:* {margin: 0;padding: 0;text-decoration...

  • Ionic3学习笔记(二)主题化

    本文为原创文章,转载请标明出处 目录 CSS实用属性文本相关位置相关padding & margin 自定义颜色 ...

网友评论

      本文标题:margin相关

      本文链接:https://www.haomeiwen.com/subject/zdfhittx.html