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

news/2024/11/23 20:52:29/

一、浮动与定位

1、浮动的基本概念

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

浮动的使用:
浮动使用要点:要浮动,并排的盒子都要设置浮动。
父盒子要有足够的宽度,否则子盒子会掉下去。

浮动的顺序贴靠特性:(贴靠前一个)
子盒子会按顺序进行贴靠,如果没有足够空间,则会寻找再前一个兄弟元素。

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

float:right;即可设置右浮动。较少使用。

2、使用浮动实现网页布局

注意事项:
垂直显示的盒子,不要设置浮动,只有并排显示的盒子才要设置浮动!
“大盒子带着小盒子跑”,一个大盒子中,又是一个小天地,内部可以继续使用浮动
超市售卖的塑料袋0.3元一个,div是免费的!不要节约盒子!

3、BFC规范和浏览器差异

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

从一个现象开始说起:一个盒子不设置height,当内容子元素都浮动时,无法撑起自身。

原因:这个盒子没有形成BFC。

如何创建BFC

方法①: float的值不是none

方法②: position的值不是static或者relative

方法③: display的值是inline-block、flex或者inline-flex

方法④: overflow:hidden;

什么是overflow:hidden?

overflow:hidden;表示溢出隐藏,溢出盒子边框的内容将会被隐藏

overflow:hidden;是非常好用的让盒子形成BFC的方法

BFC的其他作用:

BFC可以取消盒子margin塌陷

BFC可以可以阻止元素被浮动元素覆盖

4、清除浮动

清除浮动:浮动一定要封闭到一个盒子中,否则就会对页面后续元素产生影响。

清除浮动方法1:让内部有浮动的父盒子形成BFC,它就能关闭住内部的浮动。此时最好的方法就是overflow:hidden属性。

div {height: 100px;margin-bottom: 10px;overflow: hidden;}
<div><p></p><p></p></div><div><p></p><p></p></div>

清除浮动方法2:给后面的父盒子设置clear:both属性。clear表示清除浮动对自己的影响,both表示左右浮动都清除。

<div><p></p><p></p></div><div> <!-- 添加clear: both; --><p></p><p></p></div>

清除浮动方法3:使用::after伪元素给盒子添加最后一个子元素,并且给::after设置clear:both。

.clearfix::after {/*记得写content*/content: '';clear: both;/*转为块级元素*/display: block;}
<div><p></p><p></p></div><div><p></p><p></p></div>

清除浮动方法4:在两个父盒子之间“隔墙”,隔一个携带clear:both的盒子

.cl {clear: both;}
<div class="clearfix"><p></p><p></p></div><div class="cl h20"></div><div class="clearfix"><p></p><p></p></div>

5、相对定位

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

位置描述词:left向右移动; right向左移动;top向下移动;bottom向上移动。
值可以为负数,即往规定方向相反移动

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

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

6、绝对定位

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

位置描述词:

left到左边的距离; right到右边的距离; top到上边的距离; bottom到下边的距离

绝对定位脱离标准文档流:

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

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

绝对定位的参考盒子

绝对定位的盒子并不是永远以浏览器作为基准点

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

绝对定位的盒子垂直居中

绝对定位的盒子垂直居中是一个非常实用的技术,

