1.CSS浮动
CSS的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
值 |
描述 |
left |
元素向左浮动。 |
right |
元素向右浮动。 |
none |
默认值。元素不浮动,并会显示在其在文本中出现的位置。 |
inherit |
规定应该从父元素继承 float 属性的值。 |
1.2 clear属性(清除元素浮动)
值 |
描述 |
left |
在左侧不允许浮动元素。 |
right |
在右侧不允许浮动元素。 |
both |
在左右两侧均不允许浮动元素。 |
none |
默认值。允许浮动元素出现在两侧。 |
inherit |
规定应该从父元素继承 clear 属性的值。 |
2.元素水平浮动
元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动元素之后的元素将围绕它。浮动元素之前的元素将不会受到影响。
如果图像是右浮动,下面的文本流将环绕在它左边:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>CSS简单学习</title> <style type="text/css"> img { float: right; } </style> </head> <body> <p>在下面的段落中,我们添加了一个 <b>float: right</b> 的图片。导致图片将会浮动在段落的右边。</p> <p> <img src="img/images/tx.jpg" width="100" height="100" /> 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 </p> </body> </html>
3.彼此相邻的浮动元素
如果你把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。
在这里,我们对图片使用 float 属性:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CSS简单学习</title> <style type="text/css"> .ex { float: left; width: 100px; height: 100px; margin: 5px; } </style> </head> <body> <h3>图片库</h3> <p>试着调整浏览器窗口的大小,看看图片的位置会发生怎样的变化?</p> <img class="ex" src="img/images/tv01.jpg" width="100" height="100" /> <img class="ex" src="img/images/tv02.jpg" width="100" height="100" /> <img class="ex" src="img/images/tv03.jpg" width="100" height="100" /> <img class="ex" src="img/images/tv04.jpg" width="100" height="100" /> <img class="ex" src="img/images/tv05.jpg" width="100" height="100" /> <img class="ex" src="img/images/tx.jpg" width="100" height="100" /> </body> </html>
4.清除元素的浮动
元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。
clear属性指定元素两侧不能出现浮动元素。
使用 clear 属性往文本中添加图片:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CSS简单学习</title> <style type="text/css"> img { float: left; } p.clear { clear: both; } </style> </head> <body> <img src="img/images/tx.jpg" width="100" height="110" /> <p> 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 </p> <p class="clear"> 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 这是一些文本。这是一些文本。这是一些文本。 </p> </body> </html>
5.使用浮动来创建水平菜单的超链接列表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CSS简单学习</title> <style type="text/css"> ul { float: left; width: 100%; padding: 0; margin: 0; list-style-type: none; } a { float: left; width: 6rem; padding: 3px 10px; background-color: purple; color: white; border-right: 1px solid white; text-decoration: none; } a:hover { background-color: red; } li { display: inline; } </style> </head> <body> <ul> <li><a href="#">Link one</a></li> <li><a href="#">Link two</a></li> <li><a href="#">Link three</a></li> <li><a href="#">Link four</a></li> </ul> <p> 上面的示例中,我们设置ul元素和a元素浮动。 li元素将显示为内联元素(没有换行符的元素之前或之后),这样可以使得列表同在一行。 我们添加一些颜色和边界使其看上去更高档。 </p> </body> </html>
6.使用浮动来创建拥有页眉、页脚、左侧目录和主体内容的首页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CSS简单学习</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <ul class="topmenu"> <li><a href="#home" class="active">主页</a></li> <li><a href="#news">新闻</a></li> <li><a href="#contact">联系我们</a></li> <li><a href="#about">关于我们</a></li> </ul> <div class="clearfix"> <div class="column sidemenu"> <ul> <li><a href="#flight">The Flight</a></li> <li><a href="#city" class="active">The City</a></li> <li><a href="#island">The Island</a></li> <li><a href="#food">The Food</a></li> <li><a href="#people">The People</a></li> <li><a href="#history">The History</a></li> <li><a href="#oceans">The Oceans</a></li> </ul> </div> <div class="column content"> <div class="header"> <h1>The City</h1> </div> <h1>Chania</h1> <p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p> <p>You will learn more about responsive web pages in a later chapter.</p> </div> </div> <div class="footer"> <p>底部文本</p> </div> </body> </html>
* { box-sizing: border-box; } body { margin: 0; } .header { background-color: #2196F3; color: white; text-align: center; padding: 15px; } .footer { background-color: #444; color: white; padding: 15px; } .topmenu { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #777; } .topmenu li { float: left; } .topmenu li a { display: inline; color: white; text-align: center; padding: 16px; text-decoration: none; } .topmenu li a:hover { background-color: #222; } .topmenu li a.active { background-color: #4CAF50; color: white; } .column { float: left; padding: 15px; } .clearfix::after { content: ""; clear: both; display: table; } .sidemenu { width: 25%; } .content { width: 75%; } .sidemenu ul { list-style-type: none; margin: 0; padding: 0; } .sidemenu li a { margin-bottom: 4px; display: block; padding: 8px; background-color: #eee; text-decoration: none; color: #666; } .sidemenu li a:hover { background-color: #555; color: white; } .sidemenu li a.active { background-color: #008CBA; color: white; }