css 中的position定位和flex布局分析

CSS样式布局的艺术:深入理解Position与Flexbox Position和Flexbox是现代CSS布局的两大支柱。Position:适用于精确控制元素位置Flexbox:适用于内容流和分布排列实际项目中,大多数布局会结合使用这两种技术。掌握它们的关系和最佳实践,你将能创建出既美观又灵活的网页设计。之前作者有点忙,没有发现有一个尘封已久的草稿(就是上一篇啦),本来是要讲盒子和定位的,后来发现将定位和弹性布局一起讲更合理,所以努力肝出这一篇博客。另外提一嘴,大物,离散和电工是啥必学的科目吗~<head> 阅读详情
AI摘要

本文详细介绍了CSS中的三种定位方式:fixed、absolute和relative的特点及应用实例,并深入解析了Flex布局的基础概念、盒子属性及条目属性等内容。

position定位

fixed绝对定位

fixed 生成绝对定位的元素,相对于浏览器窗口(或手机等终端窗口)进行定位。元素的位置通过"left", "top", "right"以及"bottom"属性进行规定。
实例:

    <view style='position:fixed;bottom:100rpx;right:100rpx'>
      <image style=' width:102rpx; height:110rpx' src="/images/music/music-start.png"></image>
    </view>

基于浏览器窗口(或手机等终端窗口)浮动于文档流之上,随着滚动一直停留在屏幕之中。

absolute绝对定位

absolute生成绝对定位的元素。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
例1,一个列表中的相对定位:


  <view style='position:absolute;'>
    <image style=' width:102rpx; height:110rpx' src="/images/music/music-start.png"></image>
  </view>

在没有使用 “left”, “top”, “right” 以及 “bottom” 属性之前,基于文档流的位置停留在在文档流之外,随着滚动并不一直停留在屏幕中。

例2:


  <view style='position:absolute;bottom:100rpx;right:100rpx'>
    <image style=' width:102rpx; height:110rpx' src="/images/music/music-start.png"></image>
  </view>

在使用 “left”, “top”, “right” 以及 “bottom” 属性之后,位置就不是基于文档流时候的位置,而是根据这些设置的属性基于整个屏幕的位置确定的。随着滚动并不一直停留在屏幕中。

relative相对定位

生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20” 会向元素的 LEFT 位置添加 20 像素。

<html>
<head>
<style type="text/css">
h2.pos_left
{
position:relative;
left:-20px
}
h2.pos_right
{
position:relative;
left:20px
}
.container{
 margin-left:100px;
 border:5px solid #405f80;
}
</style>
</head>

<body>
    <div class="container">
        <h2>这是位于正常位置的标题</h2>
        <h2 class="pos_left">这个标题相对于其正常位置向左移动</h2>
        <h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
    </div>
</body>

</html>

效果如下:

static默认定位

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

flex布局

盒子属性

1、Flex布局

.box{
  display: flex | inline-flex ;
}
  • flex :任何一个容器都可以指定为 Flex 布局。
  • inline-flex :行内元素也可以使用 Flex 布局。

设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

2、flex-direction 属性决定主轴的方向(即项目的排列方向)。

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

3、flex-wrap属性
默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}
  • nowrap(默认):不换行。
  • wrap:换行,第一行在上方。
  • wrap-reverse:换行,第一行在下方。

4、justify-conten t属性定义了项目在主轴上的对齐方式。

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}
  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

5、align-items 属性定义项目在交叉轴上如何对齐。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

条目属性

1、order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

.item {
  order: <integer>;
}

2、flex-grow 属性定义项目的放大比例,按照比例分配剩余空间,默认为0,即如果存在剩余空间,也不放大。

.item {
  flex-grow: <number>; /* default 0 */
}

3、flex-shrink 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效。

.item {
  flex-shrink: <number>; /* default 1 */
}

4、align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

本文部分参考了 Flex 布局教程:语法篇

