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

  

相关文章
|
4月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
508 1
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
356 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
221 5
|
存储 前端开发 安全
详解CSS之Web 字体
详解CSS之Web 字体
201 4
|
4月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
419 4
|
8月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
8月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
8月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
313 104