css显示与定位

内容目录

css 显示模式

  • css 块级元素会独占一行,比如 div、p、h1 等等。
  • css 行内元素不会独占一行,比如 span、a、strong 等等。
  • css 行内块级元素不会独占一行,但是可以设置宽高,比如 img、input 等等。

css 显示模式转换

  • css display: block 可以将行内元素转换为块级元素。
  • css display: inline 可以将块级元素转换为行内元素。
  • css display: inline-block 可以将块级元素转换为行内块级元素。

浮动定位

  • 浮动定位 可以让元素脱离文档流,不占据空间。属于是 “半脱离状态” ,会覆盖元素,但是被覆盖元素中的内容会避开上方的浮动元素显示(图文环绕效果)。

  • 浮动找浮动,下一个浮动的元素会在上一个浮动的元素左右排列。

  • 浮动的元素无法通过 text-alignmargin: 0 auto 属性居中

清除浮动

  • 当一个元素浮动后,它的父元素会因为没有足够的空间而塌陷,这时候就需要清除浮动。
方法一
  • 在浮动元素的父元素后面添加一个空的 div,设置 clear: both 属性。
//加一个空的div调用clearfix类
.clearfix {
  clear: both;
}
方法二
  • 单伪元素清除浮动
//用单伪元素
.clearfix::after {
  content: "";
  display: block;
  clear: both;
  //补充写法 为了兼容
  visibility: hidden;
  height: 0;
}
方法三
  • 给父元素添加 overflow:hidden 属性,这样父元素就会自动包裹住浮动元素,从而清除浮动。
//用overflow
.clearfix {
  overflow: hidden;
}

position 定位

position: static

  • position: static 是默认值,元素使用文档流定位,top / right 等参数不生效。

position: relative

  • position: relative 相对定位,相对于自身原来的位置进行定位,不会脱离文档流

position: absolute

  • position: absolute 绝对定位,相对于最近的非 static 定位祖先元素进行定位,脱离文档流

  • 若父元素都没有设置非 static 定位,那么就相对于浏览器窗口进行定位。

  • 子绝父相,子绝父绝,子绝父固定。

Tip

  • 绝对定位的盒子无法使用 margin auto 实现盒子的居中效果,解决方法:


//水平居中 left设为一半margin-left设为宽度一半
div{
  position: absolute;
  left: 50%;
  margin-left: -200px;
  width: 400px
  height: 200px;
}

//或使用transform
div{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 400px
  height: 200px;
}

:::

position: fixed

  • position: fixed 固定定位,相对于浏览器窗口进行定位,脱离文档流

  • 固定定位的元素会随着页面的滚动而滚动,不会随着页面的滚动而滚动。

元素的层级关系

  • 层级关系 是指元素在页面中的显示顺序,层级关系的元素会覆盖住其他元素。

  • 标准流 < 浮动 < 定位 < z-index

Tip

  • z-index 只对定位的元素有效,z-index 的值越大,层级越高。默认值为 0。

  • 当两个元素的层级关系相同时,后面的元素会覆盖前面的元素。

相关笔记

css选择器

css 标签选择器 css 标签选择器用来选中 html 中的标签,比如 h1、p、div 等等。 h1 { color: red; } css 类选择器 css 类选择器用来选中 html 中的类,比如 .title、.content 等等。 .title { color: red; }

阅读全文

css小tips

属性 box-sizing: border-box;:这个属性可以让我们设置的盒子宽高包括内边距和边框。 overflow: hidden;:这个属性可以让我们设置的盒子超出部分隐藏。可以解决嵌套块级元素时发生的塌陷现象。

阅读全文

css三大特性

css 继承 css 继承是指子元素会继承父元素的样式。 Info 父元素的有关的文字属性会被继承,而非文字属性则不会被继承。 例如,父元素的字体颜色、字体大小、行高等属性会被子元素继承,而父元素的背景颜色、边框样式等属性则不会被子元素继承。

阅读全文