【CSS3】css开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉

Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。

如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的内容感兴趣,记得关注我👀👀以便不错过每一篇精彩。

当然,如果在阅读中发现任何问题或疑问,我非常欢迎你在评论区留言指正🗨️🗨️。让我们共同努力,一起进步!

加油,一起CHIN UP!💪💪

🔗个人主页:E绵绵的博客
📚所属专栏:

1. JAVA知识点专栏

        深入探索JAVA的核心概念与技术细节

2.JAVA题目练习

        实战演练,巩固JAVA编程技能

3.c语言知识点专栏

        揭示c语言的底层逻辑与高级特性

4.c语言题目练习

        挑战自我,提升c语言编程能力

5.Mysql数据库专栏

        了解Mysql知识点,提升数据库管理能力

6.html5知识点专栏

        学习前端知识,更好的运用它

7. css3知识点专栏

        在学习html5的基础上更加熟练运用前端

8.JavaScript专栏

        在学习html5和css3的基础上使我们的前端使用更高级

📘 持续更新中,敬请期待❤️❤️

这次我们要了解网页布局,要学习浮动和定位两个知识点。 

2.标准流 

标准流(Normal Flow)是网页布局的默认排版模式,指的是元素在没有使用浮动、定位等特殊布局属性时,按照默认的排列顺序进行排列的机制。所有元素默认情况下都会遵循标准流进行布局。


所谓的标准流:就是标签按照规定好的默认方式排列。

块级元素会独占一行,从上向下顺序排列。
行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。


以上都是标准流布局,我们前面学习的就是标准流,标准流是最基本的布局方式。

这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。

注意: 实际开发中,一个页面基本都包含了这三种布局方式

3.浮动 

loat 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

浮动特性 

加了浮动之后的元素,会具有很多特性,需要我们掌握。

  1. 浮动元素会脱离标准流(脱标)
  2. 浮动的元素会一行内显示并且元素顶部对齐
  3. 浮动的元素会具有行内块元素的特性

浮动元素会脱离标准流(脱标)

  • 脱离标准普通流的控制(浮) 移动到指定位置(动),(俗称脱标)
  • 浮动的盒子不再保留原先的位置

 


<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>浮动特性1</title>
    <style>
        /* 设置了浮动(float)的元素会:
        1.脱离标准普通流的控制(浮)移动到指定位置(动)。
        2.浮动的盒子不再保留原先的位置 */
        .box1 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .box2 {
            width: 300px;
            height: 300px;
            background-color: gray;
        }
    </style>
</head>

<body>
    <div class="box1">浮动的盒子</div>
    <div class="box2">标准流的盒子</div>
</body>

</html>

浮动的元素会一行内显示并且元素顶部对齐 

  • 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列。
  • 浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。

浮动的元素会具有行内块元素的特性 

任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性,无需用display转换。

块级盒子:没有设置宽度时默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
行内盒子:原本的宽度默认和内容一样宽,直接设置高宽无效,但是添加浮动后,它的宽度和高度可以直接设置,无需用display转换


浮动的盒子中间是没有缝隙的,是紧挨着一起的

 浮动带来的问题

后续标准流元素的正常布局 

一个元素浮动了,理论上其余的兄弟元素也要浮动。一个盒子里面有多个子盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动,以防止引起问题。


这是因为浮动会脱标,导致不和标准流在一起排序了,这样就可能导致浮动和标准流发生重叠。


注意浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.

也就是说标准流如果在浮动盒子前面,那么浮动盒子不会影响标准流,会在其下部。而在后面会发生重叠,可能影响到结果。

这时候如果要消除影响,我们就要消除浮动。

 父容器恢复高度

当产生浮动后,我们的浮动元素盒子默认高度是0,所以如果一个盒子里装的全是浮动盒子,该盒子高度就为0,就会坍塌掉,同时还会影响到后面标准流的布局。(当然前面的标准流不会被影响)

这时如果想要不被影响,就要清除浮动,从而它们就能使浮动的盒子恢复到标准流中:高度能恢复成应有的高度,也不会被之前的标准流给重叠影响到,同时它们浮动盒子之间的布局也不会被影响。 

清除浮动 

