CSS布局定位+装饰

news2024/10/10 2:22:42

一、定位

1.1 网页常见布局方式

1. 标准流

1. 块级元素独占一行 → 垂直布局

2. 行内元素/行内块元素一行显示多个 → 水平布局

2. 浮动

1. 可以让原本垂直布局的 块级元素变成水平布局

3. 定位

1. 可以让元素自由的摆放在网页的任意位置

2. 一般用于 盒子之间的层叠情况

➢ 定位的常见应用场景是什么?

1. 解决盒子与盒子之间的层叠问题 → 定位之后元素层级最高,可以层叠在其他盒子上

2. 可以让盒子始终固定在屏幕中的某个位置

2.1 定位初体验

2.2 使用定位的步骤

1. 设置定位方式

➢ 属性名:position

➢ 常见属性值:

 2. 设置偏移值

➢ 偏移值设置分为两个方向,水平和垂直方向各选一个使用即可

➢ 选取的原则一般是就近原则 (离哪边近用哪个)

 3.1 静态定位

➢ 介绍:静态定位是默认值,就是之前认识的标准流。

➢ 代码:

➢ 注意点: 1. 静态定位就是之前标准流,不能通过方位属性进行移动

2. 之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定

4.1 相对定位

➢ 介绍:自恋型定位,相对于自己之前的位置进行移动

➢ 代码:

position: relative;

➢ 特点:

1. 需要配合方位属性实现移动

2. 相对于自己原来位置进行移动

3. 在页面中占位置 → 没有脱标

➢ 应用场景: 1. 配合绝对定位组CP(子绝父相) 2. 用于小范围的移动

5.1 绝对定位

➢ 介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动

➢ 代码:

position: absolute;

➢ 特点: 1. 需要配合方位属性实现移动

2. 默认相对于浏览器可视区域进行移动

3. 在页面中不占位置 → 已经脱标

➢ 应用场景: 1. 配合绝对定位组CP(子绝父相)

5.2 绝对定位到底相对于谁进行偏移

➢ 绝对定位相对于谁移动?

1. 祖先元素中没有定位 → 默认相对于浏览器进行移动

2. 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动

6.1 子绝父相介绍

➢ 场景:让子元素相对于父元素进行自由移动

➢ 含义: • 子元素:绝对定位 • 父元素:相对定位

➢ 子绝父相好处: • 父元素是相对定位,则对网页布局影响最小

(拓展) 子绝父绝特殊场景

➢ 场景:在使用子绝父相的时候,发现父元素已经有绝对定位了,此时直接子绝即可!

➢ 原因: • 父元素已经有定位已经满足要求,如果盲目修改父元素定位方式,可能会影响之前写好的布局

(案例)子绝父相水平居中案例-解决方法

1. 子绝父相

2. 先让子盒子往右移动父盒子的一半 • left:50%

3. 再让子盒子往左移动自己的一半

• 普通做法:margin-left:负的子盒子宽度的一半

缺点:子盒子宽度变化后需要重新改代码

• 优化做法:transform:translateX(-50%)

优点:表示沿着X轴负方向(往左)始终移动自己宽度的一半,子盒子宽度变化不需要更改代码

7.1 固定定位

➢ 介绍:死心眼型定位,相对于浏览器进行定位移动

➢ 代码:

position: fixed;

➢ 特点:

1. 需要配合方位属性实现移动

2. 相对于浏览器可视区域进行移动

3. 在页面中不占位置 → 已经脱标

➢ 应用场景: 1. 让盒子固定在屏幕中的某个位置

定位的特点:

 8.1 元素层级问题

➢ 不同布局方式元素的层级关系: • 标准流 < 浮动 < 定位

➢ 不同定位之间的层级关系:

• 相对、绝对、固定默认层级相同

• 此时HTML中写在下面的元素层级更高,会覆盖上面的元素

8.2 更改定位元素的层级

➢ 场景:改变定位元素的层级

➢ 属性名:z-index

➢ 属性值:数字

• 数字越大,层级越高

二、装饰

1.1 认识基线(了解)

➢ 基线:浏览器文字类型元素排版中存在用于对齐的基线(baseline)

 1.2 文字对齐问题

1.3 垂直对齐方式

 (拓展)项目中 vertical-align 可以解决的问题

1. 文本框和表单按钮无法对齐问题

2. input和img无法对齐问题

3. div中的文本框,文本框无法贴顶问题

4. div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题

5. 使用line-height让img标签垂直居中问题

➢ 注意点: • 学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题 • 推荐优先使用浮动完成效果

2.1 光标类型

➢ 场景:设置鼠标光标在元素上时显示的样式

➢ 属性名:cursor

