CSS中的定位体系

一、概述

????1、什么是定位体系

????视觉格式化模型规定,定位体系共有三种

????????????a.常规流(normal flow)

????????????b.浮动(float)

????????????c.绝对定位(absolute posotioned)

????任何一个元素,必须属于其中一种定位系统

二、定位体系判定

????

三、盒模型和定位体系

1、盒模型=盒子体系

????定位体系=盒子位置

2、盒模型中的尺寸

  • margin:px、em、%、auto
  • border:px、em
  • padding:px、em、%、auto
  • height:px、em、%、auto

px、em:1em=10px(盒子中的字体大小为10px)

%:尺寸是包含快尺寸的百分比,margin、padding、width的百分比是宽度的百分比

auto:尺寸受到定位体系的规则

3、常规流

????又叫普通流、文档流、普通文档器,是最常见的,默认状态下的定位

???? a.常规流块盒水平方向上的居中(常用)

????????????step1 给块盒设宽度

????????????????水平方向的尺寸,必须等于包含快的宽度

????????????step2 给块盒margin设置 :0 auto

???? b.垂直方向上居中

????????????若两个外边距相邻,则进行合并(折叠)

????????????合并:

  • 两个包含块均为正值,则取最大的值
  • 两个包含块均为负值,则取最小的值
  • 两个包含块一正一负,则取两个值相加

????????????注:水平方向的外边距不会合并

4、浮动 float

????????取值:float:right/left;

????????清浮动,即,找回父级的高度

????

5、flex 弹性盒子

????????display:flex;(在容器内增添)

????????分为:容器(父元素) 项目(子元素)

????(1)容器的属性:

  • direction 控制子元素的方向(行、列)

????????????????????flex-direction:row;主轴为水平方向,子元素从左到右排列,为默认值

????????????????????flex-direction:row-reverse;主轴为水平方向,子元素从右到左排列

????????????????????flex-direction:colum;主轴为垂直方向,子元素从上到下排列

????????????????????flex-direction:colum-reverse;主轴为水平方向,子元素从下到上排列

  • wrap 换行

????????????????????flex-wrap:nowrap;不换行,为默认值

????????????????????flex-wrap:wrap;换行,第一行在上方

????????????????????flex-wrap:wrap-reverse;换行,第一行在下方

  • justify-content 主轴方向对齐方式

????????????????????justify-content:center;主轴方向居中

????????????????????justify-content:flex-end;主轴结束位置flex-end对齐

????????????????????justify-content:flex-start;主轴起始位置flex-start对齐

????????????????????justify-content:space-between;两端对齐,

???????????????????? 即第一个项目在容器的起始位置,最后一个项目在容器的结束位置。

????????????????????justify-content:space-around;分散对齐

????????????????????(计算公式: (剩余空间 / 项目个数)/2得到的结果,就是每个项目的左右距离。)

????????????????????justify-content:space-evenly;平均分散对齐

???????????????????? 每个项目之间的距离相同,即平分剩余空间

????????????????<space 对剩余空间的分配方式,剩余空间 = 容器的尺寸 - 项目尺寸之和>

  • align 交叉轴方向对齐方式

????????????????????一根主轴(itmes):

????????????????????????align-items: flex-start;交叉轴起始位置flex-start对齐

????????????????????????align-items: flex-end;交叉轴结束位置flex-end对齐

????????????????????????align-items: center;交叉轴居中对齐

????????????????????????align-items: baseline;交叉轴基线对齐

????????????????????多跟主轴(content):

????????????????????????项目在开通换行后

????????????????????????align-content: flex-start;交叉轴起始位置flex-start对齐

????????????????????????align-content: flex-end;交叉轴结束位置flex-end对齐

????????????????????????align-content: center;交叉轴居中对齐

????????????????????????align-content: space-between;交叉轴起始和结束位置对其(上下两端对其)

????????????????????????align-content: space-around;交叉轴分散对齐

????????????????(当容器交叉的尺寸大于各项目尺寸之和,才需要进行对齐方式的设置。)

????(2)项目的属性

????????????????order 定义项目排列顺序,数值越小,排列越靠前,默认值为0

????????????????flex-grow 定义项目的放大比例,默认为0,即,即使有剩余空间也不放大

????????????????????若设值为>0,则,将按照设值的数值比例分配剩余空间

????????????????flex-shrink 定义项目的缩小比例,默认为1,即,如果空间不足,则将项目按比例缩小

????????????????????若一个项目为0,其余为1,则,空间不足时前者不缩小

????????????????flex-basis 定义分派多余空间前,项目占据的主轴空间,默认为0,即,项目本来大小

????????????????align-self 允许单个项目与其他项目不一样的对齐方式,可覆盖 align-items的属性,默认值为auto

????????????????????表示继承父元素align-items的属性

????????????????flex属性是这三多的缩写

????????????????????默认值:0 1 auto;

????????????????????快捷键

????????????????????????auto(1 1 auto)