通常使用以下几种方法来清除浮动:

  1. 使用clearfix :在父元素上应用一个clearfix类,这个类定义了伪元素清除浮动。

    .clearfix::after {
        content: "";
        display: table;
        clear: both;
    }
    

    然后在父元素的类中添加 clearfix 类名,就能清除子元素的浮动。

  2. 使用overflow属性:将父元素的overflow属性设置为auto或者hidden,可以触发BFC(块级格式化上下文),从而清除浮动。

    .parent {
        overflow: hidden; /* 或者 overflow: auto; */
    }
    

    这有个缺点,就是溢出的部分还会隐藏起来。

这些方法可以根据具体情况选择,以确保浮动元素不会破坏页面布局。

浮动元素经常和标准流父级搭配使用

为了约束浮动元素位置,我们网页布局一般采取的策略是:

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。符合网页布局第一准侧

 4.定位

在网页设计中,定位(Positioning)是一种CSS属性,用于控制元素在页面中的位置。常用的定位属性包括:

相对定位

相对于元素自身正常位置进行定位,通过top、right、bottom、left属性来调整位置,不会脱离文档流。

.element {
    position: relative;
    top: 10px;
    left: 20px;
}

相对定位相对的是它原本在文档流中的位置而进行的偏移,并且relative定位遵循正常的文档流,它没有脱离文档流,但是它的top/left/right/bottom属性是生效的。而且它还依然占有文档空间,占据的文档空间不会随 top / right / left / bottom 等属性的偏移而发生变动。也就是说相对定位并不会脱标,依然还是标准流,占据空间依然没变。只不过视觉上发生了变化。

绝对定位 

绝对定位不会保留原来的位置(脱离文档流),那后面盒子就会往上占了它的位置;
如果没有祖先元素或者祖先元素没有定位,则以浏览器为基准定位;
如果祖先元素有定位(可以是相对、绝对或者固定定位),则以最近的已经定位的祖先元素为基准移动位置。
子绝父相 —— 虽然父元素的定位可以是相对、绝对或者固定定位,但是绝对定位和固定定位都会脱离标准流,所以我们实际开发中,一般都使用相对定位,这就是常说的子绝父相。

.element {
    position: absolute;
    top: 50%;
    left: 50%;
}

 固定定位

固定定位相对于浏览器窗口,脱离文档流,使用fixed的元素不会随窗口的滚动而滚动

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>固定定位</title>

    <style>
        .fixed {
            width: 200px;
            height: 200px;
            background-color: aqua;

            /* 使用固定定位 */
            position: fixed;
            top: 50px;
            left: 300px;

        }
    </style>
</head>

<body>
    <div class="fixed">
    </div>

    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>
    <h1>我是h的内容</h1>

</body>

</html>

 

粘性定位 

  1. 基本语法

    .element {
        position: -webkit-sticky; /* 兼容性前缀 */
        position: sticky;
        top: 10px; /* 或者 bottom, left, right 中至少一个值 */
    }
    
  2. 工作原理

    • 元素在页面滚动时表现为相对定位,直到其达到指定的阈值位置(例如距离顶部10px),然后变为固定定位,保持在指定位置不动,直到离开阈值范围。
    • 如果元素离开视口顶部时没有足够的空间放置它,它将像相对定位一样继续滚动,直到可以固定在指定位置。
    • 粘性定位不脱标,原有空间一直不变。
  3. 兼容性

    • 在现代浏览器中有很好的支持,但老版本浏览器可能需要使用 -webkit-sticky 进行兼容性处理。

在设计中,粘性定位常用于创建导航栏在用户滚动时保持在屏幕顶部或侧边的效果,或者创建吸顶效果等。

定位的叠放顺序 

  • z-index 主要适用于已经设置了定位(position: relative, position: absolute, position: fixed, position: sticky)的元素。
  • 只有设置了定位的元素才能通过 z-index 控制其堆叠顺序,因为只有这些元素才能脱离正常文档流并具有层叠上下文。

数值可以是正整数、负整数或0,默认是 auto,数值越大,盒子越靠上
如果属性值相同,则按照书写顺序,后来居上

定位特性

定位也和浮动类似。
1.行内元素添加定位,可以直接设置高度和宽度
2.块级元素添加定位,如果不给宽度或者高度,默认大小是内容的大小。

让一个盒子绝对定位到盒子右中间 

.container {
    position: relative;
    width: 300px; /* 容器宽度 */
    height: 200px; /* 容器高度 */
    background-color: #f0f0f0;
}