➢ 常见属性值:

 3.1 边框圆角

➢ 场景:让盒子四个角变得圆润,增加页面细节,提升用户体验

➢ 属性名:border-radius

➢ 常见取值:数字+px 、百分比

 ➢ 赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角!

4.1 溢出部分显示效果

➢ 溢出部分:指的是盒子 内容部分 所超出盒子范围的区域

➢ 场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条……

➢ 属性名:overflow

➢ 常见属性值:

 5.1 元素本身隐藏

➢ 场景:让某元素本身在屏幕中不可见。

如:鼠标:hover之后元素隐藏

➢ 常见属性: 1. visibility:hidden 2. display:none

➢ 区别:

1. visibility:hidden 隐藏元素本身,并且在网页中 占位置

2. display:none 隐藏元素本身,并且在网页中 不占位置

➢ 注意点: • 开发中经常会通过 display属性完成元素的显示隐藏切换 • display:none;(隐藏)、 display:block;(显示)

(拓展)元素整体透明度

➢ 场景:让某元素整体(包括内容)一起变透明

➢ 属性名:opacity

➢ 属性值:0~1之间的数字 • 1:表示完全不透明 • 0:表示完全透明

➢ 注意点: • opacity会让元素整体透明,包括里面的内容,如:文字、子元素等……

(拓展)边框合并

➢ 场景:让相邻表格边框进行合并,得到细线边框效果 ➢ 代码:border-collapse:collapse;

 三、选择器拓展

1.1 链接伪类选择器

➢ 场景:常用于选中超链接的不同状态

➢ 选择器语法:

 ➢ 注意点:

• 如果需要同时实现以上四种伪类状态效果,需要按照 LVHA 顺序书写

记忆口诀:男盆友送了你一个 LV 包包,你开心的 HA 哈笑

• 其中 :hover伪类选择器 使用更为频繁,常用于选择各类元素的悬停状态

2.1 焦点伪类选择器

➢ 场景:用于选中元素获取焦点时状态,常用于表单控件

➢ 选择器语法:

 3.1 属性选择器

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

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

相关文章

Java的运行时数据区域

Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有些区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是依赖用户线程的启动和结束而建立和销毁。 根据《Jav…

OpenAI宣布安卓版ChatGPT正式上线;一站式 LLM底层技术原理入门指南

&#x1f989; AI新闻 &#x1f680; OpenAI宣布安卓版ChatGPT正式上线 摘要&#xff1a;OpenAI今日宣布&#xff0c;安卓版ChatGPT已正式上线&#xff0c;目前美国、印度、孟加拉国和巴西四国的安卓用户已可在谷歌Play商店下载&#xff0c;并计划在下周拓展到更多地区。Chat…

VMware Network Adapter VMnet1和VMnet8 未识别的网络问题

在安装虚拟机的时候使用的网络类型未NAT模式&#xff0c;但是却无法和外部网络ping通&#xff0c;并且使用Xshell进行连接反应也非常慢&#xff1b;于是在我查询半天问题之后&#xff0c;这个问题得到了解决&#xff0c;具体如下&#xff1a; 在使用NAT网络模式的时候需要进行…

【portswigger】第二专题-XSS(二)

portswigger 靶场&#xff08;第二章节&#xff09;XSS 视频同步更新至bilibili bibi地址欢迎关注微信公众号&#xff1a;微光安全团队 这是官方备忘录&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet总体目录 我这里简单总结一下每个…

nodejs+vue+elementui高校科研队伍管理系统_2byeq

系统阐述的是使用科研管理系统&#xff0c;对于nodejs、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了vue框架和MySql数据库技术搭建系统的整体架构。利用这些技术结合实际需…

【Haclon】Liunx每个月过期了怎么使用

Liunx每个月过期怎么使用 1.去gitHub进行下载2. 下载最新的Halcon_licenses3.进行替换 1.去gitHub进行下载 https://github.com/lovelyyoshino/Halcon_licenses 2. 下载最新的Halcon_licenses sudo vim ~/.bashrc找到/opt/halcon 3.进行替换 /opt/halcon/license 将这个目…

百万数据分页查询优化方案

分页问题 分页列表查询是项目中的热点需求&#xff0c;这种需求的特点是&#xff1a;字段多、数据量大、访问频繁、使用率高的特点&#xff0c;这个功能是给用户最直观的展示系统的信息&#xff0c;针对于多、大、频、热这几个特点&#xff0c;会引申出一个问题&#xff1a;列…

swmm模型城市内涝一维二维耦合;海绵城市+SWMM完整版教程

随着计算机的广泛应用和各类模型软件的发展&#xff0c;将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。本次将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立&#xff0c;利用SWMM实现排水系统水力模拟。讲解SWMM…

