笔记 - CSS定位

div分层

从上到下:文字内容(内联子元素) - 浮动元素,块级子元素 - border - background
div的层级关系遵从前后顺序,后面的会盖住先前的文字。

position

static:默认值,文档流内
relative:升起,但不脱离文档流,常作为absolute的父元素使用。可配合z-index使用
absolute:绝对定位,脱离原本的位置,需要有一个不为static的父元素作为基准的定位元素(多半是relative)。
对话框的关闭按钮,鼠标提示都可用absolute做。
e.g. 鼠标悬停显示提示

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
<style>
button {
  position: relative;
}

button span {
  position: absolute;
  border: 1px solid black;
  white-space: nowrap;
  bottom: calc(100% + 15px); /* 块高度 + 15px */
  left: 50%; /* 移动至宽度50%处 */
  transform: translateX(-50%); /* 居中对齐 */
}

button span{
  display: none; /* 未点击时隐藏 */
}
button:hover span{
  display: inline-block; /* 鼠标悬停时显示 */
}
</style>
</head>
<body>
  <div style="height:100px;"></div>
  <button>点击查看提示
    <span class="tips">我是一行提示</span>
  </button>
</body>
</html>

tips: 关于:hover
鼠标悬停在元素上时会触发。但只对可视客户端有效,在触摸屏上无效。

fixed:固定定位,基于viewport定位。
问题:并非永远基于viewport,如果父元素里含有transform属性,则fixed基于父元素而非viewport定位。
可用于做回到顶部按钮和烦死人的广告。
手机上的bug非常多最好不要使用。
sticky:粘滞定位,黏在哪里滚动之后还会位于相对的前方或者后方。支持性很差。


tips: 文字内容不准换行
添加css属性white-space

white-space: nowrap;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容