.element {
    position: absolute;
    top: 50%; /* 元素顶部定位在容器中间 */
    right: 0; /* 元素右侧与容器右侧对齐 */
    margin-top: -50px; /* 元素向上移动自身高度的一半 */
    width: 100px; /* 元素宽度 */
    height: 100px; /* 元素高度 */
    background-color: #3498db;
}

这种方法可以确保 .element 始终位于 .container 的中间,无论父容器的尺寸如何变化。

浮动元素不会压住标准流文字 

 浮动元素会脱标,当它压住标准流时,文字不会被压住,会环绕在周围显示。

 而定位元素脱标压住标准流时,文字会被压住。

这是因为浮动一开始就是为了环绕文字形成好的效果才设计出来的。

5.显示和隐藏元素 

display 属性可以用于设置一个元素应如何显示,
display:none;隐藏对象
display:block;除了转换为块级元素之外,同时还有显示元素的意思


display隐藏元素后,不再占有原来的位置,并且该空间从文档流中移除

visibility属性用于指定一个元素可见还是隐藏。
visibility:visible;元素可视
visibility:hidden; 元素隐藏


visibility隐藏元素后,继续占有原来的位置,该空间不变

overflow 属性的取值:

  1. overflow: visible;

    • 默认值,内容会溢出元素框外,可能覆盖其它内容。
  2. overflow: hidden;

    • 内容溢出时将被隐藏,不会显示在元素框外部。还能消除内部浮动
  3. overflow: scroll;

    • 无论内容是否溢出,始终显示滚动条。
  4. overflow: auto;

    • 仅在内容溢出时显示滚动条,否则不显示。这个我们经常用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二百七十一、Kettle——ClickHouse增量导入数据清洗记录表

一、目的 在完成错误数据表任务后&#xff0c;需要对每条错误数据的错误字段及其字段值进行分析 Hive中原有SQL语句和ClickHouse现有SQL语句很大不同 二、Hive中原有代码 2.1 表结构 --31、静态排队数据清洗记录表 create table if not exists hurys_db.dwd_data_clean_…

洞察前沿趋势!2024深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛技术公开课指南

在当前信息技术与“互联网”深度融合的背景下&#xff0c;金融行业的转型升级是热门话题&#xff0c;创新与发展成为金融科技主旋律。随着区块链技术、人工智能技术、5G通信技术、大数据技术等前沿科技的飞速发展&#xff0c;它们与金融领域的深度融合&#xff0c;正引领着新型…

uniapp:sqlite最详细教程,小白可直接粘贴复制

新建uniapp项目,需要4个页面, loading 启动页:打开数据库,判断数据表是否存在,表内是否有数据,创建数据表的逻辑。 register 注册页:数据表已存在,但是没有数据,需要进入该页面注册第一条数据 index 首页:展示数据列表内的数据,可修改默认,添加新数据 edit 编辑:编…

linux面试题复习

前言 现在只是初版&#xff0c;很多格式我还没有改好&#xff0c;会慢慢修改订正。 可能用到的网址&#xff1a;在线 EXCEL 到 MARKDOWN 转换器。 参考了很多网上的面试题和外网上的面试题&#xff1a; 参考文档&#xff1a; 程序员的50大Linux面试问题及答案 Top 60 Linux …

机床发那科转profinet IO项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集发那科机床数据 2 5 用PROFINET IO协议转发数据 5 6 案例总结 7 1 案例说明 设置网关采集发那科机床数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关&a…

【安当产品应用案例100集】024-BYOE及BYOK在IaaS场景中的应用

在云计算环境中&#xff0c;尤其是涉及到敏感数据时&#xff0c;企业用户可能会选择自带加密工具或密钥&#xff08;即BYOE或BYOK&#xff09;&#xff0c;以确保数据在传输和存储过程中的安全性。这种方式可以防止云服务提供商访问或泄露加密数据&#xff0c;增强数据保护。 …

OpenCV视觉分析之目标跟踪(1)计算密集光流的类DISOpticalFlow的介绍

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 这个类实现了 Dense Inverse Search (DIS) 光流算法。更多关于该算法的细节可以在文献 146中找到。该实现包含了三个预设参数集&#xff0c;以提…

基于Java+Springboot+Vue开发的鲜花商城管理系统

项目简介 该项目是基于JavaSpringbootVue开发的鲜花商城管理系统&#xff08;前后端分离&#xff09;&#xff0c;这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能&#xff0c;同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜…

网络服务请求流程简单理解

