Web - CSS3浮动定位与背景样式

概述

这篇文章主要介绍了 CSS3 中的浮动定位、背景样式、变形效果等内容。包括 BFC 规范与创建方法、浮动的功能与使用要点、定位的多种方式及特点、边框与圆角的设置、背景的颜色、图片等属性、多种变形效果及 3D 旋转等,还提到了浏览器私有前缀。

BFC规范与浏览器差异

BFC,(Box Formatting Content 块级格式化上下文)是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。

一个盒子不设置height,当内容子元素都浮动时,无法撑起自身,原因是这个盒子没有行成BFC。

创建BFC

1、float的值不是none

2、position的值不是static 就是relative

3、display的值是inline-block、flex、inline-flex

4、overflow: hidden

浏览器差异

IE6、7浏览器使用haslayout机制,和BFC规范略有差异,比如IE浏览器可以使用zoom:1属性,让盒子拥有layout

浮动

浮动的最本质功能,用来实现并排。

浮动的使用要点:

1、要浮动,并排的盒子都要设置浮动。
2、父盒子要有足够的宽度,否则子盒子会掉下去。
3、子盒子会按顺序进行贴靠,如果没有足够空间,则会寻找再前一个兄弟元素。

浮动的元素不再区分块级元素、行内元素,已经脱离了标准文档流,一律能设置宽度和高度,即使他是span、a标签。

使用浮动布局网页

注意事项:

1、垂直显示的盒子不需要浮动,不要设置浮动,只有并排显示的盒子才需要浮动!

2、大盒子带着小盒子跑,一个大盒子中,又是一个小天地,内部可以继续使用浮动。

定位

脱离标准文档流的方法:浮动、绝对定位、固定定位。相对定位是不会脱离文档流的。

固定定位

固定定位只能以页面为参考点,没有子固父相这个性质,固定定位脱离标准文档流。

p {position: fixed;top: 100px;
}
绝对定位

盒子可以在浏览器中以坐标进行位置精准描述,拥有自己的绝对位置。

p {position: absolute;top: 100px;
}

位置描述词:left到左边的距离,right是到右边的距离,top是到上边的距离,bottom是到下面的距离。

绝对定位的元素脱离标准文档流,将释放自己的位置,对其他元素不会产生任何干扰,而是对他们进行压盖。

绝对定位的盒子并不是永远以浏览器作为基准点,会以自己的祖先元素中,离自己最近的拥有定位属性的盒子,当做基准点,这个盒子通常是相对定位的,所以这个性质也叫做子绝父相。

绝对定位的盒子垂直居中:

p {position: absolute;top: 50%;margin-top: "自己高度的一半";
}

z-index属性是一个没有单位的正整数,数值大的能够压住数值小的。

相对定位

盒子可以相对自己原来的位置进行调整,成为相对定位。

位置描述词:left向左边移动的距离,right向右边移动的距离,top向上边移动的距离,bottom向下面移动的距离,值可以为负数,既往相反方向移动。

p {position: relative;top: 100px;left: 100px;
}

相对定位的元素,会在老家留坑,本质上仍然是在原来的位置,只不过渲染在新的位置而已,渲染的图行可以比喻成影子,不会对其他元素产生任何影响。

相对定位的用途:相对定位用来微调元素的位置,相对定位的元素,可以当做绝对定位的参考盒子。

边框与圆角

边框

border属性的三要素:线宽度、线型、线颜色。

div {border: 1px solid red;
}p {border-width: 10px;   /**线宽*/border-style: dotted; /**线型*/border-color:red;     /**线颜色*/
}
线型值意义
solid实线
dashed虚线
dotted点状线

边框三要素可以拆分为小属性:

线型值意义
solid实线
dashed虚线
dotted点状线

border-left:none;属性即可去掉左边框,以此类推。

盒子阴影

css中使用box-shadow属性值来设置阴影,默认是外部阴影,添加inset属性是内部阴影。

 /**外部阴影*/.box2 {width: 200px;height: 200px;background-color: white;border: 1px solid #000;box-shadow: 2px 2px 10px 10px rgba(0,0,0,.4);margin-bottom: 10px;
}/**内部阴影*/
.box3 {width: 200px;height: 200px;background-color: white;border: 1px solid #000;box-shadow: inset 0px 0px 10px red;margin-bottom: 10px;
}

