当前位置: 首页 > news >正文

CSS学习记录12

CSS浮动

CSSfloat属性规定元素如何浮动

CSSclear属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。

float属性

float属性用于定位和格式化内容,例如让图像向左浮动到容器的文本那里。

float属性可以设置以下值之一:

  • left - 元素浮动到其容器的左侧
  • right - 元素浮动在其容器的右侧
  • none - 元素不会浮动(将显示在文本中刚出现的位置)。默认值。
  • inherit - 元素继承其父级的float值

最简单的用法是,float属性可实现(报纸上)文字包围图片的效果。

 举例:下例指定图像应在文本中向左浮动。

img {float: left;
}

 举例:

float设置为none,图像将显示在文本刚出现的位置(float:none;)

img {float: none;
}

 CSS清除浮动

clear属性指定哪些元素可以浮动于被清除元素的旁边以及哪一侧。

clear属性可设置以下值之一:

  • none -  允许两侧都有浮动元素。默认值
  • left - 左侧不允许浮动元素
  • right - 右侧不允许浮动元素
  • both - 左侧或右侧均不允许浮动元素
  • inherit - 元素继承其父级的clear值

使用clear属性的最常见用法是在元素上使用了float属性之后。

在清除浮动时,应该对清除与浮动进行匹配:如果某个元素浮动到左侧,则应清除左侧。您的浮动元素会继续浮动,但是被清除的元素将显示在其下方。

div {clear: left;
}

 clearfix Hack

如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:然后我们可以向包含元素添加overflow:auto; 来解决此问题:

.clearfix {overflow: auto;
}

 只要您能够控制外边距和内边距(否则您可能会看到滚动条),overflow: auto 就会很好的工作。但是,新的现代clearfix hack技术使用起来更安全,以下代码被应用于多数网站:

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

浮动实例

通过使用float属性,可以轻松并排浮动内容框:

* {box-sizing: border-box;
}.box {float: left;width: 33.33%; /* 三个框(四框使用 25%,两框使用 50%,以此类推) */padding: 50px; /* 如果需要在图片间增加间距 */
}

 您可以轻松地并排创建三个浮动框,但是,当您添加一些内容来扩大每个框地宽度(例如,内边距或边框)时,这个框会损坏。box-sizing 属性允许我们在框的总宽度(和高度)中包括内边距和边框,确保内边距留在框内而不会破裂。

等高的框

上例我们学习了如果以相等的宽度并排浮动框。但是创建具有相同高度的浮动框并不容易。不过,快速解决方案是设置一个固定的高度。

.box {height: 500px;
}

但是,这么做就失去了弹性。如果可以保证框中始终具有相同数量的内容,那是可以的。但很多时候,内容是不一样的。这时我们可以使用CSS Flexbox, 因为它可以自动拉伸框使其与最长的框一样长:

.flex-container {display: flex;flex-wrap: nowrap;background-color: DodgerBlue;
}

所有CSS浮动属性 

属性描述
box-sizing定义元素的宽度和高度的计算方式:它们是否应包含内边距和边框。
clear指定哪些元素可以在被清除的元素旁边以及在哪一侧浮动。
float指定元素应如何浮动。
overflow指定如果内容溢出元素框会发生什么情况。
overflow-x指定当溢出元素的内容区域时,如何处理内容的左/右边缘。
overflow-y指定当溢出元素的内容区域时,如何处理内容的上/下边缘。

CSS display:inline-block

与display:inline 相比,主要区别在于 display:inline-block 允许在元素上设置宽度和高度。同样,如果设置了display:inline-block, 将保留上下外边距/内边距,而 display:inline则不会。与display:block相比,主要区别在于display:inline-block在元素之后不添加换行符,因此该元素可以位于其他元素旁边。

使用inline-block 来创建导航链接:

display 的一种常见用法:inline-block 用于水平而不是垂直地显示列表项。

.nav {background-color: yellow; list-style-type: none;text-align: center; padding: 0;margin: 0;
}.nav li {display: inline-block;font-size: 20px;padding: 20px;
}

水平和垂直对齐

居中对齐元素 

 要使块元素(例如<div>)水平居中,请使用margin: auto; 设置元素地宽度将防止其延伸到容器地边缘。然后,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配:

center {margin: auto;width: 50%;border: 3px solid green;padding: 20px;
}

 注意:如果未设置width属性(或将其设置为100%),则居中对齐无效。

居中对齐文本

如果仅需在元素内居中文本,请使用text-align:center; 

.center {text-align: center;border: 3px solid green;
}

居中对齐图像 

如需居中图像,请将左右外边距设置为auto,并将其设置为块元素:

img {display: block;margin-left: auto;margin-right: auto;width: 40%;
}

左和右对齐 - 使用position

对齐元素的一种方法是使用position: absolute;

.right {position: absolute;right: 0px;width: 300px;border: 3px solid #73AD21;padding: 20px;
}

注意:绝对定位的元素将从正常流中删除,并可能出现元素重叠。

左和右对齐 - 使用float

对齐元素的另一种方法是使用float属性:

.right {float: right;width: 300px;border: 3px solid #73AD21;padding: 10px;
}

垂直对齐 - 使用padding 

有很多方法可以在CSS中垂直对齐元素。一个简单的解决方案是使用上下内边距:

.center {padding: 70px 0;border: 3px solid green;
}

垂直对齐 - 使用line-height

另一个技巧是使用其值等于height属性值的line-height 属性:

.center {line-height: 200px;height: 200px;border: 3px solid green;text-align: center;
}/* 如果有多行文本,请添加如下代码:*/
.center p {line-height: 1.5;display: inline-block;vertical-align: middle;
}

垂直对齐 - 使用position 和 transform

 如果您的选择不是padding 和 line-height,则另一种解决方案是使用position 和 transform 属性:

.center { height: 200px;position: relative;border: 3px solid green; 
}.center p {margin: 0;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

垂直对齐- 使用Flexbox 

您还可以使用flexbox将内容居中。

.center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px solid green; 
}

相关文章:

CSS学习记录12

CSS浮动 CSSfloat属性规定元素如何浮动 CSSclear属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。 float属性 float属性用于定位和格式化内容&#xff0c;例如让图像向左浮动到容器的文本那里。 float属性可以设置以下值之一&#xff1a; left - 元素浮动到其容器…...

【Java基础面试题016】JavaObject类中有什么主要方法,作用是什么?

equals() 作用&#xff1a;用于比较两个对象是否相等。默认实现比较对象的内存地址&#xff0c;即判断两个引用是否指向同一个对象 使用&#xff1a;通常会重写此方法来比较对象的内容 hashCode() 作用&#xff1a;返回对象的哈希值&#xff0c;用整数表示对象。 使用&…...

实践环境-docker安装mysql8.0.40步骤

一、docker安装mysql 8.0.40版本 1、检索镜像版本 docker search mysql:8.0.40 NAME DESCRIPTION STARS OFFICIAL mysql MySQL is a widely used, open-source relation… …...

边缘智能创新应用大赛获奖作品系列一:智能边缘计算✖软硬件一体化,开启全场景效能革命新征程

边缘智能技术快速迭代&#xff0c;并与行业深度融合。它正重塑产业格局&#xff0c;催生新产品、新体验&#xff0c;带动终端需求增长。为促进边缘智能技术的进步与发展&#xff0c;拓展开发者的思路与能力&#xff0c;挖掘边缘智能应用的创新与潜能&#xff0c;高通技术公司联…...

决策树的生成与剪枝

决策树的生成与剪枝 决策树的生成生成决策树的过程决策树的生成算法 决策树的剪枝决策树的损失函数决策树的剪枝算法 代码 决策树的生成 生成决策树的过程 为了方便分析描述&#xff0c;我们对上节课中的训练样本进行编号&#xff0c;每个样本加一个ID值&#xff0c;如图所示…...

蓝桥杯算法训练 黑色星期五

题目描述 有些西方人比较迷信&#xff0c;如果某个月的13号正好是星期五&#xff0c;他们就会觉得不太吉利&#xff0c;用古人的说法&#xff0c;就是“诸事不宜”。请你编写一个程序&#xff0c;统计出在某个特定的年份中&#xff0c;出现了多少次既是13号又是星期五的情形&am…...

MySQL存储引擎-存储结构

Innodb存储结构 Buffer Pool(缓冲池)&#xff1a;BP以Page页为单位&#xff0c;页默认大小16K&#xff0c;BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和索引时会在Page页中缓存&#xff0c;以后使用可以减少磁盘IO操作&#xff0c;提升效率。 ○ Page根据状态可以分…...