归纳HTML中上下左右居中对齐5个方式6个方法(postion2个方式、display:flex、grid、table-cell3个方式和flex、grid、table-cell属性详解) 目录 HTML文本 显示效果 方式1 方式2(2种) 方式3 display:flex属性详解 方式4 display:grid属性详解 方式5 display:table-cell、vertical-align:middle属性详解 HTML文本 <div class="parent"> <div class="child"></div> </div> 显示效果 方式1 设置position:absolut.. 阅读详情

相关推荐

CSS静态页脚实现原理与现代Flex布局实战

静态页脚是前端布局中高频出现的基础需求,本质是解决内容高度不可预知时页脚的视觉锚定问题。其核心原理依赖于CSS弹性盒模型(Flexbox)对文档流的精准控制,通过min-height: 100vh、flex-direction: column与margin-top: auto协同作用,使页脚在视口底部稳定吸附而不脱离流、不遮挡内容、不破坏打印样式。相比position: fixed等传统方案,Flex方案具备语义化友好、可访问性合规、响应式鲁棒性强等技术价值,广泛应用于企业官网、后台系统、营销落地页等真实工

weixin_33895516的博客 452

CSS position 定位之 Flex

CSS position 定位之 Flex 一、Flex是什么 Flex是Flexible Box的缩写,意为“弹性盒子” /*块内元素*/display:flex;/*行内元素*/display:inline-flex; 二、基本概念 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做.

wangbadandzy的博客 4291

CSS定位(position)属性详解与实战应用

CSS中的position属性是前端开发的核心布局技术,它通过static、relative、absolute、fixed和sticky五种定位方式,控制元素在文档流中的表现。理解定位上下文和层叠上下文是关键,前者决定元素的定位参考系,后者管理元素的z轴显示顺序。在实际工程中,position常与Flex/Grid布局配合使用,既能实现精确的局部定位,又能保持整体布局的弹性。典型应用包括模态框居中、固定导航栏、粘性侧边栏等场景。掌握定位技术能有效解决z-index失效、滚动错位等常见布局问题,同时需要注意浏

weixin_31497453的博客 313

CSS基础知识(三)——Float Position flex布局

介绍了CSS中的 float、position、flex三种布局以及BFC的有关知识,重点在于解决父元素高度塌陷的问题。

weixin_54799350的博客 2250

Mac新手必看:用Homebrew安装wget的保姆级教程,附常见报错一键修复

本文为Mac新手提供使用Homebrew安装wget的详细教程,涵盖从Homebrew安装到wget基础使用的全流程,并附常见报错一键修复方案。通过本指南,用户可轻松掌握命令行下载工具wget的安装与使用技巧,解决Mac环境下资源下载的各种问题。

weixin_30635053的博客 366

STM32F407通过FSMC接口与LAN9252的EtherCAT从站移植实战

本文详细介绍了在STM32F407平台上,通过FSMC接口驱动LAN9252 EtherCAT从站控制器的完整移植实战。内容涵盖硬件连接、FSMC时序配置、官方SDK代码分析与关键修改、EtherCAT协议栈集成适配,以及实战调试与稳定性优化技巧,旨在帮助工程师解决工业通信中的核心挑战,实现稳定高效的实时控制网络接入。

weixin_29268267的博客 274

css布局(盒子,浮动,定位position,弹性盒子flex)

css布局(盒子,浮动,定位position,弹性盒子flex)

m0_74854911的博客 1613

树莓派5安装ROS2小白指南避坑攻略

手把手教你如何在树莓派5上顺利安装ROS2,避开常见问题与陷阱,提升配置效率。针对树莓派5安装ros2过程中的依赖冲突、源配置错误等高频难题提供解决方案,适合新手快速上手。

weixin_35754962的博客 1003

CSS布局flex、position、display、visibility、opacity分析

flex:1 解析 可以实现均分外层容器空间的效果。 flex 是 flex-grow,flex-shrink,flex-basis 三个属性值的缩写 flex-grow: 1; flex-shrink: 1; flex-basis: 0%; flex-grow flex-grow用于设置各item项按对应比例划分剩余空间,若flex中没有指定flex-grow,则相当于设置了flex-grow:1 flex-shrink flex-shrink用于设置item的总和超出容器空间时,