使用box-shadow属性值可以用逗号隔开多个,表示携带多个阴影,包括内外阴影都可以。

 .box4 {width: 200px;height: 200px;background-color: white;border: 1px solid #000;box-shadow: 2px 2px 30px red, 4px 4px 40px blue, 6px 6px 50px green, inset 0px 0px 6px orange;margin-bottom: 10px;
}
圆角

css3中使用border-radius属性设置圆角。

.box2 {width: 200px;height: 200px;border: 1px solid #000;border-radius: 20px;
}

背景

背景颜色

background-color属性表示背景颜色,背景颜色可以使用十六进制、rgb()、rgba()表示法表示,padding区域是有背景颜色的。

背景图片

css中使用background-image属性用来设置背景图片,图片路径要写到url圆括号中,可以是相对路径,也可以是http://开头的绝对路径。

如果样式表是外链的,那么要书写从css出发到图片的路径,而不是从html出发。

.box2 {background-image: url("images/bg.jpg");
}
背景图片位置

background-position属性可以设置背景图片出现在盒子的什么位置。

css精灵:将多个小图标合并制作到一张图片上,使用background-position属性单独显示其中一个,这样的技术叫做css精灵技术,也叫作css雪碧图。

css精灵可以减少Http请求数,加快网页显示速度。缺点也很明显:不方便测量、后期改动麻烦。

背景尺寸

background-size属性用来设置背景图片的尺寸,兼容到IE9,值也可以用百分数来设置,表示为盒子宽、高的百分之多少,需要等比例设置的值,写auto

containcover是两个特殊的属性,contain表示将背景图片智能改变尺寸以容纳到盒子里,cover表示将背景图片智能改变尺寸以撑满盒子。

背景裁切

background-clip属性用来设置元素的背景裁切到那个盒子,兼容到IE9。

意义
border-box背景延伸至边框(默认值)
padding-box背景延伸至内边(padding),不会绘制到边框处(仅在dotted、dashed边框可察觉)
content-box背景被剪裁至内容区
背景固定

background-attachment属性决定背景图像的位置是在视口内固定,或者随着包含他的区块滚动。

意义
fixed自己滚动条不动,外部滚动条不动
local自己滚动条动,外部滚动条动
scroll自己滚动条不动,外部滚动条动(默认值)
背景重复

background-repeat属性用来设置背景的重复模式

意义
repeatx、y均平铺(默认)
repeat-xx平铺
repeat-yy平铺
no-repeat不平铺
背景线性渐变

盒子的背景图片可以使用属性linear-gradient形式创建线性渐变背景。

.box {width: 200px;height: 200px;background-image: linear-gradient(to right,blue,red);
}

渐变方向也可以写成度数。

.box {width: 200px;height: 200px;background-image: linear-gradient(45deg,blue,red);
}
背景径直渐变

盒子的背景图片可以使用属性linear-gradient形式创建线性渐变背景,第一个参数指定的是圆心坐标。

.box {width: 200px;height: 200px;background-image: radial-gradient(50% 50%,red,blue);
}
浏览器私有前缀

不同浏览器有不同的私有前缀,用来对试验性质的css属性加以标识。

品牌前缀
Chrome 、Safari-webkit-
Firefox-moz-
IE、Edge-ms-
Opera-o-

2D效果

旋转变形

css3样式中使用transform属性的值设置为rotate,即可实现旋转变形,若角度为正,则顺时针方向旋转,否则逆时针方向旋转,deg是旋转角度单位不能省略。

.box {width: 200px;height: 200px;background-color: #1b77cc;transform: rotate(45deg);
}

可以使用transform-origin属性设置自己的自定义变换原点,默认是绕着自己位置的中心点。

.box {width: 200px;height: 200px;transform: rotate(45deg);transform-origin: 0 0 ;
}
缩放变形

css3样式中使用transform属性的值设置为scale,即可实现缩放变形,当数值大于1,表示放大元素,当元素小于1,表示缩小元素。

斜切变形

css3样式中使用transform属性的值设置为skew,即可实现缩放变形,skew有两个参数,分别是x斜切角度,y斜切角度。

.box {width: 200px;height: 200px;background-color: #6f42c1;transform: skew(10deg,20deg);
}
位移变形

