Web前端 CSS3 CheckList(二)

目录

一、CSS浮动

1.CSS浮动简介

2.高度塌陷

二、页面定位

1.常用定位方式

2.元素的层级

三、CSS字体/背景

1.CSS字体

2.CSS背景

3.CSS雪碧图

4.CSS渐变


一、CSS浮动

1.CSS浮动简介

浮动:通过浮动可以让一个元素向其父元素的左侧或右侧移动。使用 float 属性来设置元素的浮动。可选值:none 默认值不浮动,left 元素向左浮动,right 元素向右浮动。

浮动的特点

  • 浮动元素会完全脱离文档流,不再占据文档流中的位置
  • 设置浮动以后元素会向父元素的左侧或右侧运动
  • 浮动元素默认不会从父元素中移出
  • 浮动元素向左或向右移动时,不会超过它前边的其他浮动元素
  • 如果浮动元素的上边是一个没有浮动的块元素,则浮动元素无法上移
  • 浮动元素不会超过它上边的浮动的兄弟元素,最多齐平
  • 浮动元素不会盖住文字,文字会自动环绕在浮动元素周围

简单总结:浮动目前来讲它的主要作用就是让页面中的元素可以水平排列,通过浮动可以制作一些水平方向的布局。 

脱离文档流的特点(脱离文档流以后,不需要再区分行内和块):

块元素块元素不再独占一行,宽度和高度默认都被内容撑开
行内元素变成块元素,特点和块元素一样

2.高度塌陷

高度塌陷:在浮动布局中,因为父元素的高度默认是被子元素撑开的,当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑起父元素高度,导致父元素的高度丢失。父元素的高度丢失以后,其下的元素会自动上移,导致页面的布局混乱。

BFC(Block Formatting Context)块级格式化环境:BFC 是 CSS 中的一个隐含的属性,开启BFC后该元素会变成一个独立的布局区域。

开启 BFC 后的特点:1.开启 BFC 的元素不会被浮动元素所覆盖。2.开启 BFC 的元素子元素和父元素外边距不会重叠。3.开启 BFC 的元素可以包含浮动的子元素。

可以通过一些特殊方式开启元素的 BFC:1.设置元素的浮动。2.将元素设置为行内块元素。3.将元素的 overflow 设置为一个非 visible 的值(常用的方式:为元素设置 overflow:hidden 开启其BFC 以使其可以包含浮动元素)。

clear:如果我们不希望某个元素因为其它元素浮动的影响而改变位置,可以通过 clear 属性来清除浮动元素对当前元素所产生的影响。原理是设置清除浮动后,浏览器会自动为元素添加一个上外边距以使其位置不受其它元素的影响。

clear 可选值left 清除左侧浮动元素对当前元素的影响
right 清除右侧浮动元素对当前元素的影响
both 清除两侧中最大影响的那侧
.clearfix::befor,
.clearfix::after{
    content:'';
    display:table;
    clear:both;
}/*before解决外边距重叠问题,after解决高度塌陷,使用时给元素添加类(最佳)*/

二、页面定位

1.常用定位方式

定位:定位是一种更加高级的布局手段,通过定位可以将元素摆放到页面的任意位置,使用position 属性来设置定位。

position 属性可选值static 默认值,元素是静止的,没有开启定位
relative 开启元素的相对定位
absolute 开启元素的绝对定位
fixed 开启元素的固定定位
sticky 开启元素的粘滞定位

偏移量(offset):当元素开启了定位以后,可以通过偏移量来设置元素的位置。

  • top:定位元素和定位位置上边的距离,top 值越大,定位元素越向下移动
  • bottom:定位元素和定位位置下边的距离,bottom 值越大,定位元素越向上移动
  • left:定位元素和定位位置左侧的距离,left 值越大,定位元素越向右移动
  • right:定位元素和定位位置上边的距离,right 值越大,定位元素越向左移动

定位元素垂直方向位置由 top 和 bottom 两个属性控制,通常情况只使用其一,水平方向同理 

相对定位: 元素开启相对定位以后,如果不设置偏移量元素不会发生任何变化。相对定位是参照于元素在文档流中的位置进行定位的。相对定位会提升元素的层级,但不会使元素脱离文档流,不会改变元素的性质。