网络流程&#xff1a; DNS负责将域名解析为IP地址&#xff0c;ALB可以在多个服务实例之间分配流量&#xff0c;APISIX作为API网关处理更细粒度的流量管理&#xff0c;Service在Kubernetes中为Pod提供稳定的访问入口&#xff0c;而Kubernetes则负责整个应用的部署、扩展和运维。…

基于STM32F103的LED闪烁仿真-定时器中断方式

基于STM32F103的LED闪烁仿真 仿真软件&#xff1a; Proteus 8.17 编程软件&#xff1a; Keil 5 定时器简介&#xff1a; 高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成&#xff0c;它由一个可编程的预分频器驱动。 它适合多种用途&#xff0c;包含测量输入信…

FastGPT学习(2)- 本地开发通过Navicat管理MongoDB、PostgreSQL数据库

1. 背景 前期已经完成FastGPT的本地化部署工作&#xff0c;通过Docker启动FastGPT的相关容器即可运行。&#xff08;共6个容器&#xff09; 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…

007、链表的回文结构

0、题目描述 链表回文结构 1、法1 一个复杂的问题可以拆解成几个简单的问题&#xff0c;找中间节点和逆置链表&#xff08;翻转链表&#xff09;之前都做过。 class PalindromeList { public://1、找中间节点ListNode* FindMid(ListNode* A){if (A nullptr || A->next …

博客搭建之路:hexo搜索引擎收录

文章目录 hexo搜索引擎收录以百度为例 hexo搜索引擎收录 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 写博客的目的肯定不是就只有自己能看到&#xff0c;想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap 在hexo下的_config.yml中配置站点…

‘perl‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

‘perl’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 明明已经根据教程安装了perl环境,但是在cmd中依赖报该错误,本章教程提供解决办法。 一、激活perl环境 state shell ActiveState-Perl-5.36.0此时输入perl -v 是可以直接输出perl版本号的。 二、找到perl的执…

跨域的几种情况和如何解决跨域问题

在网站开发中&#xff0c;经常会遇到跨域问题&#xff0c;下面总结一下集中常见的跨域问题。 1. 不同域名属于跨域&#xff0c;如&#xff1a;www.a.com 和www.b.com&#xff0c;另外www.a.com 和www.a.com.cn也属于不同域名。 2. 主域名和子域名&#xff08;二级域名、三级域…

192×144像素是几寸照片?如何手机拍照制作

在数字摄影时代&#xff0c;像素是衡量照片质量的重要指标之一。那么&#xff0c;192144像素的照片相当于多少英寸呢&#xff1f;又如何使用手机拍摄并制作这样的照片呢&#xff1f;本文将为您解答。 首先&#xff0c;我们需要了解像素和英寸之间的关系。像素是图像的最小单位&…

分布式篇(分布式事务)(持续更新迭代)

一、事务 1. 什么是事务 2. 事务目的 3. 事务的流程 4. 事务四大特性 原子性&#xff08;Atomicity&#xff09; 一致性&#xff08;Consistency&#xff09; 持久性&#xff08;Durability&#xff09; 隔离性&#xff08;Isolation&#xff09; 5. MySQL VS Oracle …

14款被严重低估的安全红队测试工具推荐,网络攻防|网络安全必看的工具合集推荐!

大家好&#xff0c;我是小强 工具往往可以决定网络安全渗透测试或红队演练活动的成败。虽然Kali中的许多工具都已经过验证且稳定可靠&#xff0c;但并不能适合所有渗透测试场景。对于安全红队而言&#xff0c;需要在不同测试需求下&#xff0c;确保有足够的装备来实现测试目标…

洞见数据未来,StarRocks Summit Asia 2024 即将启幕!

在 AI 时代&#xff0c;我们需要怎样的数据基础软件&#xff1f; 数据量和数据类型的需求飞速上涨&#xff0c;我们不仅需要将历史上各种基础设施中的数据进行分析使用&#xff0c;还要关注性能、灵活性、性价比&#xff0c;以及确保单一可信数据源。这一切构成了当前大数据领…

三维管线管网建模工具MagicPipe3D V3.5.3

经纬管网建模系统MagicPipe3D&#xff0c;本地离线参数化构建地下管网三维模型&#xff08;包括管道、接头、附属设施等&#xff09;&#xff0c;输出标准3DTiles、Obj模型等格式&#xff0c;支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…