理解torch函数bmm

基本信息 功能描述 torch.bmm 是 PyTorch 中的一个函数&#xff0c;用于执行批量矩阵乘法&#xff08;Batch Matrix Multiplication&#xff09;。它适用于处理一批矩阵的乘法操作&#xff0c;特别适合于深度学习任务中的场景&#xff0c;比如卷积神经网络中的某些层。 参数…...

2024 年的科技趋势

2024 年在科技领域有着诸多重大进展与突破。从人工智能、量子计算到基因组医学、可再生能源以及新兴技术重塑了众多行业。随着元宇宙等趋势的兴起以及太空探索取得的进步&#xff0c;未来在接下来的岁月里有望继续取得进展与突破。让我们来探讨一下定义 2024 年的一些关键趋势&…...

win服务器的架设、windows server 2012 R2 系统的下载与安装使用

文章目录 windows server 2012 R2 系统的下载与安装使用1 windows server 2012 的下载2 打开 VMware 虚拟机软件&#xff08;1&#xff09;新建虚拟机&#xff08;2&#xff09;设置虚拟机&#xff08;3&#xff09;打开虚拟机 windows server 2012&#xff08;4&#xff09;进…...

leetcode45.跳跃游戏II

标签&#xff1a;动态规划 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:返回到达 nums[n - 1] 的最小跳跃次数。…...

边缘智能创新应用大赛获奖作品系列三:边缘智能强力驱动,机器人天团花式整活赋能千行百业

边缘智能技术快速迭代&#xff0c;并与行业深度融合。它正重塑产业格局&#xff0c;催生新产品、新体验&#xff0c;带动终端需求增长。为促进边缘智能技术的进步与发展&#xff0c;拓展开发者的思路与能力&#xff0c;挖掘边缘智能应用的创新与潜能&#xff0c;高通技术公司联…...

基于语义的NLP任务去重:大语言模型应用与实践

引言 在自然语言处理&#xff08;NLP&#xff09;任务中&#xff0c;数据质量是模型性能的关键因素之一。重复或冗余的数据会导致模型过度拟合或浪费计算资源&#xff0c;特别是在大语言模型&#xff08;如 BERT、GPT 系列等&#xff09;训练和推理阶段。传统的基于字符匹配的…...

使用阿里云Certbot-DNS-Aliyun插件自动获取并更新免费SSL泛域名(通配符)证书

进入nginx docker&#xff0c;一般是Alpine Linux系统 1. 依次执行命令: sudo docker-compose exec nginx bashapk updateapk add certbot apk add --no-cache python3 python3-dev build-baseapk add python3 py3-pippip3 install --upgrade pippip3 install certbot-dns-ali…...

Node.js安装配置+Vue环境配置+创建一个VUE项目

目录 安装Node.js搭建VUE环境 安装Node.js 下载 测试是否安装成功 在目录下新建两个文件夹 管理员打开cmd npm config set prefix "D:\Software\nodejs\node_global" npm config set cache "D:\Software\nodejs\node_cache"将默认的 C 盘下【 AppData\…...

“TA”说|表数据备份还原:SQLark 百灵连接助力项目部署验收

&#x1f4ac; 南飞雁&#xff5c;应用开发工程师 有些重要项目的部署验收&#xff0c;会在生产环境完成&#xff0c;验收完成后&#xff0c;又需要把这部分数据清空。这时就需要对数据表进行备份和还原&#xff0c;虽然可以通过命令直接实现&#xff0c;但是有一些操作门槛&am…...

【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )

文章目录 一、解封装1、封装与解封装流程2、解封装 常用函数 二、解封装函数简介1、avformat_alloc_context 函数2、avformat_free_context 函数3、avformat_open_input 函数4、avformat_close_input 函数5、avformat_find_stream_info 函数6、av_read_frame 函数7、avformat_s…...

Spring Boot 集成 MyBatis 全面讲解

Spring Boot 集成 MyBatis 全面讲解 MyBatis 是一款优秀的持久层框架&#xff0c;与 Spring Boot 集成后可以大大简化开发流程。本文将全面讲解如何在 Spring Boot 中集成 MyBatis&#xff0c;包括环境配置、基础操作、高级功能和最佳实践。 一、MyBatis 简介 1. SqlSession …...

