网页常见布局方式

189 阅读4分钟

网页常见的布局方式

1.标准流

  1. 块级元素独占一行——>垂直布局
  2. 行内元素/行内块元素一行显示多个——>水平布局

块级元素

  • 自己独占一行

  • 高度,宽度、外边距以及内边距都可以控制。

  • 宽度默认是容器(父级宽度)的100%

  • 是一个容器及盒子,里面可以放行内或者块级元素。 注意:只有文字才能组成段落,因此p标签里面不能放块级元素,特别是p标签不能放div。同理还有这些标签h1,h2,h3,h4,h5,h6,dt,他们都是文字类块级标签,里面不能放其他块级元素。

行内元素

  • 相邻行内元素在一行上,一行可以显示多个。

  • 高、宽直接设置是无效的

  • 默认宽度就是它本身内容的宽度。

  • 行内元素只能容纳文本或则其他行内元素。 注意:

  • 链接里面不能再放链接。

  • 特殊情况a里面可以放块级元素,但是给a转换一下块级模式最安全。

行内块元素

  • 和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。一行可以显示多个

  • 默认宽度就是它本身内容的宽度。

  • 高度,行高、外边距以及内边距都可以控制

2.浮动

  1. 可以让原本垂直布局的块级元素变成水平布局
  2. 浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素

3.定位

  1. 可以让元素自由的摆放在网页的任意位置
  2. 一般用于盒子之间的层叠情况

定位常见应用场景

  • 解决盒子与盒子之间的层叠问题
    • 定位之后的元素层级最高,可以层叠在其他盒子上面
  • 可以让盒子始终固定在屏幕的某个位置

定位的步骤

  1. 设置定位方式
    • 属性名: position
    • 常见属性值
      • 静态定位:static(默认值,无需设置)
      • 相对定位:relative
      • 绝对定位:absolute
      • 固定定位:fixed
  2. 设置偏移值
    • 偏移值设置分为两个方向,水平和垂直方向各选一个使用即可
    • 选取的原则一般是就近原则
    • 可以使用%做单位
    • 若四个偏移量都设置了值,水平方向以left为准,垂直以top为准

相对定位

  • 相对于自己之前的位置进行移动
  • 特点:
    • 需要配合方位属性实现移动
    • 相对于自己原来的位置进行移动
    • 仍在页面中占位置(没有脱离标准文档流),自身本来所在的地方不会被别的元素占用。
    • 不会让元素的显示模式改变,块级元素仍会独占一行
  • 应用场景:
    • 配合绝对定位组CP(子绝父相)
    • 用于小范围的移动

绝对定位

  • 相对于里自己最近的非静态定位的父元素进行定位,若父级均为静态定位,则以浏览器窗口定位(html元素)
  • 脱离标准流,不再占位置。(初始位置和定位后位置都不占位置)
  • 改变标签的显示模式特点:具备了行内块的显示特点(可同处一行,宽高生效)
  • 绝对定位的盒子无法使用margin左右auto进行居中
    • 解决方式:
        1. left:50%;margin-left:- (weight/2)px
        1. left:50%;transform:translate(-50%,-50%)(位移自身宽度,高度的一半)

固定定位

  • 相对于浏览器的可视区域进行定位
  • 需要配合方位属性实现移动
  • 在页面中不占位值,脱离标准流
  • 应用场景
    • 让盒子固定在屏幕中的某个位置

元素的层级关系

  • 不同布局方式元素的层级关系

    • 标准<浮动<定位
  • 不同定位之间的层级关系

    • 相对,绝对,固定默认层级相同
    • 此时,在html文件中,写在下面的代码层级更高,会覆盖上面的元素(后来者居上)