css3样式中使用transform属性的值设置为translate,即可实现位移变形,和相对定位非常像,位移变形也会老家留坑,形影分离。

.box {width: 200px;height: 200px;background-color: #6f42c1;transform: translate(100px,200px);
}

3D旋转

css3样式中使用transform属性的值设置为rotateX、rotateY,即可实现绕横轴、纵轴旋转,rotateZ(10deg)是平面旋转。

3D旋转虽然简单,但是3D效果存在舞台概念,必须设置perspective属性,用来定义透视强度,可以理解为人眼到舞台的距离,单位是px。

<body><div class="box1"><p></p></div><div class="box2"><p></p></div><div class="box3"><p></p></div>
</body>
/**旋转X轴*/
.box1 {width: 202px;height: 202px;border: 1px solid #000;margin: 50px auto;perspective: 300px;
}.box1 p {transform: rotateX(30deg);
}/**旋转Y轴*/
.box2 {width: 202px;height: 202px;border: 1px solid #000;margin: 50px auto;perspective: 300px;
}.box2 p {transform: rotateY(30deg);
}/**同时旋转X轴、Y轴*/
.box3 {width: 202px;height: 202px;border: 1px solid #000;margin: 50px auto;perspective: 300px;
}.box3 p {transform: rotateX(30deg) rotateY(30deg);
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3566-移植5.10内核Ubuntu22.04

说明 记录了本人使用泰山派&#xff08;RK3566&#xff09;作为平台并且成功移植5.10.160版本kernel和ubuntu22.04&#xff0c;并且成功配置&连接网络的完整过程。 本文章所用ubuntu下载地址&#xff1a;ubuntu-cdimage-ubuntu-base-releases-22.04-release安装包下载_开源…

实现基础的shell程序

1. 实现一个基础的 shell 程序&#xff0c;主要完成两个命令的功能 cp 和 ls 1.1.1. cp 命令主要实现&#xff1a; ⽂件复制⽬录复制 1.1.2. ls 命令主要实现&#xff1a; ls -l 命令的功能 1.1. 在框架设计上&#xff0c;采⽤模块化设计思想&#xff0c;并具备⼀定的可扩…

计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)

电子邮件系统&#xff1a; SMTP协议 基本概念 工作原理 连接建立&#xff1a; 命令交互 客户端发送命令&#xff1a; 服务器响应&#xff1a; 邮件传输&#xff1a; 连接关闭&#xff1a; 主要命令 邮件发送流程 SMTP的缺点: MIME&#xff1a; POP3协议 基本概念…

Java 数据库连接池:HikariCP 与 Druid 的对比

Java 数据库连接池&#xff1a;HikariCP 与 Druid 的对比 数据库连接池&#xff1a;HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化&#xff0c;减少了不必要的开销&#xff0c;使得连接获取和释放的速度极快。 在…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化

1.25 视觉风暴&#xff1a;NumPy驱动数据可视化 目录 #mermaid-svg-i3nKPm64ZuQ9UcNI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i3nKPm64ZuQ9UcNI .error-icon{fill:#552222;}#mermaid-svg-i3nKPm64ZuQ9UcNI …

【实践案例】基于大语言模型的海龟汤游戏

文章目录 项目背景提示词构建海龟汤主持人真相判断专家 具体实现流程文心一言大语言模型“海龟汤”插件参考 项目背景 “海龟汤”作为一种聚会类桌游&#xff0c;又称情境推理游戏&#xff0c;是一种猜测情境还原事件真相的智力游戏。其玩法是由出题者提出一个难以理解的事件&…

Spring PropertyPlaceholderConfigurer多配置问题

本文重点是通过例子代码的debug了解PropertyPlaceholderConfigurer的原理 更多可阅读&#xff1a;placeholderconfigurer文档 了解 目录 测试程序如下PropertyPlaceholderConfigurerplaceholderConfigurer1 & placeholderConfigurer2的执行userbean的BeanDefinition应用Pr…

PVE纵览-解锁 PVE 的潜力:配置显卡直通

PVE纵览-解锁 PVE 的潜力&#xff1a;配置显卡直通 文章目录 PVE纵览-解锁 PVE 的潜力&#xff1a;配置显卡直通摘要显卡直通的优势准备工作硬件要求软件要求 启用 IOMMU修改 BIOS 设置配置 PVE 系统 配置显卡直通识别设备编辑配置文件安装必要驱动 常见问题及解决方案显卡直通…

