Web基本笔记~08.浮动和定位
上一期
Float
Float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。CSS 的 Float(浮动)使元素脱离文档流,按照指定的方向(左或右发生移动),直到它的外边缘碰到包含框或另一个浮动框的边框为止。
基本示例
<html>
<head>
<meta charset="utf-8">
<title></title>
<style> img{ width: 200px; float: left; } </style>
</head>
<body>
<div style="width: 350px;height: 500px;">
<img src="./img/but.jpg" alt="按钮"/>
中国汉朝初年的《尔雅》,是中国百科全书性质著作的渊源;古希腊学者亚里士多德编写过的全面讲述当时学问的讲义,则被西方奉为“百科全书之父”。
中国古代的类书是一种百科全书式的资料汇编,也有学者认为明朝的《永乐大典》是最早的接近现代意义上的百科全书。
中国近代的百科全书是20世纪初由西方引进的书体。民国时的著名学者李煜瀛是最早进行西方百科全书研究的人,将这一书体介绍到中国并产生广泛影响的。
</div>
</body>
</html>
浮动以后使元素脱离了文档流(在页面中不占据位置)。
浮动是碰到父元素的边框或者浮动元素的边框就会停止。
浮动不会重叠。
浮动只有左右浮动,没有上下浮动。
浮动以后块级元素在同一行显示,行内元素可以设置宽高。
元素没有设置宽度和高度时,宽度为内容撑开。
清除浮动的影响
当元素设置 float 浮动后,该元素就会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素,浮动元素会造成父元素高度塌陷。
<html>
<head>
<meta charset="utf-8">
<title></title>
<style> .out{ background-color: #138496; } .in{ width: 200px; height: 200px; background-color: #7ABAFF; } </style>
</head>
<body>
<div class="out">
<div class="in"></div>
</div>
</body>
</html>
父元素高度由子元素撑开。但是给子元素设置浮动后效果后
<style> .out{ background-color: #138496; } .in{ width: 200px; height: 200px; background-color: #7ABAFF; float: left; } </style>
所以当我们设置 float 后,要根据不同情况来清除浮动
如果要设置父标签合适的高度,则必须确定子布局的高度,来计算父布局的合适高度包住子布局。
<html>
<head>
<meta charset="utf-8">
<title></title>
<style> .box{ background-color: pink; } .one,.two,.three{ width: 200px; height: 200px; float: left; } .one{ background-color: red; } .two{ background-color: gold; } .three{ background-color: green; } .footer{ height: 300px; background-color: blueviolet; /*清除*/ clear:both; } </style>
</head>
<body>
<div class="box">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div class="footer"></div>
</body>
</html>
Position
position 属性指定了元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固 定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在 正常流中的默认位置偏移。元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定 position 属性。他们也有不同的工作方式,这取决于定位方法。
position:sticky
position:sticky 是一个新的 css3 属性, 它的表现类似 position:relative 和position:fixed 的 合 体 , 在 目 标 区 域 在 屏 幕 中 可 见 时 , 它 的 行 为 就 像position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed,它会固定在目标位置。
如果同时定义了 left 和 right 值,那么 left 生效,right 会无效,同样,同时定义了 top 和 bottom,则bottom无效
Z-index
z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面auto 默认。堆叠顺序与父元素相等。注释:元素可拥有负的 z-index 属性值。注释:Z-index 仅能在定位元素上奏效(例如 position:absolute;)该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。
<html>
<head>
<meta charset="utf-8">
<title></title>
<style> .box{ position: relative; } .one{ width: 150px; height: 150px; background-color: #17A2B8; position: absolute; top: 50px; left: 50px; z-index: 666; } .two{ width: 150px; height: 150px; background-color: #95999C; position: absolute; left: 100px; top: 100px; } </style>
</head>
<body>
<div class="box">
<div class="one"></div>
<div class="two"></div>
</div>
</body>
</html>
position 案例
<html>
<head>
<meta charset="utf-8">
<title></title>
<style> .nav{ width: 100%; height: 61px; position: relative; } .nav li{ float: left; padding: 20px 26px; } .nav a{ color: #000; } .nav-list{ width: 100%; height: 300px; background-color: red; position: absolute; left: 0; top: 100%; display: none; } .nav li:hover>.nav-list{ display: block; } </style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">推荐</a></li>
<li><a href="#">热榜</a><div class="nav-list"></div></li>
<li><a href="#">要闻</a></li>
<li><a href="#">小说</a></li>
<li><a href="#">历史</a></li>
<li><a href="#">科技</a></li>
</ul>
</body>
</html>
下一期对position的多个案例进行深入学习
还没有评论,来说两句吧...