CSS小随笔(三)浮动与定位

先来说一下CSS中的浮动

一、浮动

1、标准流中的块级盒子,宽度将自动伸展为100%,而浮动的块级盒子,宽度不会自动伸展,而是由内容撑开

2、当一个盒子浮动,标准流中未浮动的其他盒子,将视浮动盒子不存在而占据浮动盒子原来的位置。(浮动盒子,会盖在这个盒子的上方)

但是,未浮动盒子中的文字内容,将会受到浮动盒子宽度的影响。(未浮动盒子中的内容,不会被浮动盒子盖住)

3、由于第二条的原因。

    可以给收影响的盒子,添加clear属性,清除掉浮动盒子对自身的影响

    clear可选值:left-清除左浮动影响

    right-清除右浮动影响

     both-同时清除左右浮动影响,常用

  4、父盒子没有指定高度。

    如果子盒子没有浮动,则父盒子的高度可以被盒子撑开

    如果,父盒子中的所有子盒子都浮动,则父盒子高度讲变为0

      [解决所有盒子浮动,父盒子高度塌陷的问题]

        ①给父盒子也添加浮动

        ②给父盒子添加overflow属性;推荐使用!

        ③在父盒子最后,添加一个高度为0的空div。给这个div添加clear:both;属性,清除掉浮动效果

        ④可以将③中的div用伪对象选择器::after实现

#div4::after{
display:block;
concent:"";
height:0px;
clear:botn;
}

    水平排放的盒子,水平间距数margin的累加

    垂直排放的盒子,垂直间距是合并的去最大值

二、定位

  1、相对定位relative

    ①使用position: relative;设置元素为相对定位元素

    ②使用top、right、bottom、left调整元素的位置,当left跟right同时存在时left生效top、bottom同时存在时top生效

    ③定位机制:

      a、相对定位是相对于自己原来的位置定位。当top等属性不指定是,元素位置不会发生不改变

      b、相对定位,不会释放掉元素在原有文档流中的位置。不会影响其他文档流元素的位置

    ④关于元素Z轴重叠

      a、定位元素,默认的Z轴高于普通流文档元素

      b、同为定位元素,后来在居上

      c、可以使用z-index手动调节定位元素的上下层z轴顺序(不加px123什么的表示的是图片的顺序)

      d、z-index默认为0,而且只能作用于定位元素

  2、[绝对定位]

    ①使用position: absolute;设置元素为绝对定位

    ②定位机制:

      a、相对于死一个非static定位的祖先元素进行定位(即相对于使用了relative、absolute、fixed定位的祖先元素进行定位)

      b、如果所有的祖先元素都未定位,则相对于浏览器左上角进行定位

      c、使用absolute的元素,会从文档流中完全删除,原有空间会被释放

  3、[固定定位 fixed]

    ①使用position: fixed;设置固定定位;

    ②固定定位:是一种特殊的绝对定位!!只是祖先元素无法使用定位锁住

    ③定位机制:永远相对于浏览器的左上角进行定位,而且不随滚动条的滚动而滚动

  4、[z-index 属性]

    ① 作用:根据z-index属性设置的数值,决定元素在z轴方向上的层叠次序

    ② 使用要求:

      a、z-index只能给定位元素调整层叠次序:

      relative、absolute、fixed

      b、元素的z-index属性要考虑父容器z-index的约束

        >>>如果父容器设置了z-index属性,则子容器的所有元素,讲不能脱离父容器层次的约束。(即,父容器设置了z-index,则子容器只能以父容器数值为准。再给子容器设置了z-index,只能调整子容器在服容器层次之内的层叠次序)

        >>>如果父容器没有设置z-index,或者设置为z-index:auto;则子容器调整z-index将不受父容器层次约束

    ③ z-index:auto;  &  z-index:o;  之间的异同

      a、 z-index:auto;是默认值,与 z-index:o;处于同一平面

      b、 z-index:o;会约束子元素必须与父容器在同意平面

      z-index:auto;不会约束子元素的层次

三、浮动与定位的一些小区别

   float: left|right; 可以自动排列自动折行, 但需要clear来配合清除浮动;position: absolute|relative; 要配合top,left等定位。

    position: absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现,可以设置z-index。PS的图层效果就是position: absolute。

    float也会导致元素脱离文档流,但还在文档或容器中占据位置,把文档流和其它float元素向左或向右挤,并可能导致换行。图片的文字环绕布局效果就是float。CSS允许任何元素浮动float,不论是图像,段落还是列表。无论先前元素是什么状态,浮动后都成为块级元素。浮动元素的宽度缺省为auto。

  浮动有一系列控制它的规则。

    1.浮动元素的外边缘不会超过其父元素的内边缘。

    2.浮动元素不会互相重叠。

    3.浮动元素不会上下浮动。

    4.如果一个浮动元素在另一个浮动元素之后显示,而且会超出容纳块,则它下降到低于先前任何浮动元素的位置。说简单点就是没有空间的话,就另起一行。

  CSS 有三种基本的定位机制:普通流、浮动和绝对定位。

    除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。

    块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。

    行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。

  CSS position 属性

    通过使用 position 属性,我们可以选择 3 种不同类型的定位,这会影响元素框生成的方式。

  position 属性值的含义:

    relative:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

    absolute:元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

    fixed:元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

      提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

  position,我们通常用到的是绝对(absolute)和相对(relative)定位

  通常,做弹出菜单的时候,会用到定位,父元素相对定位position:relative,其中的子元素绝对定位position:absolute,通过top,right,bottom,left的值来控制子元素的位置,要注意的是子元素的位置将相对于父元素,而不是整个页面。

  浮动与定位的区别

    通过定位虽然也可以进行布局,但是它的特点决定了它不适合做页面的布局,因为被定义的元素在普通文档中占有的任何空间都将被关闭,可以说,它是漂浮在整个页面上面的,所以,它可以和页面上其他的内容重叠显示。

    这个特点可以方便的让我们做出其他特殊的效果,但是相对与浮动就布局来说,我们更多的还是用浮动。

