CSS中文档流之普通流,浮动及定位、浮动特性及清除浮动的方式、定位模式,子绝父相搭配定位方式、z-index层级

文档流:

普通流(normal flow):

字面意思是普通流或者标准流,也就是常说的文档流,指网页内标签正常是从上到下,从左到右排列的意思,css的定位机制有3种:普通流(标准流)、浮动、定位。

浮动:

是指使元素飘起来不完全脱离标准流的控制,绝对定位才是完全脱离标准流的,飘起来后不会再占原来的位置,浮动可以使块级元素在一行排列显示,float的值有:none默认值,元素不浮动、right元素向右浮动、left元素向左浮动。

	.box ul li {float:left;}

浮动特性:

1、浮动只存在于水平方向,浮动不能上对齐和下对齐,浮动属于内容content,所以是无法跨越padding和border的,要想跨越就会使用定位;

2、浮动找离自己最近的父级盒子对齐,浮动影响的是他的下面的盒子,自己浮动后会脱离文档流不占位,从而下面的盒子会到它原来的位置排列;

3、浮动可以让元素默认转换为类似行内块元素(float使元素显示模式隐藏转换,但是并非真实行内块,因为行内块元素中间默认有间隙,而float转换后的元素中间没有间隙)。

清除浮动:

主要是为了解决父级元素没有给高度,子级盒子浮动不占位引起的父级盒子高度为0的问题,清除浮动后,父级盒子自动检测高度,从而不会影响下面标准流盒子的布局。

清除浮动的方法有四种:

1、额外标签法(标签给clear属性):