小帅の技术博客 665

“双系统”出炉!瑞芯微RK3562J非对称AMP:Linux+RTOS/裸机

执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。

创龙,嵌入式一体化解决方案商 467

div行为矫正手册:从盒模型到布局层的四层控制体系

div是HTML中最基础的块级容器,其默认的流式布局、content-box盒模型和静态定位共同构成了前端布局的底层逻辑。理解div在渲染流程中的四层行为——结构层的文档流特性、盒模型的尺寸计算规则(含margin折叠与box-sizing影响)、布局层的display机制(flex/grid/position协同),以及绘制层的视觉属性触发条件(如transform重绘优化),是解决90%页面错位、间距异常、响应失效等高频问题的关键。本文聚焦div在真实项目中暴露的典型失控行为,结合浏览器渲染原理,提供可

weixin_30420305的博客 341

华为od 面试八股文_操作系统_01_含答案

华为od 面试八股文_操作系统_01_含答案

MISAYAONE的博客 3274

HTML和CSS四大核心布局技术详解:Float浮动布局、Flex弹性布局、Grid网格布局与Position定位

在前端开发中,CSS布局是构建网页的基础技能。本文将全面解析CSS中四种最常用的布局方式:Float浮动布局、Flex弹性布局、Grid网格布局以及Position定位布局,帮助开发者根据不同场景选择合适的布局方案。掌握这四种CSS布局技术是前端开发的基础。随着浏览器支持度的提升,建议在新项目中优先使用Flex和Grid布局,它们能提供更强大、更灵活的布局能力,同时代码更简洁、更易维护。Position定位适合处理特殊定位需求,而Float布局在现代网页开发中已逐渐被淘汰,仅需了解其原理以维护老项目即可。

2401_85751940的博客 1742

【SpringBoot 3.x 第43节】你还敢说 Spring 启动慢是“宿命”?Spring AOT 把启动剧本都提前写死了,你服不服?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。

**My Coding Family** 539

操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权

先将操作在本地执行,使用procmon进行监控,过滤DLL和 NAME NOT FOUND ,寻找可以替换的DLL文件,注意文件的权限是否可以在目录写入,可以看到在C盘的tools目录的文件中有一个srrstr.dll被调用,但是没有加载,我们生成恶意的DLL文件看看是否可以被劫持。在Windows中许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库文件,即dll文件,放置于系统中,个人理解类似于我们编程中引入的模块。将我们生成的DLL文件改名为我们要劫持的DLL文件名。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1873

CSS 主流布局

你真的了解四大主流布局方式吗?本文将带你了解CSS 的标准流、浮动、Flex 与 Grid 等主要布局系统.

2402_88969947的博客 1978

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

css 布局简述

grid-template-columns / grid-template-rows: 定义网格轨道大小,同时隐式创建网格线/* 基础用法:定义网格轨道 *//* 3条列轨道 *//* 2条行轨道 *//* 命名网格线:为网格线命名以便引用 *//* fr 单位:按比例分配可用空间 *//* 1:2:1 比例的3条轨道 *//* repeat() 函数:重复模式 *//* 重复创建3条等宽轨道 *//* 重复轨道和网格线名 *//* 响应式轨道:根据容器大小自动调整 */

dcp666的博客 846

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Position、Flex 和 Grid 的冲突与协作速记

加了 position: absolute。单独使用 Position。Flex/Grid 容器。使用 Position。正常 Flex 布局。使用 Flexbox。

askein的博客 502

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

css 布局的几种方式

而且也加入了来支持 teble 布局。用法如下但是它也有自身的局限性,比如 table 比其它 html 标记占更多的字节(造成下载时间延迟,占用服务器更多流量资源),table 会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度,让用户等待更久的时间),但是某些情况下,当采用其他方式不能很好的达到自己的效果时,采用 table 布局能适应当前场景。2 flex 布局。