????????????????????????none(0 0 auto)

???????????? flex-flow,属性是flex-direction和flex-wrap属性的简写

????????????????????默认值为 :row nowrap;

6、绝对定位

????(1)相对位置

position:relative

????????????相当于盒子在原本定位体系下的位置,移动后会保留原来的位置,不影响其他元素的位置

????????????????属于常规流

????????????将盒子的position属性设为relative 以启用相对位置

????(2)固定位置

????????????position:fixed;

  • 概念:

????????????????????1、脱离文档流(不占位置)

???????????????????? 2、宽度为auto(内容的宽)

???????????????????? 3、方向值 top:。。。(不给方向值,原来在什么位置,就在什么位置)

  • 包含块:是视口的起始点(0,0),左上角
  • 使用场景

????????????????????1、AD(广告)

????????????????????2、导航、页角

????????????????????3、遮罩层(页面弹窗)

  • 堆叠级别

????????????????????默认值为0;

????????????????????取值5以内

????(3)绝对位置

????????????position:absolute;

  • 概念

???????????????????? 1、脱离文档流(不占位置)

???????????????????? 2、宽度为auto(内容的宽)

???????????????????? 3、方向值(不给方向值,原来在什么位置,就在什么位置)

???????????????????? 4、包含块position推荐取(relative)

  • 包含块

????????????????????看父级的position是否为static,不是则该父级为包含块

  • 适用场景

???????????????????? 当多个标签需要重叠展示时

原文地址:https://www.cnblogs.com/yuanjunjundebo/p/11829420.html

时间: 2024-10-02 00:57:32

CSS中的定位体系的相关文章

深入理解css中的定位属性:position

深入理解css中的定位属性:position 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共有四种不同的定位方法,分别是static.fixed.relative.absolute. 第一部分:static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到top,bottom,left,right的影响. 如html代码如下: <div class=&qu

Css中Position定位属性与层级关系

今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Css中Position定位属性与层级关系</title> 6 <style type="text/css"> 7 #W{ 8

CSS中的定位与浮动

CSS中的定位与浮动 本文主要讲述CSS中的三种定位样式static.relative和absolute的区别以及浮动元素的特征. 定位样式 CSS中定位样式position的取值有三个,默认值:static,相对定位:relative,绝对定位:absolute. static: 采用默认定位时,一般可以不用设置position样式. 各个元素是按照文档流的形式从上往下排,同时保证块状元素独占一行的原则. relative : 生成相对定位的元素,相对于其正常位置进行定位,同时配合top, b

css中的定位属性position

同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来实现的一些特效经常会用到定位属性,比如鼠标滑过显示被隐藏的盒子, banner的切换,还有之前写的jquery实现京东商品分类导航的类似这样的布局也是要结合定位属性来实现,但是上一次着重只写了jquery. 那么这次我想将定位属性的运用拿来说一下. 定位属性position常用的取值:relative/absolute/fixed;一般配

总结一下CSS中的定位 Position 属性

在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位.元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定. relative:生成相对定位的元素,相对于其

css中的定位

上一篇博客,我大概介绍了下浮动的使用及行为.其实在整个文档布局中,定位也对我们整个的页面排版有非常好的帮助,当然前提是使用得当. 一.定位分类: a.静态定位  position:static;    :元素按照正常的文档流顺序出现,位置等不产生任何改变(文档流的默认属性). b.相对定位  position:relative;:元素盒会产生移动,并且它在文档流中的原始空间会保留下来. c.绝对定位  position:absolute;:元素从文档流中脱离出来,相对于容器块产生移动,原始空间不

对css中的定位属性postion刨根解牛

定位的基本思想很简单: 它允许你定义元素框相对于其正常位置应该出现的位置(relative),或者相对于父元素(absolute).另一个元素甚至浏览器窗口本身的位置(fixed).显然,这个功能非常强大,也很让人吃惊. 一切皆为框: div.h1 或 p 元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”. CSS 定位机制 CSS 有三种基本的定位机制:普通流.浮动和绝对

浅谈CSS中的定位知识

1,静态定位(static) 表示按照正常定位方案,元素盒按照在文档流中出现的顺序依次格式化: 2,相对定位(relative) 将移动元素盒,但是它在文档流中的原始空间会保留下来: 相对定位元素有如下几个基本特征: 1,.使用CSS样式规则{position: relative:}声明: 2.使用一个到多个偏移属性(top.right.bottom.left)相对于它们在正常文档流中的初始位置定位.没有 设置偏移属性的,默认被设置为auto: 3.在文档流中所占据的原始空间被保留: 4.可能会

CSS中position定位

定义和用法 position 属性规定元素的定位类型. 说明 这个属性定义建立元素布局所用的定位机制.任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型.相对定位元素会相对于它在正常流中的默认位置偏移. 默认值: static 继承性: no 版本: CSS2 JavaScript 语法: object.style.position="absolute" 可能的值 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元