C语言小练习-打印字母倒三角

编写一个程序&#xff0c;在用户输入某个大写字母后&#xff0c;产生一个金字塔图案。 #include <stdio.h>int main(int argc,char *argv[]) {char ch; loop:printf("请输入大写字母&#xff01;\n");scanf("%c",&ch);getchar();if(ch < A ||…...

Linux -- 线程控制相关的函数

目录 pthread_create -- 创建线程 参数 返回值 代码 -- 不传 args&#xff1a; 编译时带 -lpthread 运行结果 为什么输出混杂&#xff1f; 如何证明两个线程属于同一个进程&#xff1f; 如何证明是两个执行流&#xff1f; 什么是LWP&#xff1f; 代码 -- 传 args&a…...

新手福音:用快马平台零代码基础生成产区标准对比网页

新手福音&#xff1a;用快马平台零代码基础生成产区标准对比网页 作为一个刚接触编程的新手&#xff0c;我一直想学习如何用网页展示地理数据的差异。最近在研究农产品产区划分时&#xff0c;发现一线产区和二线产区的标准对比是个很好的学习案例。通过InsCode(快马)平台&…...

告别手动填表!用n8n+企业微信,5分钟搞定每日销售报表自动推送

告别手动填表&#xff01;用n8n企业微信&#xff0c;5分钟搞定每日销售报表自动推送 每天早晨9点&#xff0c;销售团队的工作群准时弹出昨日业绩报表——这不是IT部门的功劳&#xff0c;而是一个由n8n驱动的全自动化流程。当传统企业还在用Excel手工汇总数据时&#xff0c;前沿…...

javaweb计算机教学活动教室预约系统聊天机器人

目录同行可拿货,招校园代理 ,本人源头供货商功能模块划分智能聊天机器人功能系统集成设计技术实现要点项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块划分 用户管理模块 实现…...

Ubuntu22.04下RocketMQ-CPP客户端2.2.0编译踩坑实录(附完整依赖包下载)

Ubuntu 22.04下RocketMQ-CPP客户端2.2.0编译全指南&#xff1a;从依赖解析到实战应用 在分布式消息中间件领域&#xff0c;RocketMQ以其高吞吐、低延迟的特性成为企业级应用的首选。而RocketMQ-CPP客户端作为C生态的重要桥梁&#xff0c;其编译过程却常让开发者陷入依赖地狱和…...

【含文档+源码】基于Web的面对面爱心众筹平台的设计与实现

项目介绍本课程演示的是一款 基于Web的面对面爱心众筹平台的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项…...

FanControl完全攻略:智能风扇控制的动态平衡技术与多场景应用

FanControl完全攻略&#xff1a;智能风扇控制的动态平衡技术与多场景应用 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…...

扑兔AI营销获客:AI文案缺乏人味儿的技术原因与优化路径

AI生成的文案&#xff0c;常表现出语言生硬、段落跳跃、事实信息不准确等问题。根本原因在于&#xff0c;多数AI写作工具基于文本拼接逻辑&#xff0c;而非模拟人类写作的完整思维过程——它们不知道写给谁看、没有逻辑链条、不核实事实。扑兔AI软文生成采用12步真人级创作流程…...

MIL图像库实战:从采集卡配置到Qt应用开发

1. 工业视觉项目开发全流程解析 第一次接触MIL图像库时&#xff0c;我被它强大的硬件抽象能力震撼到了。这个由Matrox开发的图像处理库&#xff0c;就像一位经验丰富的翻译官&#xff0c;把不同品牌采集卡的硬件差异统统屏蔽掉。想象一下&#xff0c;你手里有Basler、AVT、Dals…...

微信聊天记录永久保存终极指南:如何让珍贵对话永不消失

微信聊天记录永久保存终极指南&#xff1a;如何让珍贵对话永不消失 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...

概率论其实很简单:从“明天会不会下雨”到“AI怎么猜你心思”

一、概率就是“长期来看&#xff0c;这件事发生的比例”你早上看天气预报&#xff0c;说“降水概率30%”。你心想&#xff1a;才30%&#xff0c;不带了伞。结果下午淋成落汤鸡。你骂天气乱报&#xff1f;不用。因为30%的意思是&#xff1a;如果像今天这样的天气有100天&#xf…...