线性调整器——耗能型调整器

线性调整器又称线性电压调节器&#xff0c;以下是关于它的介绍&#xff1a; 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器&#xff08;电气隔离和整流&#…

Unity 2D实战小游戏开发跳跳鸟 - 计分逻辑开发

上文对障碍物的碰撞逻辑进行了开发,接下来就是进行跳跳鸟成功穿越过障碍物进行计分的逻辑开发,同时将对应的分数以UI的形式显示告诉玩家。 计分逻辑 在跳跳鸟通过障碍物的一瞬间就进行一次计分,计分后会同步更新分数的UI显示来告知玩家当前获得的分数。 首先我们创建一个用…

机器学习中的关键概念:通过SKlearn的MNIST实验深入理解

欢迎来到我的主页&#xff1a;【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库&#xff0c;提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上&#xff0c;支持…

vim-plug的自动安装与基本使用介绍

vim-plug介绍 Vim-plug 是一个轻量级的 Vim 插件管理器&#xff0c;它允许你轻松地管理 Vim 插件的安装、更新和卸载。相较于其他插件管理器&#xff0c;vim-plug 的优点是简单易用&#xff0c;速度较快&#xff0c;而且支持懒加载插件&#xff08;即按需加载&#xff09; 自动…

pytorch图神经网络处理图结构数据

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是一类能够处理图结构数据的深度学习模型。图结构数据由节点&#xff08;vertices&#xff09;和边&#xff08;edges&#xff09;组成&a…

[mmdetection]fast-rcnn模型训练自己的数据集的详细教程

本篇博客是由本人亲自调试成功后的学习笔记。使用了mmdetection项目包进行fast-rcnn模型的训练&#xff0c;数据集是自制图像数据。废话不多说&#xff0c;下面进入训练步骤教程。 注&#xff1a;本人使用linux服务器进行展示&#xff0c;Windows环境大差不差。另外&#xff0…

对比uart iic spi 三种总线的使用

1.uart串口通信 1.1uart的通信总线方式 1.2查询开发板和数据手册对需要进行修改的串口进行设置 例如STM32MP157aaa 1.设置8bit数据位 2.设置无校验位 3.设置1bit停止位 4.设置波特率为115200 5.设置16倍过采样 7.使能发送器 TE 8.使能接收器 RE 9.使能串口 UE10.发送数据&…

【玩转 Postman 接口测试与开发2_016】第13章:在 Postman 中实现契约测试(Contract Testing)与 API 接口验证(上)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十三章 契约测试与 API 接口验证1 契约测试的概念2 契约测试的工作原理3 契约测试的分类4 DeepSeek 给出的契约测试相关背景5 契约测试在 Postman 中的创建方法6 API 实例的基本用法7 API 实例的类型实…

java-(Oracle)-Oracle,plsqldev,Sql语法,Oracle函数

卸载好注册表,然后安装11g 每次在执行orderby的时候相当于是做了全排序,思考全排序的效率 会比较耗费系统的资源,因此选择在业务不太繁忙的时候进行 --给表添加注释 comment on table emp is 雇员表 --给列添加注释; comment on column emp.empno is 雇员工号;select empno,en…

尚硅谷课程【笔记】——大数据之Shell【一】

课程视频&#xff1a;【【尚硅谷】Shell脚本从入门到实战】 一、Shell概述 为什么要学习Shell&#xff1f; 1&#xff09;需要看懂运维人员的Shell程序 2&#xff09;偶尔编写一些简单的Shell程序来管理集群、提高开发效率 什么是Shell&#xff1f; 1&#xff09;Shell是一…

pytorch实现长短期记忆网络 (LSTM)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 LSTM 通过 记忆单元&#xff08;cell&#xff09; 和 三个门控机制&#xff08;遗忘门、输入门、输出门&#xff09;来控制信息流&#xff1a; 记忆单元&#xff08;Cell State&#xff09; 负责存储长期信息&…

CDDIS从2025年2月开始数据迁移

CDDIS 将从 2025 年 2 月开始将我们的网站从 cddis.nasa.gov 迁移到 earthdata.nasa.gov&#xff0c;并于 2025 年 6 月结束。 期间可能对GAMIT联网数据下载造成影响。