el-table 表格头部合并

<el-table v-loading"listLoading" :key"tableKey" :data"list" stripe border fit highlight-current-rowstyle"width: 100%;" size"mini"><el-table-column label"第一行" align"center">…

Windows 安装 Redis5

Windows 安装 Redis5 安装包 Redis for Windows 5.0.14.1 https://github.com/tporadowski/redis/releases/tag/v5.0.14.1 安装教程 选择安装路径&#xff0c;并勾选下方&#xff0c;将 Redis 添加到系统环境变量 这个是 Redis 默认的端口号&#xff0c;无特殊需求不用改 设置…

ES6 模块编程(新思路方便复习笔记)

文章目录 ES6 模块编程(新思路方便复习笔记)介绍需求说明思路分析/图解代码实现创建common.js创建use_common.js 其它导出形式--直接导出创建common2.js创建use_common2.js 其它导出形式--默认导出创建common3.js创建use_common3.js--导入默认导出模块/数据注意事项和使用细节导…

毓恬冠佳冲刺上市:打破汽车天窗外商垄断,长安汽车为其主要客户

撰稿|行星 来源|贝多财经 7月23日&#xff0c;上海毓恬冠佳科技股份有限公司&#xff08;以下简称“毓恬冠佳”&#xff09;在深圳证券交易所的审核状态变更为“已问询”。据贝多财经了解&#xff0c;毓恬冠佳于2023年6月27日递交招股书&#xff0c;准备在创业板上市。 本次冲…

十一、数据结构——树(Tree)的基本概念

数据结构之树(Tree) 目录 树的基本概念树的分类树的基本操作树的应用结语 树的基本概念 树是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用。树的特点是以分层的方式存储数据&#xff0c;具有层次结构&#xff0c;类似于现实生活中的树状结构。在树中&#xff…

环境变量初始化与对应文件的生效顺序

正常登陆情况下&#xff08;不是系统启动过程而是输入用户名和密码登录时&#xff0c;或者注销用户重新登录&#xff09;&#xff0c;环境变量配置文件的调用过程&#xff1a; // 正常登陆时环境变量配置文件的调用过程 /etc/profile|--/etc/profile.d/*|--/etc/profile.d/lan…

设计模式---综合应用-自定义Spring框架-自定义Spring IOC-定义解析器、IOC容器相关类

3 定义解析器相关类 3.1 BeanDefinitionReader接口 BeanDefinitionReader是用来解析配置文件并在注册表中注册bean的信息。定义了两个规范&#xff1a; 获取注册表的功能&#xff0c;让外界可以通过该对象获取注册表对象。 加载配置文件&#xff0c;并注册bean数据。 /*** …

提示工程101|与 AI 交谈的技巧和艺术

随着 ChatGPT 的问世&#xff0c;人工智能&#xff08;AI&#xff09;新时代也正式开启。ChatGPT 是一种语言模型。它与用户进行对话交互&#xff0c;以便用户输入问题或提示&#xff0c;模型响应&#xff0c;然后对话可以继续来回进行&#xff0c;类似于在消息传递应用程序上向…

docker容器日志大小限制

docker的日志随着时间推移越来越大&#xff0c;我们可以做出一些限制。 docker的日志驱动设置有两种方式&#xff0c;一种是全局配置&#xff0c;一种是特定容器的限制。 这里我选择特定容器限制更加的符合生产环境。全局配置下&#xff0c;需要重启docker。 参考官方文档&am…

在Chrome(谷歌浏览器)中安装Vue.js devtools开发者工具及解决Vue.js not detected报错

文章目录 一、Vue.js devtools开发者工具安装1.打开谷歌浏览器——点击扩展程序——选择管理扩展程序2.先下载添加一个谷歌助手到扩展程序中&#xff08;根据提示进行永久激活&#xff09;3.点击谷歌浏览器的应用商店4.输入Vue.js devtools——搜索——选择下载 二、解决Vue.js…

10.python设计模式【代理模式】

内容&#xff1a;为其他对象提供一种代理一控制对这个对象的访问 应用场景&#xff1a; 远程代理&#xff1a; 为远程的对象提供代理虚代理&#xff1a;根据需要创建很大的对象保护代理&#xff1a;控制对原始对象的访问&#xff0c;用于对象有不同访问权限时 UML图 举个例…

vue中Cascader 级联选择器实现-修改实现

vue 的cascader研究了好长时间&#xff0c;看了官网给的示例&#xff0c;上网查找了好多信息&#xff0c;才解决修改时回显的问题&#xff0c;现将方法总结如下&#xff1a; vue代码&#xff1a; <el-form-item label"芯片" prop"firmware"> <…