2401_89284204的博客 818

CSS 布局全面解析:从传统浮动到现代 Flexbox 和 Grid

在前端开发中,布局和元素定位是构建网页的基础,掌握这些技术能让你在页面设计中游刃有余。无论是响应式设计,还是精细化的元素排列,CSS 提供了强大的工具来帮助开发者轻松实现这些需求。元素定位与浮动。首先,我们会介绍传统的布局方法,如float和position,以及现代布局技术如flexbox和grid,它们各自的优缺点及适用场景。接着,我们会详细解析常用的定位方式,包括staticrelativeabsolutefixed和sticky,以及浮动技术和如何清除浮动,确保页面布局不受影响。

吴师兄大模型的博客 1333

网页设计--css之传统盒式布局与flex弹性布局(2026/2/19)

本文对比了传统盒式布局与Flex弹性布局的特点。传统布局通过float和position实现排列,存在高度塌陷、适配性差等问题。Flex布局通过display:flex创建弹性容器,具有flex-direction、flex-wrap等属性控制主轴排列方式,以及justify-content、align-items等属性实现灵活对齐。子项目可通过order、flex-grow等属性调整顺序和伸缩比例。Flex布局简化了响应式设计,是更现代的网页布局方案。文章最后预告将通过商城案例展示Flex布局的实际应用。

2401_86252365的博客 1111

Terrarium 项目 CSS 布局重构实战:从绝对定位迁移到 Flexbox 与 CSS Grid

本篇文章围绕 Web-Dev-For-Beginners 课程中 Terrarium(玻璃盆栽)项目的 CSS 重构作业展开,核心目标是将当前基于 `position: absolute` 的传统布局重构为现代 CSS 布局体系(Flexbox 或 CSS Grid),在保持植物与玻璃罐视觉位置不变的前提下,获得更易维护、天然响应式的页面结构。读完本文,你将掌握"分析旧布局 → 设计新布局 → 迁

gitblog_01074的博客 814

CSS尺寸、盒子模型、定位、浮动与布局(Flex/Grid)

注意:带有-reverse后缀的值会保持布局轴的方向不变(水平/垂直),但反转项目在该轴上的排列顺序(起点变终点,终点变起点)),同时也会反转对齐点(如justify-content: flex-start会变成从右向左对齐)。如果元素A是浮动的,且A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行)。如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,即A的顶部总是和上一个元素的底部对齐。自身在常规流中的位置仍然保留。

2501_94586864的博客 304

CSS定位与布局,详解div位置设置技巧

个人更倾向于结合flex和grid布局,减少对绝对定位的依赖,以提升代码的可维护性。在网页布局中,元素作为最常用的容器之一,用于承载文本、图片等内容。absolute(绝对定位):元素脱离文档流,相对于最近的非static定位祖先元素进行定位。static(默认定位):元素遵循正常的文档流,无法通过top、bottom等属性调整位置。relative(相对定位):元素基于其原始位置进行偏移,但原本的空间仍被保留。fixed(固定定位):元素相对于浏览器窗口固定,常用于导航栏或悬浮按钮。

756

深入理解div与CSS:从盒模型到flex/grid布局实战

div是HTML中最基础的块级容器,其本质是服从文档流的空元素,视觉表现完全依赖CSS控制。理解CSS的核心逻辑——层叠(特异性优先级)、继承(文本属性可传、盒模型不可传)和标准盒模型(content-box与border-box差异),是解决布局失效问题的关键。现代前端开发中,flex用于一维弹性布局,grid专精二维网格划分,二者共同替代了已淘汰但需理解的float布局。结合transition动画、响应式媒体查询及可访问性适配,div可实现高性能、语义清晰、跨设备一致的交互动态效果。

weixin_34014555的博客 360
上一篇: 使用JMS进行消息传递
下一篇: 微信小程序中日常 tip 笔记
She_lock
博客等级 码龄12年 157粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值