深入学习CSS之盒子模型、Position、Float

407 阅读3分钟

目录

  1. 盒子模型

  2. Position

  3. Float


1.盒子模型

CSS中的盒子模型意即所有HTML元素都可以看作一个盒子,这个盒子分为四部分:margin外边距、border边框、padding内边距、content内容,具体如下:

每个部分是什么就不再解释了

总元素宽度=margin左右宽+border左右宽+padding左右宽+content的宽度

总元素高度=margin上下高+border上下高+padding上下高+content的高度

  1. border边框
  • 用border-style来设置边框样式,其值有dotted点、dashed虚线、solid实线、double双重实线边框、groove3D沟槽、ridge3D脊边框、inset3D嵌入边框、outset3D突出边框
  • 用border-width定义边框宽度,其值可以是以px或em为单位的数或者thick、medium、thin
  • 用border-color设置颜色
  • 用border-top(right/bottom/left)-style来指定不同边框的不同属性
  • 用border直接简写所有属性在一起,如border: 1px solid red
  1. margin外边距
  • 外边距无背景颜色
  • 与border一样,属性可简写
  • 其值可取auto、px、em、%等
  • 也分top、right、bottom、left四边
  1. padding内边距
  • 与margin一样
  • 内边距不受元素的background-color影响

2.Position

position定义了元素的定位类型,具体有:

  • static
  • relative
  • fixed
  • absolute
  • sticky
1.static

static是元素的默认定位类型,即正常排序。

2.relative
  • relative是指让元素相对其原来位置移动,但不改变元素原来位置所占的空间
  • 对于它的值,如left:-20px,意思是相对原来左侧位置减去20px,即向左移动20px;而left:20px,即为向右移动20px
3.fixed

fixed定位类型使元素相对于浏览器占有一个固定位置

  • fixed定位使元素不占据空间,所以常会与其他元素重叠
  • 这种定位是相对于浏览器窗口的,所以不会随滚动条滑动而改变位置
4.absolute

绝对定位是指相对于其父元素来定位,可以使元素定位于任意位置,且不占原本的空间,即会与其他元素重叠。

5.sticky
  • sticky是指当元素未超出页面范围时,定位类型就像position,而当用户拉动滚动条使其超出页面范围时,它就变成像fixed一样,相对于浏览器窗口固定位置
  • 必须指定其top、left、right、bottom的任意一个值,否则不生效

3.Float

float是一个属性,一般取left和right其中一个值,形象地说,float使元素向着一个方向游过去,并破坏其他元素的位置,使其他元素重新排列

  • 对元素添加clear属性,使其一边或两边都不出现浮动元素,避免被破坏,如clear:left;使其左边不能出现浮动元素;clear:both;使其两边都不能出现浮动元素
  • 浮动元素碰到其他往相同方向的浮动元素就会靠在一起,若不同,则互不影响