一.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)属性来支持层布局模型。

层模型主要有三种形式:

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

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

div{width:100px;height:100px;border:2px black solid;position:absolute;right:10px;top:50px;
}

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

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

二、元素居中布局方法

水平居中

1、行级元素

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

2、块级元素

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

非定宽的块级元素:

(1)、加入 table 标签

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

<div><table><tr>
<td><ul><li>我是第一行</li><li>我是第二行</li><li>我是第三行</li><li>我是第四行</li></ul></td>
</tr></table>
</div><style>
table{border:1px solid;margin:0 auto;
}
</style>

(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类型的子元素都有用。

 

Web前端之布局模型相关推荐

  1. html布局图解,web前端之布局模型详解

    一.css布局模型 在网页中,css可设置元素有三种布局模型:Flow,Float,Layer 1.流动模型(Flow) 概念:流动(Flow)是默认的网页布局模式.也就是说网页在默认状态下的 HTM ...

  2. 给你一份详细的web前端CSS布局指南,请查收

    我们前端开发过程中,写css(包括sass, less, stylus这样的预处理器)进行设计稿的样式还原是一项重要的工作,而其中,关于页面布局的部分,又是书写样式代码时候的重点和难点,这篇文章就尽可 ...

  3. 文字放在图片的下面 web前端网页布局

    效果图: 源代码: <!DOCTYPE html> <html> <head> <style>div.box{width:800px;height:30 ...

  4. 第三阶段:Web前端:01Web(HTML、CSS、JavaScript)

    转载自:国彬老师:https://shimo.im/docs/47kgJm9bMdiLO5qV/read 课程介绍:一.二.三 一.Web前端: 学习如何搭建页面,如何美化页面,如何给页面添加动态效果 ...

  5. web前端——html基础笔记 NO.12{css布局模型(流动,浮动,层模型)}

    css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又 ...

  6. 深入理解弹性盒布局(fiex-box)——Web前端系列自学笔记

    文章目录 弹性盒布局 弹性盒布局概述 弹性盒布局属性 display flex-flow justify-content align-items order flex align-self 总结 弹性 ...

  7. WEB前端 CSS(非布局)

    目录 WEB前端 CSS CSS引入方式 CSS结构 CSS选择器 直接选择器 组合选择器 分组选择器 也叫并集选择器 属性选择器 伪类选择器 伪元素选择器 CSS选择器是一个查找的过程,高效的查找影 ...

  8. ajax 更新模型数据_DuangDuangDuang,重点来啦!高薪全靠它——百战Web前端课程更新03.11...

    百战程序员九大专业运营,周周有课程更新,保持行业领先.本次更新课程Web前端第三十阶段经典面试题解析章节1-5及课程资料.本次更新可谓是诚意满满,针对市场面试需要,总结经典面试题集,为你揭开企业技术要 ...

  9. css中如何实现帧布局_浅谈web前端中的表格布局与CSS盒子布局

    在web前端设计排版时我们可能会用到表格布局和div+CSS布局,但现在主要使用后者,为何?今天我们来谈一谈两者之间的发展和原理. 话不多说下面来干货 发展过程 上个世纪Web开发人员流行使用表格进行 ...

最新文章

  1. 苹果Swift语言中文教程资源汇总
  2. 从Python调用外部命令
  3. 定义一个不能被拷贝的类
  4. 【数据结构与算法】之深入解析“比特位计数”的求解思路与算法示例
  5. Zookeeper工作原理(详细)
  6. 关于heapsize heapgrowthlimit
  7. 一头盔一电极,MIT机器人读心完毕
  8. python服务器运维书_python自动化运维书
  9. html前端登录界面示例
  10. java 建模工具_哪一个uml建模工具好用?6款好用的uml建模工具
  11. Java串口通信(RXTX)
  12. DataFrame-删除行列
  13. thinkPHP+jQuery实现站内信功能-讲给菜鸟同学
  14. React+ant中的Form表单的刷新
  15. egret_eui容器
  16. 解决127.0.0.1 已拒绝连接的方法
  17. 房价是鹤岗2倍多,这座小城有星巴克、沃尔玛和三甲医院
  18. MySQL索引优化是什么意思?底层原理是什么?
  19. coreldraw跳出盗版_coreldraw x5提示盗版警告解决方法
  20. 使用Maven命令行快速创建项目骨架(archetype)

热门文章

  1. @Inherited 的作用
  2. 连续时间信号,离散时间信号,模拟信号,数字信号的区别。
  3. linux重装出现cannot load file 5555h,技术员教你解决win7系统重装开机提示cannot load file code:5555h的操作方案...
  4. 我的创业你也可以复制:股权结构中常见的问题
  5. MySQL-间隙锁-加锁规则
  6. Linux中的文本流
  7. 计算机信息采集方式有哪些,数据监控都有哪些信息采集渠道
  8. 如何修清净心?(净空老法师法语)
  9. 百度普通收录API提交报错:site init fail
  10. 程序员趣图:有时候我的代码就是这样子……