position: absolute;
top: 50%;
margin-top: -自己高度一半;
*{margin: 0;padding: 0;}div{width: 400px;height: 300px;border: 1px solid #000;margin: 40px auto;position: relative;}p {/* 脱离标准文档流,不能使用margin: 40px auto; */width: 80px;height: 80px;background-color: orange;position: absolute;top: 50%;left: 50%;margin-top: -40px;margin-left: -40px;}
<div><p></p></div>

堆叠顺序z-index属性:

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

.box1{width: 300px;height: 300px;background-color: orange;position: absolute;top: 100px;left: 100px;z-index: 999;}.box2{width: 300px;height: 300px;background-color: blue;position: absolute;top: 200px;left: 200px;z-index: 9999;/* 蓝色压住橘色 */}

绝对定位的用途

绝对定位用来制作“压盖”、“遮罩”效果

绝对定位用来结合CSS精灵使用

绝对定位可以结合JS实现动画

7、固定定位

固定定位:不管页面如何卷动,它永远固定在那里。

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

固定定位的用途:“返回顶部”、“楼层导航”。

8、课程重点

使用浮动要注意什么?浮动有哪些性质?

如何清除浮动?

定位有哪几种?分别是什么功能?

9、课程难点

什么是BFC?如何创建BFC? BFC有哪些作用?

绝对定位如何实现垂直居中?

top=50%margin-top=-自己高的一半

二、边框与圆角

1、边框

border属性需要三个要素

border: 1px solid red ;

1px:线宽度;solid:线型;red:线颜色。

线型

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

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

小属性意义
border-width线宽
border-style线型
border-color线颜色

四个方向的边框

属性意义
border-top上边框
border-right右边框
border-bottom下边框
border-left左边框

四个方向边框的三要素小属性

属性意义属性意义
border-top-width上边框宽度border- bottom-width下边框宽度
border-top-style上边框线型border - bottom-style下边框线型
border-top-color上边框颜色border- bottom-color下边框颜色
border-right -width右边框宽度border-left-width左边框宽度
border-right-style右边框线型border-left-style左边框线型
border-right-color右边框颜色border- left- color左边框颜色

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

利用边框制作三角形

.box1 {width: 0;height: 0;/* transparent 透明色 *//* 顶角向下的三角形 */border:20px solid transparent;border-top-color: red;}

2、圆角

border-radius属性的值通常为px单位,表示圆角的半径。数值越大圆角越大。

border-radius属性可以单独设置四个圆角。
border-radius: 10px 20px 30px 40px;分别为左上, 右上,右下,左下。

border-radius有三个值的话,第一个值表示对左上角的设置,第二个值表示对右上角和左下角的设置,第三个值表示对右下角的设置。
border-radius有两个属性值的话,第一个值表示左上角和右下角,第二个值表示右上角和左下角。

也可以使用小属性:

属性意义
border-top-left-radius左上角
border-top-right-radius右上角
border-bottom-left-radius左下角
border-bottom-right-radius右下角

border-radius属性的值也可以用百分比做单位,表示圆角起始于每条边的哪里。

.box8 {width: 400px;height: 200px;border: 1px solid #000;border-radius: 50%}

image-20210511201217566

正圆形:
正方形盒子如果设置的border-radius属性为50%,就是正圆形。
border-radius : 50%;

image-20210511201306803

3、盒子阴影

box-shadow属性用来实现盒子的阴影:

border-shadow:10px20px30pxrgba(0,0,0,.4);
x偏移y偏移模糊量颜色

阴影延展:

border-shadow:10px20px30px40pxrgba(0,0,0,.4);
阴影延展

内阴影:
box-shadow属性值前加inset单词,表示内阴影

border-shadow:inset10px20px30px40pxrgba(0,0,0,.4);
内阴影

多阴影:
box-shadow属性值可以用逗号隔开多个,表示携带多个阴影

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

4、课程重点

边框有哪三个要素?如何分别设置三个要素?常用线型有哪几种?

圆角如何设置?正圆形如何设置?

阴影如何设置?

5、课程难点

如何用盒子制作三角形?

三、背景与渐变

1、背景颜色基础知识

background-color属性:

background-color属性表示背景颜色。

背景颜色可以用十六进制、rgb()、rgba()表示法表示。

padding区域是有背景颜色的。

background-image属性:

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

​ background-image: url(images/bg1.jpg);

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

.box2 {width: 400px;height: 400px;border: 1px solid #000;background-image: url(../images/archer.png);
}

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

意义
repeat;x、y均平铺(默认)
repeat-x;x平铺
repeat-y;y平铺
no-repeat;不平铺

3、背景尺寸:

background-size属性

background-size属性用来设置背景图片的尺寸,兼容到IE9。

background-size: 100px 200px; 100px:宽度。200px:高度。

值也可以用百分数来设置,表示为盒子宽、高的百分之多少。

需要等比例设置的值,写auto。

contain和cover:

contain和cover是两个特殊的background-size的值。

contain表示将背景图片智能改变尺寸以容纳到盒子里。

cover表示将背景图片智能改变尺寸以撑满盒子。

4、背景裁切

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

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

5、背景固定

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

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

6、背景图片位置

background-position属性可以设置背景图片出现在盒子的什么位置。可以用top、bottom、center、left、 right描述图片出现的位置。

background-position: 100px 200px;

CSS精灵:将多个小图标合并制作到一张图片上,使用background-position属性单独显示其中一个,这样的技术叫做CSS精灵技术,也叫作CSS雪碧图。
CSS精灵可以减少HTTP请求数,加快网页显示速度。缺点也很明显:不方便测量、后期改动麻烦。

.money {position: absolute;top: 300px;left: 300px;width: 34px;height: 32px;border: 1px solid #000;background-image: url(images/sprites.png);background-position: -66px -488px;}

<i class="money"></i>

7、background综合属性

—些常用的背景相关小属性,可以合写到一条background属性中。

background: white url(images/archer.png) no-repeat center center;

white :颜色;url(images/archer.png):背景图片;no-repeat:背景重复;center center:背景位置.

8.线性渐变

盒子的background-image属性可以用linear-gradient()形式创建线性渐变背景

background-image: linear-gradient(to right, blue,red);

渐变方向:to right;开始颜色:blue;结束颜色:red

渐变方向也可以写成度数;deg表示度数

bckground-image: linear-gradient( 45deg,blue,red);

可以有多个颜色值,并且可以用百分数定义它们出现的位置

linear-gradient(to bottom,blue,yellow 20%,red);

中间色:yellow;中间色出现的位置:20%

9、浏览器私有前缀(需要背下来,面试可能会考)

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

品牌前缀
Chrome-webkit-
Firefox-moz-
IE、Edge-ms-
欧朋-o-

10、径向渐变(工作中较少用到)

盒子的background-image属性可以用radial-gradient()形式创建径向渐变背景。

background-image: radial-gradient(50% 50%,red,yellow,blue);
background-image: radial-gradient(50% 50%,rgba(211,211,211),white);

11、课程重点

透彻理解每一个background系列属性,你能不重不漏地说出它们么?

如何实现渐变背景?

使用background-position属性实现CSS精灵

四、2D与3D转换

1、旋转变形

将transform属性的值设置为rotate(),即可实现旋转变形。若角度为正,则顺时针方向旋转,否则逆时针方向旋转。

image-20210512200338067

transform-origin属性:可以使用transform-origin属性设置自己的自定义变换原点。

.pic5 {/* 以左上角为中心点进行旋转30度 */transform-origin: 0 0;transform: rotate(30deg);}

2、缩放变形

将transform属性的值设置为scale(),即可实现缩放变形。当数值小于1时,表示缩小元素;大于1表示放大元素。

transform: scale(3); 3表示缩放倍数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRKYHu4p-1620825887206)(images/3/image-20210512211150077.png)]

transform: scale(.3,.1);宽度和高度分别缩放。

3、斜切变形

将transform属性的值设置为skew(),即可实现斜切变形。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijKHh1xO-1620825887209)(images/3/image-20210512211324082.png)]