在最后一个浮动元素末尾添加一个空标签,并给这个标签添加clear:both;属性,添加属性的三种方式任选其一都可以,这里采用行内样式举例子,clear的属性值有left、right、both(推荐使用),此方法比较快捷,但是给页面增加了无意义标签,结构化较差。

	<style>.father {background-color: #ffaacf;}.son {width: 100px;height: 100px;background-color: #666666;float: left;}.son2 {width: 200px;height: 200px;background-color: #9bdf13;float:left;}.brother {height: 100px;background-color: #333333;}/*采用内联样式添加clear属性法.clear {clear: both;}*/</style><body><div class="father"><div class="son"></div><div class="son2"></div><div style="clear:both" class="clear"></div><!-- 添加空标签实现清除浮动属性法 --></div><div class="brother"></div></body>

2、父级标签添加overflow属性法:

给父级元素添加overflow属性同样可以实现清除浮动的效果,代码简洁,但是当页面的内容增多时,overflow属性不能使内容自动换行而隐藏,不能显示溢出的内容,overflow的值:hidden(溢出隐藏)、scroll(滚动条)页面会出现滚动条,不推荐使用、auto(自动)都可以清除浮动。

	<style>.father {background-color: #ffaacf;overflow: hidden;/*给父级标签添加overflow属性实现清除浮动*/}.son {width: 100px;height: 100px;background-color: #666666;float: left;}.son2 {width: 200px;height: 200px;background-color: #9bdf13;float:left;}.brother {height: 100px;background-color: #333333;}</style><body><div class="father"><div class="son"></div><div class="son2"></div></div><div class="brother"></div></body>

3、after伪元素兼zoom: 1;属性法:

after伪元素可以解决额外标签法中无意义的标签问题,伪元素实际还是本身,只是给了另一个身份,其具体方法是:先声明伪类并配置属性:{content: “”;display: block;height: 0;clear: both;visibility: hidden;},后父级盒子调用;zoom: 1属性是解决兼容IE6~7问题的,属性前面加*的作用是告诉浏览器,只有遇到IE6~7浏览器才会执行此代码,其他浏览器不执行此代码,如

	<style>/* 给父级盒子声明伪类,类名可以直接使用father,如:.father:after {} */.clearfix:after {content: "";display: block;height: 0;clear: both;visibility: hidden;}.clearfix { /* 解决IE6~7之间存在的兼容问题,此属性可以直接写在.father {}中,省去一个类名的声明 */*zoom: 1;/* css hack 解决IE低版本浏览器兼容性*/}.father {background-color: #ffaacf;}.son {width: 100px;height: 100px;background-color: #666666;float: left;}.son2 {width: 200px;height: 200px;background-color: #9bdf13;float:left;}.brother {height: 100px;background-color: #333333;}</style><body><div class="father clearfix"><!--  父级标签调用伪类 --><div class="son"></div><div class="son2"></div></div><div class="brother"></div></body>

4、双伪元素法:

此方法和after伪元素法一样,只是采用双伪元素实现清除浮动效果,如:

	<style>/* 声明双伪类: */.clearfix:before,.clearfix:after {content: "";display: block;height: 0;}.clearfix:after {clear: both;}.clearfix { /* 解决IE6~7之间存在的兼容问题 */*zoom: 1;}.father {background-color: #ffaacf;}.son {width: 100px;height: 100px;background-color: #666666;float: left;}.son2 {width: 200px;height: 200px;background-color: #9bdf13;float:left;}.brother {height: 100px;background-color: #333333;}</style><body><div class="father clearfix"><!--  父级标签调用伪类 --><div class="son"></div><div class="son2"></div></div><div class="brother"></div></body>

定位(position):

实际开发中,标准流和浮动不能满足我们布局的需求,此时使用定位就可以很好的实现布局效果。定位属性主要包括:定位模式和边偏移。

定位模式:
position的属性值:
在这里插入图片描述
绝对定位和固定定位会发生模式转换,最终会默认转换为inline-block行内块模式

边偏移属性:
在这里插入图片描述
子绝父相搭配定位方式:

子绝父相是实际开发中一种常见的定位搭配方式,子级用绝对定位,父级用相对定位。父级用相对定位的原因是自己占位,不会影响下面元素的布局,子级用绝对定位的原因是自己不占位,方便其他元素布局,如常见轮播图布局。

	/* 子绝父相定位代码展示: */<style>/* 实现btnleft 和 btnright位于topbox的两边居间,bottom盒子在top盒子上面: */* {margin: 0;padding: 0;}body {width: 600px;height: 500px;margin: 0 auto;}div {border: 1px solid yellowgreen;}.topbox,.bottom {width: 400px;height: 200px;background-color: #443366;position: relative;}.btnright~div {width: 98px;height: 160px;background-color: #666666;margin-top: 15px;float:left;}.bottom {background-color: #998866;}.btnleft,.btnleft+div {width: 50px;height: 50px;background-color: turquoise;position: absolute;top: 70px;}.btnleft+div {right: 0px;}</style><body><div class="topbox"><div class="btnleft"></div><div class="btnright"></div><div>页面一</div><div>页面二</div><div>页面三</div><div>页面四</div></div><div class="bottom"></div></body>

绝对定位的盒子水平、垂直居中算法:

普通盒子左右居中仅需margin:0 auto;即可,但是当给盒子给了定位或者浮动后,此方法失效,这时就只能使用算法两步进行居中定位:1:使用绝对定位给自己盒子left值为父级盒子宽度的50%(left:50%)2:使用margin-left值为自己盒子宽度的一半的负值,案例代码如下:

	<style>.box {border: 1px solid #552;width: 400px;height: 300px;position: relative;}.son {border: 1px solid red;width: 120px;height: 100px;margin: 0 auto;/* float: left; */position: absolute;left: 50%;margin-left: -60px;top: 50%;margin-top: -50px;}</style><body><div class="box"><div class="son"></div></div></body>

z-index层级:

浮动会使后面的元素默认排在最下面,而定位会使后面的元素默认排在最上面,有的时候需要改变这个顺序,此时定位的元素可以使用z-index来解决这个问题(定位的元素才有z-index),其默认值为0,其值没有限制。

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。
笔者:苦海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode中常用element语法

Element语法&#xff1a; 熟练掌握element语法可以大大提高开发效率&#xff0c;建议在平时练习时留意element语法&#xff0c;下面是常用VScode中element语法&#xff1a; 1、快速生成HTML骨架&#xff1a;!Enter或Tab键 2、快速生成带有id或者class名的标签&#xff1a;标签…

jQuery Tools:Web开发必备的 jQuery UI 库

基本介绍 jQuery Tools 是基于 jQuery 开发的网站界面库&#xff0c;包含网站最常用的Tabs&#xff08;选项卡&#xff09;、Tooltip&#xff08;信息提示&#xff09;、Overlay&#xff08;遮罩、弹窗&#xff09;、Scrollable&#xff08;滚动控制&#xff09;、Form Validat…

控制元素显示和隐藏的方式及区别、内容溢出处理(区域滚动)、透明性、字体图标、常见字体、自定义字体设计、网站图标、CSS代码分析

元素的显示与隐藏&#xff1a; 常见控制元素的显示和隐藏的属性有display、visibility、overflow&#xff0c;需要清楚的理解三者之间的区别。 display显示&#xff1a; 当值为none时为销毁对象&#xff0c;不保留原位置&#xff0c;当值为block时为生成对象。 visibility可…

html5中Canvas、绘制线条模糊、常见绘制工具、绘制基本图形、绘制图片、面向对象的方式绘制图形图片、绘制文本、帧动画绘制

Canvas容器: canvas标签用来定义图像的容器&#xff0c;必须配合脚本来绘制图像&#xff0c;canvas也运用于游戏开发。注意&#xff1a;canvas绘制图时会出现线条模糊情况&#xff0c;这是因为显示屏像素和canvas中定义的一个点不完全重合&#xff08;相差0.5&#xff09;导致…

MySQL INFORMATION_SCHEMA 使用

一、INFORMATION_SCHEMA介绍 第一个查询看看库里有多少个表&#xff0c;表名等select * from INFORMATION_SCHEMA.TABLES information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名&#xff0c;数据库的表&#xff0c;表栏的数据类型与访问权限等。再简单点…

mrql初级教程-使用(er)

最近使用mrql做xml文件解析&#xff0c;使用xpath来进行判断使用的方法如下&#xff0c;其中t.mrql文件如下&#xff1a;v args[1];store ty:source(xml,args[0],{"page"},xpath(.[idID6]/place));ty;执行下面的命令mrql -local t.mrql hdfs://183.175.12.220:9010/u…

web Worker简介、web Worker报错分析、作用

web Worker&#xff1a; web Worker是运行在后台的javascript&#xff0c;不会影响性能&#xff0c;常用于高耗费CPU的任务&#xff0c;必须部署到线上才可以正常使用&#xff0c;这里有三个方法比较重要&#xff0c;需要注意&#xff1a; postMessage(),发送消息&#xff0c…

SSE事件作用,错误分析

Server-Sent&#xff08;SSE&#xff09;&#xff1a; server sent用于自动接收服务器更新&#xff0c;当服务器发生数据更新时&#xff0c;此事件将自动执行来更新页面数据&#xff0c;常用于博文、股价等不断变化的项目中。下面将简单介绍SSE中三个常用事件&#xff1a; on…

css3盒模型、过渡、转换介绍

CSS3中盒模型&#xff1a; 前面CSS中学到的盒子模型给padding、border会撑开盒子的大小&#xff0c;实际大小要通过计算才能得到&#xff0c;为了解决这个问题&#xff0c;CSS3推出了box-sizing属性来解决此问题&#xff0c;当box-sizing的属性值为border-box时&#xff0c;无…

css3中animation动画、浏览器私有前缀、文字阴影、滤镜

animation动画&#xff1a; 可以设置多个节点来控制一个或 一组动画&#xff0c;动画可以实现更多变化&#xff0c;更多控制&#xff0c;连续自动播放等效果。动画的使用分两步&#xff1a;1、定义动画 2、调用动画&#xff08;调用必须写调用名称和持续时间)&#xff0c;其属…

ASP.NET 页生命周期

参考&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms178472(vvs.100).aspx转载于:https://www.cnblogs.com/pengpenghappy/p/3778721.html

计算机基础简介、编程语言、翻译器、数据储存

计算机基础&#xff1a; 编程语言&#xff1a; 编程语言分机器语言、汇编语言、高级语言&#xff0c;机器语言只有计算机本身认识&#xff0c;是二进制的&#xff1b;汇编语言是较低层的指令式语言&#xff0c;有很多指令单词发出命令&#xff0c;程序员可以认识&#xff0c;…

IE8“开发人员工具”(下)

浏览器模式 说白了&#xff0c;就是让用户选择当前页面用何种IE版本去渲染。 文本模式 说起“文本模式”这个名词&#xff0c;这又要回到渲染页面的3种模式了&#xff1a;诡异模式&#xff08;Quirks mode&#xff0c;也有翻译为兼容模式、怪异模式的&#xff09;&#xff0c;标…

javascript历史、作用、三大组成、javascript代码书写位置、注意事项、变量

JavaScript简介 JavaScript历史&#xff1a; JavaScript是一门解释型、动态类型、基于对象的脚本语言(不需要编译&#xff0c;直接执行&#xff0c;与之相对的是编译型语言)&#xff0c;由美国网景公司的布兰登艾奇发明&#xff0c;起初称LiveScript&#xff0c;其简称js。 …

javascript中基本包装、算数运算符、递增递减运算符、赋值运算符、比较运算符、逻辑运算符、运算符优先级

基本包装类型&#xff1a; 指基本类型的数据变量通过调用属性或者方法包装成了复杂类型&#xff0c;这个变量也称为基本包装类型对象 <script>var str hello;str str.replace(ll, ee);console.log(str); //heeeo//通过基本包装&#xff0c;无论Boolean对象中传入true还…

流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字

流程控制 流程控制&#xff1a;指代码的执行顺序&#xff0c;有三种方式&#xff1a;顺序结构、分支结构、循环结构 顺序结构&#xff1a; 代码从上到下&#xff0c;从左到右的执行顺序。 分支语句&#xff1a; if语句、if-else语句、if-else if-else语句、switch-case语…

楼宇对讲门铃的芯片选型分析

目前很多的高层住宅都使用了对讲门铃了&#xff0c;在频繁使用中&#xff0c;门铃会出现的越来越多种类&#xff0c;下面我就简单的介绍会有用到的几款芯片. 语音通话芯片&#xff1a;D34018,D34118,D5020,D31101; D34018 单片电话机通话电路&#xff0c;合并了必 需的放大器…

javascript中内置对象简介、Array

内置对象&#xff1a; javascript的三种对象&#xff1a;1.内置对象—JavaScript自带的对象&#xff1b;2.自定义对象—自己定义构造函数创建对象&#xff1b;3.浏览器对象— BOM时候介绍&#xff0c;几个常用内置对象&#xff1a;Math Date String Array Object Array对象&a…

javascript中Date对象及方法

Date对象&#xff1a; 该对象呈现时间中的某个时刻。其本质是自1970年1月1日&#xff08;UTC&#xff09;起经过的毫秒数&#xff0c;相关属性的方法如下&#xff1a;&#xff08;如果Date对象中传入指定的时间&#xff0c;则以传入的指定时间返回相关数据&#xff0c;就不会以…

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道&#xff0c;浏览器可以依据HTML静态标记语言来显示各式各样的网页。可是假设我们须要在网页上完毕一些业务逻辑&#xff1a;比方登陆验证。或者说网页显示的内容在server的数据库中。假设是这样&#xff0c;除了负责显示的HTML标记之外&#…