一、css布局模型

在网页中,css可设置元素有三种布局模型:Flow,Float,Layer

1、流动模型(Flow)

概念:流动(Flow)是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。

典型的特征:

第一,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。

第二,在流动模型下,内联元素(行级元素)都会在所处的包含元素内从左到右水平分布显示。

2、浮动模型 (Float)

任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。

float:left;//左浮动

float:right;//右浮动

3、层模型(Layer)

概念:层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,CSS定义了一组定位(positioning)属性来支持层布局模型。

层模型有三种形式:

(1)、绝对定位(position: absolute)

如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。

如下面代码可以实现div元素相对于浏览器窗口向右移动100px,向下移动50px。

div{

width:200px;

height:200px;

border:2px red solid;

position:absolute;

left:100px;

top:50px;

}

(2)、相对定位(position: relative)

如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置空间保留不动。

参照定位的元素必须是相对定位元素的前辈元素,参照定位的元素必须加入position:relative;,定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

(3)、固定定位(position: fixed)

fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化(比如网页中常见的广告位),除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

二、元素居中布局方法

水平居中

1、行级元素

添加元素css样式:text-align:center;

2、块级元素

定宽的块级元素:width:200px;margin:20px auto;

非定宽的块级元素:

(1)、加入 table 标签

利用table标签的长度自适应性---即不定义其长度也不默认父元素body的长度(table其长度根据其内文本长度决定),因此可以看做一个定宽度块元素,然后再利用定宽度块状居中的margin的方法,使其水平居中。

table{

border:1px solid;

margin:0 auto;

}

  • 我是第一行文本
  • 我是第二行文本
  • 我是第三行文本

(2)、设置 display: inline 方法

显示类型设为 行内元素,进行不定宽元素的属性设置,然后使用 text-align:center 来实现居中效果。

(3)、设置 position:relative 和 left:50%

利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的

垂直居中

1、父元素高度确定的单行文本

通过设置父元素的 height 和 line-height 高度一致来实现的。(height: 该元素的高度,line-height: 顾名思义,行高(行间距),指在文本中,行与行之间的 基线间的距离 )。

这种文字行高与块高一致带来了一个弊端:当文字内容的长度大于块的宽时,就有内容脱离了块。

2、父元素高度确定的多行文本、图片等的竖直居中

(1)、使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。下面看一下例子:

table td{height:500px;background:#ccc}

看我是否可以居中。

因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。

html布局图解,web前端之布局模型详解相关推荐

  1. 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

  2. web前端技术分享:详解模块化require 和 import的区别

    在前端开发中,我们可以使用很多模块化的库来帮助我们更好的实现效果,有一些库的功能类似很多同学就不知道该如何选择,比如require和import,今天小千就给大家介绍一下两者的区别. 一.区别 1.r ...

  3. web前端-回调函数sort详解

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【Web前端】CSS-定位详解

  5. 图解机器学习算法(13) | 聚类算法详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

  6. CSS 浮动布局放弃float,拥抱flex(详解)

    CSS 浮动布局放弃float,拥抱flex(详解) 文章目录 CSS 浮动布局放弃float,拥抱flex(详解) 说明 Flex布局 容器和项目 容器属性 flex-direction属性 fle ...

  7. Transformer模型详解(图解最完整版)

    前言 Transformer由论文<Attention is All You Need>提出,现在是谷歌云TPU推荐的参考模型.论文相关的Tensorflow的代码可以从GitHub获取, ...

  8. 前端技术之_CSS详解第三天

    前端技术之_CSS详解第三天 二.权重问题深入 2.1 同一个标签,携带了多个类名,有冲突: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

  9. Web 实时消息推送详解

    title: Web 实时消息推送详解 category: 系统设计 head: meta name: keywords content: 消息推送,短轮询,长轮询,SSE,Websocket,MQT ...

最新文章

  1. hibernate多个主键
  2. Win10下MySQL_Workbench连接远程主机MySQL5.7
  3. 12月26日二周二次【Python基础语法】
  4. 什么是电子路径用于连接计算机主板上的芯片,计算机的组成部分及功能346.doc...
  5. php取不到post数据库,安卓post 数据到php 在写入数据库老是不成功, 数据post不到php...
  6. [转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
  7. 计算机音乐绅士教程,教你学唱薛之谦的《绅士》,这个技巧很实用值得收藏!...
  8. 魅族官宣好消息:魅族16s Pro暮光森林终于要来了
  9. asp.net core文档下载_推荐一个必备的开源项目 (附下载链接)
  10. [转载] python中join的使用
  11. 用python快速开发一个实用的socket服务器
  12. 快闪视频快影_快闪的12个步骤!
  13. NMOS与PMOS的区分及使用
  14. 6种方法轻松将PDF转换为Word文档,办公必备!
  15. 阻抗,特征阻抗与等效阻抗
  16. 下载MySQL驱动程序
  17. 【python】生成随机数字/字母/指定位数的字母+数字的字符串
  18. 已解决:网易邮箱smtphz.qiye.163.com在阿里云环境发不出邮件的问题
  19. UVM搭建 ------ 进阶DIY教程
  20. Django写一个登录注册---001创建项目以及设计数据库

热门文章

  1. android adb shell杀进程
  2. Linux的使用和命令的集合
  3. linux重装出现cannot load file 5555h,技术员教你解决win7系统重装开机提示cannot load file code:5555h的操作方案...
  4. Godaddy 主机域名的购买、注册和使用
  5. (python)BMI计算
  6. WiFi共享精灵,生活好伴侣
  7. 左移赋值运算符 (<<=)
  8. C++:char数组初始化
  9. 获取打印机分辨率_为孩子准备的第一台口袋打印机,喵喵机P2S评测
  10. Python:教你如何写一个测量网速的小工具