css--内外边距、 盒子模型、位置、浮动

一、内外边距

1.margin

1.1属性为给定元素设置所有四个(上下左右)方向的外边距属性。

  • 上下左右具有四个方向:margin-top、margin-right、margin-bottom、margin-left
  • 可取值:

      length:固定值
      percentage:相对于包含块的宽度,以百分比值为外边距(百分比相当于是取得父元素宽度的百分比)。
      auto让浏览器自己选择一个合适的外边距。有时,在一些特殊情况下,该值可以使元素居               中。

1.2如何设置外边距为零,代码如下:

   在body进行设置,style=“margin:0;”

<body style="margin: 0;">
    <div>
    </div>
</body>

1.3设置水平居中,代码如下:

margin:0 auto;

注意点:外边距的重叠性问题:

1.设置子元素的magin时,带动父元素一起下拉,父元素与子元素并未分离:

原因分析:主要是因为父元素未设置外边框

父元素与后代元素:父元素时没有上边框和padding,后代元素的margin-top会溢出,溢出后父元素的margin-top会与后代元素取最大值。

解决方案:

      方案一:设置padding或border -top 

div-father{
    border-top:1px soild;
}
div-father{
    padding-top:1px;
}

      方案二:设置overflow的属性(缺点:在想要单独使用overflow时,会比较不方便)

div-father{
    overflow:hidden;

}

     方案三:在父元素上方加一个空元素----最优解法

.div-father::before{
    content:"";
    display:table;

}

2.两个div在上下margin边距设置时,如果上边元素的margin-bottom为x1,下边的元素的margin-top为x2,则两个div的竖直间隔将会为:x1和x2的最大值:

另外设置左右时,将不会出现这种情况

2.padding

  • 可以接受1~4个值(上、右、下、左的顺序)

          可以分别指明四个方向:padding-top、padding-right、padding-bottom、padding-left
          可取值

  • length:固定值
  • percentage:相对于包含块的宽度,以百分比值为内边距(相当于是父级元素宽度的百分比)

3.每个元素的真实宽度

     width=content+margin+padding(这是默认的情况,content-box盒子模型)

此外,还可以对box-sizing的属性设置为border-box,这样,盒子模型的宽度就不会受到margin和padding的影响了。

二、盒子模型(box-sizing)

CSS 中的 box-sizing 属性定义了 user agent 应该如何计算一个元素的总宽度和总高度。

(默认是都是内容的盒子)

  • content-box:是默认值,设置border和padding均会增加元素的宽高。
  • border-box:设置border和padding不会改变元素的宽高,而是挤占内容区域。

三、位置(position)

取值L:

  • static:该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。
  • relative:该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。top, right, bottom, left等调整元素相对于初始位置的偏移量。
  • absolute:元素会被移出正常文档流,并不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。
  • fixed:元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。
  • sticky:元素根据正常文档流进行定位,然后相对它的最近滚动祖先(nearest scrolling ancestor)和 containing block (最近块级祖先 nearest block-level ancestor),包括table-related元素,基于top, right, bottom, 和 left的值进行偏移。偏移值不会影响任何其他元素的位置。

四、浮动  (float)

float
float CSS属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。该元素从网页的正常流动(文档流)中移除,尽管仍然保持部分的流动性(与绝对定位相反)。

由于float意味着使用块布局,它在某些情况下修改display 值的计算值:

display为inline或inline-block时,使用float后会统一变成block。
取值:
left:表明元素必须浮动在其所在的块容器左侧的关键字。
right:表明元素必须浮动在其所在的块容器右侧的关键字。
clear
有时,你可能想要强制元素移至任何浮动元素下方。比如说,你可能希望某个段落与浮动元素保持相邻的位置,但又希望这个段落从头开始强制独占一行。此时可以使用clear。

取值:
left:清除左侧浮动。
right:清除右侧浮动。
both:清除左右两侧浮动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值