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

一、浮动与定位

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属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5和CSS3是现代网页设计和制作的核心技术。HTML5是一种标记语言,用于定义网页的结构和内容。它引入了许多新的语义化元素,如`<header>`、`<nav>`、`<section>`和`<footer>`,使得页面结构更加清晰和易于理解。 CSS3是一种样式表语言,用于定义网页的外观和布局。它引入了许多新的样式属性和选择器,如圆角边框、阴影效果、渐变背景、媒体查询等,使得网页设计更加丰富和灵活。 要使用HTML5和CSS3进行网页设计与制作,你需要掌握它们的基本语法和常用属性。你可以使用任何文本编辑器编写HTML和CSS代码,并将其保存为`.html`和`.css`文件。然后,你可以在浏览器中打开HTML文件,查看最终效果。 在设计和制作网页时,你可以使用HTML5定义网页的结构,如标题、段落、列表、链接等。然后,使用CSS3来为这些元素添加样式,如字体、颜色、背景、边框等。你还可以使用CSS3来创建网页的布局,如使用盒模型、浮动定位等来控制元素的位置和大小。 除了HTML5和CSS3,你还可以使用JavaScript来为网页添加交互和动态效果。JavaScript是一种脚本语言,可以与HTML和CSS结合使用,实现一些复杂的功能,如表单验证、动画效果、页面加载等。 总之,掌握HTML5和CSS3是进行网页设计与制作的基础,它们提供了丰富的功能和灵活性,帮助你创建出漂亮和功能强大的网页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值