绝对定位:元素开启相对定位以后,如果不设置偏移量元素的位置不会发生变化。开启绝对定位后,元素会从文档流中脱离,会改变元素的性质(行内变成块,块的宽高被内容撑开)。绝对定位会使元素提升一个层级。绝对定位元素是相对于其包含块进行定位的。

        包含块(containing block):正常情况下,包含块就是离当前元素最近的祖先块元素。绝对          定位的包含块就是离它最近的开启了定位的祖先元素,若无则取根元素(初始包含块)。

        水平布局:开启了绝对定位后,水平方向的布局等式就需要添加 left 和 right 两个值。当发生          过度约束时,如果9个值中没有 auto 则自动调整 right 值以使等式满足,有 auto 调 auto 可设          置 auto 的值:margin width left right。

        垂直布局:top + margin-top/bottom + padding-top/bottom + height = 包含块的高度。

        绝对定位元素设置在包含块内居中:margin:auto;left/right/top/bottom:0;

固定定位:固定定位也是一种绝对定位,大部分特点和绝对定位相同,不同的是固定定位永远参照于浏览器的视口进行定位。固定定位的元素不会随网页的滚动条滚动。

粘滞定位:粘滞定位和相对定位的特点基本一致,不同的是粘滞定位可以在元素到达某个位置时将其固定。

2.元素的层级

对于开启了定位的元素,可以通过 z-index 属性来指定元素的层级。z-index 需要一个整数作为参数,值越大层级越高,元素的层级越高越优先显示。如果元素的层级一样,则优先显示靠下的元素。祖先的元素的层级再高也不会盖住后代元素。

三、CSS字体/背景

1.CSS字体

字体相关样式
属性描述
color用来设置字体的颜色(前景色)
font-size字体的大小,em 大小相对于当前元素,rem大小相对于根元素
font-family

字体族(字体的格式)serif(衬线字体)sans-serif(非衬线字体)monospace(等宽字体)指定字体的类别,浏览器会自动使用该类别下的字体。

font-family 可以同时指定多个字体,多个字体间用,隔开,字体生效优先使用第一个,第一个无法使用则使用第二个,以此类推。

@font-face可以将服务器中的字体直接提供给用户去使用(问题:加载速度 版权 字体格式)
font-weight字重 ,字体的加粗,可选值含 normal 和 bold
font-style字体的风格,可选值含 normal 和 italic(斜体)
text-decration设置文本修饰,可选值含 nine 什么都没有,underline 下划线,line-through 删除线 overline 上划线
text-overflow设置如何处理溢出的文本,可选值含 clip,ellipsis 省略号
white-space设置网页如何处理空白,可选值含 normal 正常 nowrap 不换行 pre 保留空白

图标字体(iconfont)

在网页中经常需要使用一些图标,可以通过图片来引入,但是图片大小本身比较大,而且非常的不灵活。所以在使用图标时,我们还可以将图标直接设置为字体,然后通过 font-face 的形式来对字体进行引入,这样我们就可以通过字体的形式来使用图标。

fontawesome 使用步骤

1.将 css 和 webfonts 移动到项目中 2.将 all.css 引入到网页中 3.使用需要的字体

fontawesome 使用方法

1.直接通过类名来使用图标字体(class=“fas fa-bell”)(class=“fab fa-accessible-icon”)其中 fas 和 fab 是大类 第二个类是具体使用的图标。

2.通过伪元素来设置图标字体:(1) 找到要设置图标的元素通过 before 或after 选中 (2) 在 content 中设置字体的编码 (3)设置字体的样式(fab 设置 font-family: ' Font Awesome 6 Brands' fas 设置 font-family: ' Font Awesome 6 Free' 还有 font-weight 要设置,看源码)

3.通过实体来设置图标字体:<span class="fas">&#x + 对应字体编码 ; </span>

附:Iconfont-阿里巴巴矢量图标库也很好用,使用方法类似。

行高:行高指的是字体占有的实际高度。可以通过 line-height 来设置行高,行高可以直接指定一个大小(px em)也可以直接为行高设置一个整数,如果是整数,行高会是字体的指定倍数。行高经常还用来设置文字的行间距。行间距 = 行高 - 字体大小。行高会在字体框的上下平均分配。可以将行高设置为和高度一样的值,使单行文字在一个元素中垂直居中。

字体框:字体框就是字体存在的格子,设置 font-size实际上就是在设置字体框的高度。

字体的简写属性:font 可以设置字体相关的所有属性。语法— font:字重 样式 大小 / 行高 字体族,字重,样式不写默认值 normal,行高不写默认值1.333。

