web前端学习(二十四)——CSS3浮动属性(float)、清除浮动属性(clear)的相关设置

简介: web前端学习(二十四)——CSS3浮动属性(float)、清除浮动属性(clear)的相关设置

1.CSS浮动


CSS Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。

Float(浮动),往往是用于图像,但它在布局时一样非常有用。


1.1 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.使用浮动来创建拥有页眉、页脚、左侧目录和主体内容的首页


6.1 HTML文件

<!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>

6.2 CSS文件(外部样式表)

* {
  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;
}

  

相关文章
|
18天前
|
Web App开发 前端开发 iOS开发
css所有缩写属性,CSS属性简写整理
css所有缩写属性,CSS属性简写整理
16 1
|
18天前
|
前端开发
css简写属性
css简写属性
24 0
|
1月前
|
前端开发 JavaScript
如何在CSS中添加自定义属性
如何在CSS中添加自定义属性
15 0
|
1月前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
27 0
|
1月前
|
前端开发
哪些 CSS 属性可以继承?
哪些 CSS 属性可以继承?
41 0
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
100 3
|
15天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
102 44
|
11天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
26 1
|
14天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
16天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
29 2

热门文章

最新文章