健忘学前端------day3

96 阅读4分钟

CSS02---盒子模型

2023-02-16

盒子模型

外边距margin

边框border

内边距padding

内容content

border边框

边框会撑大盒子

border-top
border-right
border-bottom
border-left

padding内边距

内边距会撑大盒子,4个值上,右,下,左。3个值上,左右,下。两个值上下,左右。

padding-top
padding-right
padding-bottom
padding-left
margin外边距

外边距不会撑大盒子,

margin-top
margin-right
margin-bottom
margin-left
margin:0 auto;   使盒子水平居中
box-sizing:border-box    浏览器自动减去边框和内内边距的大小,不会撑开盒子。

外边距折叠问题

垂直布局的两个盒子,同时设置外边距,只会生效最大的那个外边距。

外边距塌陷问题

互相嵌套的两个块级元素,设置子元素的margin-top值时,会作用在父元素上。

方法:给父元素设置border-top 或者 padding-top 使子元素和父元素分离。

设置overflow:hidden

设置浮动

将子元素变为行内块元素。

行内标签的内外边距上下方向的属性无法生效,可以通过设置行高来达到效果。

结构伪类选择器

E:first-child {}    第一个E子元素
E:last-child {}     最后一个E子元素
E:nth-child(n) {}    第n个E子元素
E:nth-last-child() {}    倒数第n个E子元素
结构伪类公式
偶数   2n   even
奇数   2n+1   2n-1   odd
前5个   -n+5
第5个之后的   n+5
伪元素

伪元素必须要设置content属性,伪元素默认为行内元素。

::before    在父元素前面加伪元素
::after     在父元素后面加伪元素

浮动

浮动是为了使块元素在一行排列,浮动标签会脱离标准流,不占标准流的位置,会覆盖标准流。

下一个浮动元素会在上一个浮动元素后左右浮动,浮动的标签有行内块的特点。

float:left
float:right
清除浮动

1.给父级元素设置高度属性

2.在父元素的后面加一个元素,给元素设置属性clear:both

3.单伪元素清除法

.clearfix ::after{
content:""
display:
clear:both
}

4.双伪元素清除法(同时可以解决外边距塌陷问题)

.clear::before,
.clear::after {
content:""
display:table
}
.clear::after {
clear:both
}

定位

让元素自用摆放在网页的任意位置,用于盒子的层叠

解决问题:

1.解决盒子层叠现象

2.让盒子固定在某个位置

position: relartive   相对定位
          absolute    绝对定位
          fixed       固定定位
relative 相对定位

盒子占有原来的位置

仍具有原来标签的特点

相对于原来位置的改变

absolute 绝对定位(子绝父相)

相对于非静态定位的父元素进行定位(无非静态定位的父元素则根据浏览器进行定位)

脱离原来的位置,不在占有原来的位置。

改变标签的显示特点,具有行内块的特点。

绝对定位的盒子不能使用margin:0 auto进行水平居中。

position:absolute;
left:50%;
transform:translate(50%);
fixed固定定位

用于页面中固定的盒子的位置,

相对于浏览器的位置。

元素层级

标准流<浮动<定位

可以使用z-index提高元素的层级,数值越大层级越高。

CSS装饰

垂直对齐方式
vertical-align:baseline
               top
               middle
               bottom
默认基线对齐
光标类型

鼠标的显示类型

cursor:pointer   小手
       text       工字形
       move      十字光标
边框圆角
border-radius
border-radius:50%   圆形
border-radius:width/2   胶囊形
溢出部分显示效果
overflow:hidden     隐藏
         visible    显示
         scroll    显示滚动条
         auto     根据内容显示滚动条
元素显示与隐藏
visibility:hidden   元素隐藏但是仍占据原来位置。
display:none
元素透明度
opacity:0~1
精灵图

将项目中的多个小图整合为一张大图,减轻服务器的压力。

需要将盒子大小设置为要显示图片的大小,

将图片以背景方式设置

设置图片的位置background-position:x y

背景图片缩放
background-size:width  height
                百分比
                contain   图片等比缩放至某个方向达到盒子大小,可能导致盒子留白。
                cover     将盒子全覆盖,可能导致图片显示不完全
阴影
box-shadow:h-shadow      水平方向
           v-shadow      竖直方向
           blur          模糊度
           spread        尺寸
           color         颜色
           inset         内外阴影
过渡

使默认的css样式和hover时的样式不同

trasition:all  所有可以过渡的元素包括(宽,高,背景色等)
          1s  时间