时间: 2024-10-12 20:09:17

CSS小随笔(三)浮动与定位的相关文章

css小随笔(二)与通用样式

51先在学校HTML5已经有半个多月了,然后这个星期做了一个京东的手机网站,接触到了通用样式,下面以京东的手机站为例 这两个就是京东手机站了的不同的两个板块,因为HTML5仅仅只是学完了基本标签跟css的标签,所以在没有接触通用样式之前很可能就是这两个板块就是两个不同的代码了,然后就会导致css文件里面的代码会非常的多,也会是比较混乱的,不能够清楚明了的看懂.而且应用的通用样式就是可以用一套代码来搞定各个类似板块,并且每个板块不同的地方仅仅需要微调就可以了.这样不仅仅使代码明了,而且还会很省事,

CSS框模型,浮动,定位以及其他属性

1.CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式 element : 元素. padding : 内边距,也有资料将其翻译为填充. border : 边框. margin : 外边距,也有资料将其翻译为空白或空白边. 围绕在元素边框的空白区域是外边距.设置外边距会在元素外创建额外的“空白”.设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位.百分数值甚至负值. * { margin: 0; padding: 0;}

CSS学习8(浮动和定位)

浮动 CSS允许浮动任何元素. 浮动元素 首先,会以某种方式将浮动元素从文档的正常流中删除,不过它还是会影响布局.一个元素浮动时,其他内容会"环绕"该元素. 浮动元素的外边距不会与其他元素的外边距合并. 浮动的详细内幕 包含块,浮动元素的包含块是其最近的块级祖先元素. 浮动元素会生成一个块级框,不论元素本身是什么.它会像块级元素一样摆放和表现.对浮动元素声明 display: block也不是不可能,不过没有必要这么做. 浮动元素要遵守的规则: 浮动元素的左(或右)外边界不能超出其包含

css小随笔

一.什么是CSS W3C标准中,倡导有3:其一为内容与表现分离,其二为内容与行为分离,其三为内容结构的语义化.其倡导中第一条的"表现"指的便可以说是CSS.CSS全称Cascading Style Sheets,中文名为层叠样式表,是一种用来表现HTML等文件样式的计算机语言. 二.引入CSS三种样式 1.行内样式表:在HTML标签中,使用style=""的形式引用 缺点:不符合W3C关于内容与表现分离的要求.代码杂乱,不利于后期维护. 2.内部样式表:在head标

CSS系列:CSS中盒子的浮动与定位

1. 盒子的浮动 在标准流中,一个块级元素在水平方向会自动伸展,知道包含它的元素的边接:而在竖直方向与相邻元素依次排列,不能并排. CSS中float属性,默认为none.将float属性的值设置为left或right,元素就会向其父元素的左侧或右侧靠紧.同时默认情况下,盒子的宽度不再伸展,而是根据盒子里面的内容的宽度来决定. float: left; 可以使用clear来清除浮动: clear: left | right | both; 2. 盒子的定位 在CSS中有一个position属性,

css通用小笔记02——浮动、清除(三个例子)

css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果  2.多个div并排显示 3.清除浮动(默认显示) 一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: left;padding: 10px;border: 1px solid red;} 5 #big span {font-size: 2

第3天:CSS浮动、定位、表格、表单总结

今天学的是浮动.定位.表格.表单等内容,这些是CSS中最容易混淆的知识,有许多小技巧在写代码过程中需要注意.下面是主要知识点: 一.float浮动1.块元素在一行显示2.内联元素支持宽高3.默认内容撑开宽度4.脱离文档流5.提升层级半层二.clear清除浮动1.加高(扩展性不好)给浮动元素的父级设置同样的高度2.给父级加浮动(页面中所有元素都要加浮动,margin左右失效)3.inline-block(margin左右auto失效)4.空标签加浮动(div )(任何用到的地方都要加).clear

CSS基础知识---浮动,定位和盒模型

转载请注明出处! 需要掌握的三个最重要的CSS概念是浮动,定位和盒模型. 盒模型概述: 页面上的每个元素都被看做一个矩形框(元素框or盒模型),这个框由元素内容,内边距,边框和外边距组成. 内边距出现在内容区域的周围,如果为元素添加背景,那么背景就会应用于由内容和内边距组成的区域.添加边框会在内边距的区域外边加一条线.在边框外边是外边距,外边距是透明的,一般用它来控制元素之间的间隔. 内边距,边框,和外边距是可选的,默认值为零.但是许多元素由用户代理样式表设置了外边距和内边距,我们可以将元素的m

CSS彻底研究(3)-浮动,定位

CSS彻底研究(3)-浮动,定位 一 . 浮动float I . 定义及规则 float默认为none,对应标准流的情况.当float : left;时,元素就会向其父元素的左侧靠紧,脱离标准流,同时宽度不再伸展至充满父容器,而是根据自身内容来确定. II . 演示规则 准备代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type&qu