美文网首页
CSS进阶六:display,position,float,cl

CSS进阶六:display,position,float,cl

作者: 蘭小木 | 来源:发表于2020-01-18 16:27 被阅读0次

文档流

文档流
文档流处在网页的最底层,它表示的是一个页面中的位置,
我们所创建的元素默认都处在文档流中
             
元素在文档流中的特点
块元素
    1.块元素在文档流中会独占一行,块元素会自上向下排列。
    2.块元素在文档流中默认宽度是父元素的100%
    3.块元素在文档流中的高度默认被内容撑开
内联元素
    1.内联元素在文档流中只占自身的大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则换到下一行,继续自左向右。
    2.在文档流中,内联元素的宽度和高度默认都被内容撑开  

display

修改元素的类型

可选值:

  • none元素不在页面中显示,也不会占据页面位置

  • block元素作为块元素显示

  • inline元素作为内联元素显示

  • inline-block元素作为行内块元素显示

  • table此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

  • table-cell此元素会作为一个表格单元格显示(类似 <td><th>

      制作多列等宽自适应布局
      1.父元素  display:  table; width: 100%
      2.布局元素(子元素 ) display: table-cell;
      3.子元素之间的空隙,通过一个正常的div分割即可。
      4.如果存在多行,需要在包裹一个 display: table-row(<tr>)
    
  • flex/inlineflex 伸缩盒模型(快速布局利器)


visibility

设置元素可见性

可选值

  • visible

  • hidden元素不在页面显示,但是依然占用页面中位置


overflow

元素溢出内容处理(子元素内容超出父元素)

可选值:

  • visible不处理直接在父元素意外的位置显示
  • hidden把超出父元素的内容隐藏
  • scroll 在父元素中添加滚动条
  • auto根据需求自动生成滚动条

float

  • none不浮动
  • left
  • right

特点

  1. 浮动以后完全脱离文档流
  2. 浮动以后元素会一直向父元素的最上方移动
  3. 遇到父元素的边框或其他浮动元素会停止移动
  4. 浮动元素的上边是一个块元素,则浮动元素不会覆盖块元素
  5. 浮动元素不会超过它上边的兄弟元素,最多对齐
  6. 浮动元素不会覆盖文字,文字会自动环绕在浮动元素的周围,可以用过浮动来实现文字环绕的效果。

设置浮动后元素改变:

  • 块元素

  • 不会独占一行

  • 宽度和高度被内容撑开

  • 内联元素

  • 内联元素脱离文档流之后会变成块元素

高度塌陷

父元素在文档流中高度默认是被子元素撑开的,当子元素脱离文档流以后,将无法撑起父元素的高度,也就会导致父元素的高度塌陷

解决方法:

开启BFC

开启BFC后将具有的特性

  1. 父元素的垂直外边距不会和子元素重叠

  2. 开启BFC的元素不会被浮动元素覆盖

  3. 开启BFC的元素可以包含浮动元素

开启方式

  1. 设置元素浮动
  2. 设置元素绝对定位
  3. 设置元素类型为inline-block
  4. 设置overflow:hidden
  5. haslayout,IE6中没有BFC,有类似的haslayout
  • 开启方式:
  • zoom:1
  • 为元素设置宽度非默认值会开启haslsyout
  1. 使用after伪类操作

     .clearfix:after{
         content:"";
         display:block;
         clear:both;
     }
    
     ie6以下的还需要使用
     .clearfix{
         zoom:1;
     }
    

clear

清除浮动

  • 受到浮动的影响,下边的元素会向上移动

  • 我们有时希望清除掉其他元素浮动对当前元素产生的影响,这时可以使用clear来完成功能 对于CSS的

  • 一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素

  • none允许左右两侧有浮动元素

  • left在左侧不允许浮动元素。

  • right在右侧不允许浮动元素

  • both在左右两侧均不允许浮动元素。


position

设置元素的定位方式

可选值

  • static默认值,元素没有开启定位
  • relative开启元素的相对定位
  • absolute开启绝对定位
  • fixed开启固定定位

relative

  1. 当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
  2. 相对定位是相对于元素在文档流中原来的位置进行定位
  3. 相对定位的元素不会脱离文档流
  4. 相对定位会使元素提升一个层级
  5. 相对定位不会改变元素的性质,块还是块,内联还是内联

absolute

  1. 开启绝对定位,会使元素脱离文档流
  2. 开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化
  3. 绝对定位是相对于离他最近的开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位都会同时开启父元素的相对定位)如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口进行定位
  4. 绝对定位会使元素提升一个层级
  5. 绝对定位会改变元素的性质,

fixed

  • 固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
  • 不同的是:
  • 固定定位永远都会相对于浏览器窗口进行定位
  • 固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动
  • IE6不支持固定定位

z-index

层级

当元素开启了定位以后,可以通过z-index来设置元素的层级,对于没有开启定位的元素不能使用z-index

  • z-index值越高元素越优先显示
  • 如果定位元素的层级是一样,则下边的元素会盖住上边的
  • 父元素的层级再高,也不会盖住子元素

定位元素 > 浮动元素 > 文档流中的元素

偏移量

元素开启定位之后可以通过设置偏移量来设置元素偏移位置,需要设置偏移量之后元素才会移动不然还是在原来位置

left

元素距离定位位置的左侧距离

right

元素距离定位位置的右侧距离

bottom

元素距离定位位置的底部距离

top

元素距离定位位置的上边距离


多列(对子元素进行多列分布)

用来制作多列分割的瀑布流

column-count

设置被分割的列数

column-fill

如何填充列

参数:

  • auto尽量填充每一列
  • balance 均匀填充每一列

column-gap

列之间的间隔

column-rule

(简写)

column-rule-color

列之间规则的颜色

column-rule-style

列之间规则的样式

column-rule-width

列之间规则的宽度

column-span

元素应横跨的列数

column-width

列的宽度

/*column-count: 5;*/
column-width: 200px;
column-rule: 5px solid red;
column-gap: 2em;
/*
 当父元素指定高度,
 设置 column-fill: auto; 尽量填充每一列
 设置 column-fill: balance; 均匀填充每一列
*/
height: 1000px;
column-fill: auto;

相关文章

网友评论

      本文标题:CSS进阶六:display,position,float,cl

      本文链接:https://www.haomeiwen.com/subject/qknkzctx.html