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);
}

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

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

相关文章

基于多智能体强化学习的医疗AI中RAG系统程序架构优化研究

一、引言 1.1 研究背景与意义 在数智化医疗飞速发展的当下,医疗人工智能(AI)已成为提升医疗服务质量、优化医疗流程以及推动医学研究进步的关键力量。医疗 AI 借助机器学习、深度学习等先进技术,能够处理和分析海量的医疗数据,从而辅助医生进行疾病诊断、制定治疗方案以…

使用 Elastic Cloud Hosted 优化长期数据保留:确保政府合规性和效率

作者&#xff1a;来自 Elastic Jennie Davidowitz 在数字时代&#xff0c;州和地方政府越来越多地承担着管理大量数据的任务&#xff0c;同时确保遵守严格的监管要求。这些法规可能因司法管辖区而异&#xff0c;通常要求将数据保留较长时间 —— 有时从一年到七年不等。遵守刑事…

【NLP 20、Encoding编码 和 Embedding嵌入】

目录 一、核心定义与区别 二、常见Encoding编码 (1) 独热编码&#xff08;One-Hot Encoding&#xff09; (2) 位置编码&#xff08;Positional Encoding&#xff09; (3) 标签编码&#xff08;Label Encoding&#xff09; (4) 注意事项 三、常见Embedding词嵌入 (1) 基础词嵌入…

【Envi遥感图像处理】010:归一化植被指数NDVI计算方法

文章目录 一、NDVI简介二、NDVI计算方法1. NDVI工具2. 波段运算三、注意事项1. 计算结果为一片黑2. 计算结果超出范围一、NDVI简介 归一化植被指数,是反映农作物长势和营养信息的重要参数之一,应用于遥感影像。NDVI是通过植被在近红外波段(NIR)和红光波段(R)的反射率差异…

7、怎么定义一个简单的自动化测试框架?

定义一个简单的自动化测试框架可以从需求理解、框架设计、核心模块实现、测试用例编写和集成执行等方面入手&#xff0c;以下为你详细介绍&#xff1a; 1. 明确框架需求和范围 确定测试类型&#xff1a;明确框架要支持的测试类型&#xff0c;如单元测试、接口测试、UI 测试等…

web-XSS-CTFHub

前言 在众多的CTF平台当中&#xff0c;作者认为CTFHub对于初学者来说&#xff0c;是入门平台的不二之选。CTFHub通过自己独特的技能树模块&#xff0c;可以帮助初学者来快速入门。具体请看官方介绍&#xff1a;CTFHub。 作者更新了CTFHub系列&#xff0c;希望小伙伴们多多支持…

Linux中的基本指令(二)

一、移动和重命名指令mv 1.1基本作用及使用规范 基本作用是进行文件的移动和重命名&#xff0c;使用规范如&#xff1a; mv src[目录/文件]dst[路径/文件] 回车 1.2三种不同的作用 通过在src部分和dst部分写入不同的内容&#xff0c;来实现文件的移动和重命名的等不同功能…

【RL Latest Tech】安全强化学习(Safe RL):理论、方法与应用

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

qt-Quick笔记之Dark Mode And Light Mode In Application

qt-Quick笔记之Dark Mode And Light Mode In Application code review! 文章目录 qt-Quick笔记之Dark Mode And Light Mode In Application1.运行2.目录结构3.main.qml4.main.cpp5.main.pro6.main.qrc 本例修改自视频教程&#xff1a;Qt QML | &#x1f319; Dark Mode And ☀…

visual studio安装

一、下载Visual Studio 访问Visual Studio官方网站。下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 在主页上找到并点击“下载 Visual Studio”按钮。 选择适合需求的版本&#xff0c;例如“Visual Studio Community”&#xff08;免费版本&#xff09;&#x…

基于Springboot框架的学术期刊遴选服务-项目演示

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

【C++篇】位图与布隆过滤器

目录 一&#xff0c;位图 1.1&#xff0c;位图的概念 1.2&#xff0c;位图的设计与实现 1.5&#xff0c;位图的应用举例 1.4&#xff0c;位图常用应用场景 二&#xff0c;布隆过滤器 2.1&#xff0c;定义&#xff1a; 2.2&#xff0c;布隆过滤器的实现 2.3&#xff0c; 应…

GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)

参考程序代码&#xff1a; #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <map> #include <iostream> #include <cmath> using namespace std;const int N 10…

list容器(详解)

list的介绍及使用&#xff08;了解&#xff0c;后边细讲&#xff09; 1.1 list的介绍&#xff08;双向循环链表&#xff09; https://cplusplus.com/reference/list/list/?kwlist&#xff08;list文档介绍&#xff09; 1. list是可以在常数范围内在任意位置进行插入和删除的序…

RGB565转BITMAP[C#---2]

这是楼主在开发C#上位机的时候遇到的另一个问题&#xff0c;怎么把RGB565转为BITMAP&#xff0c;在CSDN上搜索&#xff0c;要么是安卓平台的&#xff0c;要么是2011年的古早代码&#xff08;还没排版&#xff09;&#xff0c;还是靠自己和DEEPSEEK的智慧解决了(●’◡’●) 当然…

pytorch实现门控循环单元 (GRU)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 特性GRULSTM计算效率更快&#xff0c;参数更少相对较慢&#xff0c;参数更多结构复杂度只有两个门&#xff08;更新门和重置门&#xff09;三个门&#xff08;输入门、遗忘门、输出门&#xff09;处理长时依赖一般适…

【赵渝强老师】Spark RDD的依赖关系和任务阶段

Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型&#xff1a;窄依赖和宽依赖。 窄依赖&#xff1a;如果父RDD的每一个分区最多只被一个子RDD的分区使用&#xff0c;这样的依赖关系就是窄依赖&#xff1b;宽依赖&#xff1a;如果父RDD的每一个分区被多个子RD…

为何在Kubernetes容器中以root身份运行存在风险?

作者:马辛瓦西奥内克(Marcin Wasiucionek) 引言 在Kubernetes安全领域,一个常见的建议是让容器以非root用户身份运行。但是,在容器中以root身份运行,实际会带来哪些安全隐患呢?在Docker镜像和Kubernetes配置中,这一最佳实践常常被重点强调。在Kubernetes清单文件中,…

Docker 安装详细教程(适用于CentOS 7 系统)

目录 步骤如下&#xff1a; 1. 卸载旧版 Docker 2. 配置 Docker 的 YUM 仓库 3. 安装 Docker 4. 启动 Docker 并验证安装 5. 配置 Docker 镜像加速 总结 前言 Docker 分为 CE 和 EE 两大版本。CE即社区版&#xff08;免费&#xff0c;支持周期7个月&#xff09;&#xf…

[MRCTF2020]Ez_bypass1(md5绕过)

[MRCTF2020]Ez_bypass1(md5绕过) ​​ 这道题就是要绕过md5强类型比较&#xff0c;但是本身又不相等&#xff1a; md5无法处理数组&#xff0c;如果传入的是数组进行md5加密&#xff0c;会直接放回NULL&#xff0c;两个NuLL相比较会等于true&#xff1b; 所以?id[]1&gg…