4、位移变形

将transform属性的值设置为translate(),即可实现位移变形。位移变形和相对定位非常像,位移变形也会“老家留坑”,“形影分离”。

transform: translate( 100px, 200px);向右移动100px,向下移动200px。

5、3D旋转

将transform属性的值设置为rotatex()或者rotateY(),即可实现绕横轴、纵轴旋转。

image-20210512211551242

perspective属性用来定义透视强度,可以理解为“人眼到舞台的距离”,单位是px。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yH1wV9nM-1620825887210)(images/3/image-20210512211634778.png)]

空间移动

当元素进行3D旋转后,即可继续添加translatex()、translateY()、translatez()属性让元素在空间进行移动。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aKhIAFtN-1620825887213)(images/3/image-20210512211736311.png)]

一定记住,空间移动要添加在3D旋转之后。

transform: rotatex(30deg) translatex( 30px) translatez( 100px);

制作一个正方体:

* {margin: 0;padding: 0;}.box {width: 200px;height: 200px;border: 1px solid #000;margin: 100px auto;perspective: 300px;position: relative;}.box p {position: absolute;top: 0;left: 0;width: 200px;height: 200px;}.box p:nth-child(1) {background-color:rgba(219, 28, 28, 0.767) ;/* 前面 */transform: translateZ(100px);}.box p:nth-child(2) {background-color:rgba(235, 220, 85, 0.486) ;/* 顶面 */transform: rotateX(90deg) translateZ(100px);}.box p:nth-child(3) {background-color:rgba(53, 56, 218, 0.486) ;/* 背面 */transform: rotateX(180deg) translateZ(100px);}.box p:nth-child(4) {background-color:rgba(67, 212, 23, 0.486) ;/* 底面 */transform: rotateX(90deg) translateZ(100px);}.box p:nth-child(5) {background-color:rgba(0, 0, 0, 0.486) ;/* 左面 */transform: rotateY(90deg) translateZ(100px);}.box p:nth-child(6) {background-color:rgba(183, 33, 197, 0.486) ;/* 右面 */transform: rotateX(-90deg) translateZ(100px);}
<div class="box"><p></p><p></p><p></p><p></p><p></p><p></p></div>

6、课程重点

2D变形有哪些?3D变形有哪些?每种变形的参数意义是什么?正方向是什么?

必须准确理解空间移动的意义

必须掌握perspective属性


http://www.ppmy.cn/news/297619.html

相关文章

6.背景属性

background-color 背景颜色background-image 背景图片 background-image&#xff1a;url("1.png"); 背景平铺background-repeat: repeat默认平铺 |no-repeat不平铺 |repeat-x水平方向平铺&#xff0c;垂直不平铺 |repeat-y 垂直方向平铺background-position left …

html背景图片刚刚好铺满,ppt的背景图片怎么设置才能铺满整张又不失真呢? | ppt整套背景图...

PPT如何设置统一的背景图片 背景——填充效果——切换到“图片”选项卡——单击“选择图片”——找到你需要插入的图片 后确定——全部应用即可 PPT模板的背景图片标准是什么尺寸&#xff1f; 默认状态下新建PPT文档&#xff0c; PPT背认的宽高分别25.4厘米和19.05厘米。 ppt背…

html5图片平铺在左侧,在html中,怎么设置背景图片不重复不平铺,只显示一张图片...

在canvas里面放了背景图片,结果不能实现平铺,找到几种方法解决这个问题: 1 写一个皮肤文件给border(边框) 皮肤: package {网页内容…… 首先你先将一个.png的背景图片存入工程中res/drawble(当然drawble-hdpi、drawble-mdpi、drawble-ldpi中一个或者几个文件夹都可)文件夹…

CSS背景样式属性

1.背景颜色 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>背景颜色</title><style>.box{width: 100px; /*背景宽度*/height: 100px; /*背景高度*/background-color: #f00; /*用于给元素设置背景颜色*/}&l…

html背景图片属性及浮动5

1.背景颜色 background-color:背景颜色; 颜色单词:red green blue... 三原色:red green blue alpha 透明 rgb(0,0,0) rgba(0,0,o,0) 取值范围 rgb 0-255 a 0-1 十六进制:取值范围#0-9 a-f aabbcc缩写#abc 2.背景图片 background -image:ur1(“图片地址"); 【注…

去掉左面图标背景

1.我的电脑属性&#xff0d;高级&#xff0d;性能&#xff0d;设置&#xff0d;自定义&#xff0d;钩选 “在桌面上为图标标签使用阴影” 2.桌面右键&#xff0d;排列图标&#xff0d;去除勾选在桌面上锁定WEB项目 3.桌面属性&#xff0d;桌面&#xff0d;自定义桌面&#xff…

C++ 类型转换:类型萃取器进行类型转换和cast类操作符进行转换的区别?

区别 类型萃取器和cast类操作符都可以用于类型转换&#xff0c;但它们的用途和工作方式有所不同。 类型萃取器&#xff0c;如 std::remove_reference<T>、std::remove_const<T>、std::add_pointer<T> 等&#xff0c;主要用于在编译时修改类型&#xff0c;它…

Ubuntu服务器添加新用户并且安装远程桌面软件xrdp

ubuntu 新建用户并添加到 sudo 组 首先使用 root 登录到你的主机 ssh rootserver_ip_address 然后新建用户 adduser username 创建的同时会让你输入密码和一些基本信息&#xff0c;基本信息可以不填 将用户添加到 sudo 组 adduser username sudo 然后就可以用新用户登录了。 …