关于浮动和定位

1.什么是浮动

元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制,移动到其父元素中指定位置的过程。(无论父元素是否脱标)

2.浮动的特性

  • 不超出内边距
  • 使元素变为行内块元素(浮动的目的就是为了让块级元素在同一行显示)

3.浮动会产生什么影响?

  • 父盒子高度塌陷(父盒子没有设置高度的时候,因为子盒子浮动脱标,撑不起盒子)
  • 浮动元素后面的同级块元素会被盖住,但是块级元素的文字会环绕浮动元素,同级内联元素会跟在浮动元素的后面(清除浮动后,同级的块级元素和内联元素都会跑到浮动元素的下面,可以理解为清除浮动后,浮动元素不再是行内块了,而是块级,独占一行,所以内联元素也要另起一行了)

4.清除浮动的方法

  • 额外标签法:在浮动元素末尾添加一个空的标签例如
  <div style="clear:both"></div>
  • 使用伪元素清除浮动(原理:给浮动元素的父元素添加伪元素,代替在浮动元素后面添加空标签清除浮动)
/*清除后浮动*/
.clear:after{
    content: "";
    display: block;
    clear: both;
}
/*清除前后浮动  父元素上面如果也有元素浮动,使用before可以清除浮动的影响*/
.clear:after,.clear:before {
content: "";
display: block;
clear: both;
}
  • 使用BFC清除浮动(父元素overflow:hidden)

伪类和伪元素

ss引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分;

什么是伪元素

伪元素用于创建一些不在文档树中的元素并为其添加样式
E::before/E:before在E元素内部创建一个行内元素,作为E的第一个孩子,需要使用content属性来指定要插入的内容。被插入的内容实际上不在文档树中;
E::after/E:after 在E元素内部创建一个行内元素,作为E的最后一个孩子,其用法和特性与:before相似;

什么是伪类

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的

伪元素和伪类的根本区别

伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档数外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

什么是BFC

BFC 意思是块级格式化上下文

什么元素能产生BFC?

display属性为block, list-item, table 的元素,会产生BFC.

display属性为block, list-item, table 的元素如何产生BFC?

  • float属性不为none
  • position为absolute或fixed
  • display为inline-block, table-cell, table-caption, flex, inline-flex
  • overflow不为visible(auto scroll hidden)

什么是定位

让元素去到任意想去的位置

定位的分类

  • 相对定位(相当于自己的位置移动,原位置保留,移动后的位置脱标)
  • 绝对定位(相当于最近的已经定位的父元素位置移动,如果没有,相当于浏览器移动)
  • 固定定位(相当于浏览器的位置移动,不随滚动条滚动)

绝对定位和固定定位的相同点和不同点

  • 相同点: 脱标 改变行内元素的呈现方式,display为block
  • 不同点: 固定定位的根元素固定为浏览器,不可改变
posted @ 2020-04-08 22:12  zero博士  阅读(373)  评论(0)    收藏  举报