CSS基础学习-溢出和定位的使用

溢出-overflow属性

CSS overflow 属性控制对太大而区域无法容纳的内容的处理方式。

CSS overflow

overflow 属性指定在元素的内容太大而无法放入指定区域时是剪裁内容还是添加滚动条。
overflow 属性可设置以下值:

  • visible - 默认。溢出没有被剪裁。内容在元素框外渲染
  • hidden - 溢出被剪裁,其余内容将不可见
  • scroll- 溢出被剪裁,同时添加滚动条以查看其余内容
  • auto - 与 scroll 类似,但仅在必要时添加滚动条

注释:overflow 属性仅适用于具有指定高度的块元素。

注释:在 OS X Lion(在 Mac 上)中,滚动条默认情况下是隐藏的,并且仅在使用时显示(即使设置了 “overflow:scroll”)

overflow: visible

默认情况下,溢出是可见的(visible),这意味着它不会被裁剪,而是在元素框外渲染:

div {
  width: 200px;
  height: 50px;
  background-color: #eee;
  overflow: visible;
}

overflow: hidden

如果使用hidden值,溢出会被裁剪,其余内容被隐藏:

div {
  overflow: hidden;
}

overflow: scroll

如果将值设置为 scroll,溢出将被裁剪,并添加滚动条以便在框内滚动。请注意,这将在水平和垂直方向上添加一个滚动条(即使您不需要它):

div {
  overflow: scroll;
}

overflow: auto

auto值类似于scroll,但是它仅在必要时添加滚动条:

div {
  overflow: auto;
}

overflow-xoverflow-y

overflow-xoverflow-y属性规定是仅水平还是垂直地(或同时)更改内容的溢出:

  • overflow-x指定如何处理内容的左/右边缘。
  • overflow-y指定如何处理内容的上/下边缘。
div {
  overflow-x: hidden; /* 隐藏水平滚动栏 */
  overflow-y: scroll; /* 添加垂直滚动栏 */
}

定位-position 属性

position 属性规定应用于元素的定位方法的类型(staticrelativefixedabsolutesticky)。

元素其实是使用topbottomleftright属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的position 值,它们的工作方式也不同。

position: static;

HTML 元素默认情况下的定位方式为 static(静态)。
静态定位的元素不受 topbottomleftright属性的影响。
position: static;的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位:

div.static {
  position: static;
  border: 3px solid #73AD21;
}

position: relative;

position: relative; 的元素相对于其正常位置进行定位。
设置相对定位的元素的 toprightbottomleft属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。

div.relative {
  position: relative;
  left: 30px;
  border: 3px solid #73AD21;
}

position: fixed;

position: fixed;的元素是相对于视口定位的,这意味着即使滚动页面,它也始终位于同一位置。 toprightbottomleft属性用于定位此元素。
固定定位的元素不会在页面中通常应放置的位置上留出空隙。
请注意页面右下角的这个固定元素。这是所用的 CSS:

div.fixed {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 300px;
  border: 3px solid #73AD21;
}

position: absolute;

position: absolute;的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)。
然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。注意:“被定位的”元素是其位置除 static以外的任何元素。
这是一个简单的例子:

div.relative {  position: relative;  width: 400px;  height: 200px;  border: 3px solid #73AD21;} div.absolute {  position: absolute;  top: 80px;  right: 0;  width: 200px;  height: 100px;  border: 3px solid #73AD21;}

position: sticky;

position: sticky; 的元素根据用户的滚动位置进行定位。粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如position:fixed)。

注意:Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀(请参见下面的实例)。您还必须至少指定toprightbottomleft 之一,以便粘性定位起作用。

在此例中,在到达其滚动位置时,sticky 元素将停留在页面顶部(top: 0)。

div.sticky {  position: -webkit-sticky; /* Safari */  position: sticky;  top: 0;  background-color: green;  border: 2px solid #4CAF50;}

重叠元素

在对元素进行定位时,它们可以与其他元素重叠。
z-index属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。元素可以设置正或负的堆叠顺序:

img {  position: absolute;  left: 0px;  top: 0px;  z-index: -1;}

定位图像中的文本

如何在图片上放置文字:

更多推荐

CSS基础学习-溢出和定位的使用