文本的对齐方式
属性描述
text-align文本的水平对齐,left 左侧对齐,right 右对齐,center 居中对齐,justify 两端对齐
vertical-align文本的垂直对齐,baseline 默认值基线对齐,top 顶部对齐,bottom 底部对齐,middle 居中对齐,还可以直接指定值控制元素上下移动

附:图片作为一种替换元素,默认也沿基线对齐,可以设置垂直对齐方式消除误差距离。

附:width: XX; white-space: nowrap; overflow:hidden; text-overflow: ellipsis;设置多文字省略效果

2.CSS背景

背景相关样式
属性描述
background-color设置背景颜色
background-image设置背景图片。可以同时设置背景图片和背景颜色,这样背景颜色将会成为背景图片的背景色。如果背景图片小于元素,则背景图片会自动在元素中平铺将元素铺满。如果背景图片大于元素,将会一个部分背景无法完全显示。如果背景图片和元素一样大,则会直接正常显示
background-repeat设置背景的重复方式。repeat 默认值,背景会沿x轴、y轴双方向重复。repeat-x 沿着x轴方向重复,repeat-y 沿着y轴方向重复,no-repeat 背景图片不重复
background-position通过 top left right bottom center 几个表示方位的词来设置背景图片的位置。使用方位词时必须要同时指定两个值,如果只写一个则第二个默认是 center。通过偏移量来指定背景图片的位置:水平方向偏移量 垂直方向偏移量。
background-clip设置背景的范围。border-box 默认值,背景会出现在边框的下边。padding-box 背景不会出现在边框,只出现在内容区和内边距。content-box 背景只会出现在内容区
background-origin设置背景图片的偏移量计算的原点。padding-box 默认值,background-position从内边距处开始计算。content-box 背景图片的偏移量从内容区处计算。border-box 背景图片的偏移量从边框处开始计算。
background-size设置图片的大小,第一个值表示宽度,第二个值表示高度,如果只写一个,则第二个值默认是 auto。cover 图片的比例不变,将元素铺满。contain 图片比例不变,将图片在元素中完整显示。
background-attachment设置背景图片是否会跟随元素移动。scroll 默认值 背景图片会跟随元素移动。fixed 背景会固定在页面中,不会随元素移动。

background 简写属性:所有背景相关的样式都可以通过该样式来设置,并且该样式没有顺序要求,也没有哪个属性是必须写的。注意:background-size 必须写在 background-position 的后边,并且使用 / 隔开。background-origin background-clip 两个样式,origin 要在 clip 的前边。

3.CSS雪碧图

图片属于网页中的外部资源,外部资源都需要浏览器单独发送请求加载。浏览器加载外部资源是按需加载的,用则加载,不用则不加载。 

解决首次加载图片闪烁问题:可以将多个小图片统一保存到一个大图片中,然后通过调整 background-position 来切换显示的图片。这个技术成为 CSS-Sprite;这种图我们称为雪碧图。

雪碧图的特点: 一次性将多个图片加载进页面,降低请求的次数,加快访问速度,提升用户体验

雪碧图的使用步骤:1.确定要使用的图标 2.测量图标的大小 3.根据测量的结果创建一个元素 4.将雪碧图设置为元素的背景图片 5.设置一个偏移量以显示正确的图片

4.CSS渐变

通过渐变可以设置一些复杂的背景颜色,可以实现从一个颜色向其它颜色过渡的效果。渐变是图片,需要通过 background-image 来设置。

线性渐变:颜色沿着一条直线发生变化,linear-gradient ()。例:linear-gradient (red,yellow) 红色在开头,黄色在结尾,中间是过渡区域。线性渐变的开头,我们可以指定一个渐变的方向,to left / to right / to bottom / to top / deg表示度数 / turn表示圈。渐变可以同时指定多个颜色,多个颜色默认情况下平均分布,也可以手动指定渐变的分布(颜色后面加px表示开始渐变的位置)。repeating-linear-gradient () 可以平铺的线性渐变。

径向渐变:radial-gradient 有放射性的效果。默认情况下径向渐变的形状根据元素的形状来计算。我们也可以手动指定径向渐变的大小、位置。语法:radial-gradient(大小 at 位置,颜色 位置,颜色 位置,颜色 位置)大小:circle 圆形 / ellipse 椭圆 / closest-side 近边 / closest-corner 近角 / farthest-side 远边 / farthest-corner 远角。位置:top / left / right / center / bottom。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UB Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值