首页 > 其他分享 >CSS基础-浮动

CSS基础-浮动

时间:2023-08-18 10:56:50浏览次数:33  
标签:浮动 100px float 基础 height width CSS left

浮动

浮动是为了元素标签的并排显示问题。

我们在浏览网页的时候,经常会看到 几个 div 块是可以并排显示的, 浮动就是解决这样问题的方法之一。

float属性有以下的值

  • float: left; 左浮动
  • float: right 右浮动

浮动的特点

  • 浮动主要针对的是并排显示的盒子而言。
  • 在一个父容器的盒子里, 兄弟元素之间要浮动必须都浮动。
  • 父容器必须要有一个足够的宽度,否则不足以使得各个子元素之间并排展示。
  • 一个父容器的盒子内,兄弟元素会按照顺序贴靠,如果是左浮动,就往左贴合;如果是右浮动,就往右贴合。如果发现贴合的盒子后没有足够的空间,则会在寻找前一个兄弟元素进行贴靠。直到空间合适为止。
  • 浮动的元素已经脱离了标准的HTML文档流,不再区分块级元素、行内元素并且一律能设置宽度和高度,即使它是span标签或者a标签

一个浮动的例子


<!--一个浮动的例子-->
<style>

    .box1 {
        width: 600px;
        height: 200px;
        border: 1px solid #000;
    }

    .box1 .con1 {
        width: 200px;
        height: 200px;
        background-color: orange;
        float: left;
    }

    .box1 .con2 {
        width: 200px;
        height: 200px;
        background-color: blue;
        float: left;
    }

    .box1 .con3 {
        width: 201px;
        height: 200px;
        background-color: yellowgreen;
        float: left;
    }

</style>
<div class="box1">
        <div class="con1"></div>
        <div class="con2"></div>
        <div class="con3"></div>
</div>

<!--一个span标签也能浮动的例子-->

<style>

   span {
    float: left;
    height: 50px;
    width: 200px;
    margin-left: 20px;
    background-color: orange;
   }

</style>
<span>1</span>
<span>2</span>
<span>3</span>

一个顺序贴靠的例子

<!--  一个顺序贴靠的例 子-->
<!-- 以下代码中 兄弟元素 con1, con2, con3 之间会进行顺序贴靠-->
<!-- con3 在贴靠 con2 的时候,发现父容器的宽度只能是400px, 分别被con1 和 con2 占据, 所以con3 会找 cont1 贴靠,最终con3 位于 con1右边, con2下边 -->

<style>

  .box1 {
      width: 400px;
      height: 200px;
      border: 1px solid #000;
  }

  .box1 .con1 {
      width: 200px;
      height: 200px;
      background-color: orange;
      float: left;
  }

  .box1 .con2 {
      width: 200px;
      height: 100px;
      background-color: blue;
      float: left;
  }

  .box1 .con3 {
      width: 200px;
      height: 100px;
      background-color: yellowgreen;
      float: left;
  }

</style>
<div class="box1">
  <div class="con1"></div>
  <div class="con2"></div>
  <div class="con3"></div>
</div>

清除浮动

清除浮动是为了 不影响设置浮动标签的后续的标签的布局展示。

因为,在一个父容器中,子元素浮动了,脱离了标准文档流,不在占用之前的位置,会导致 无法撑开没有设置高度的父元素;从而导致后续的结构挤压,造成整个页面布局的混乱。

  1. 给父元素加个高度。在那些明确知道父容器高度的情况下,可以使用。

    
    <style>
      * {
        margin: 0;
        padding: 0;
      }
    
      div {
        height: 100px;
      }
      p {
        float: left;
        width: 100px;
        height: 100px;
        margin-right: 20px;
        background-color: red;
      }
    </style>
    
    <body>
    	<div>
    	  <p></p>
    	  <p></p>
    	</div>
    	
    	<div>
    	  <p></p>
    	  <p></p>
    	  <p></p>
    	</div>
    </body>
    
  2. 后续元素增加 clear:both ,清除前面元素对自己的影响。

    <style>
        * {
            margin: 0;
            padding: 0;
        }
       
        .box2 {
            margin-top: 20px;
            clear: both;
        }
        p {
            float: left;
            width: 100px;
            height: 100px;
            margin-right: 20px;
            background-color: red;
        }
    
    </style>
    
    <body>
    <div>
        <p></p>
        <p></p>
    </div>
    
    <div class="box2">
        <p></p>
        <p></p>
        <p></p>
    </div>
    </body>
    
    
  3. 浮动的父容器添加后续伪元素,clear:both ,清除浮动对后续元素的影响(推荐方式)。

    
    <style>
      * {
          margin: 0;
          padding: 0;
      }
    
      .cleafix::after {
          content: '';
          clear: both;
          display: block
      }
     
      p {
          float: left;
          width: 100px;
          height: 100px;
          margin-right: 20px;
          background-color: red;
      }
    
    </style>
    
    <body>
    
    <div class="cleafix">
      <p></p>
      <p></p>
    </div>
    
    <div class="cleafix">
      <p></p>
      <p></p>
      <p></p>
    </div>
    </body>
    
    
  4. 额外的空标签,在浮动元素的父盒子之后添加一个空标签,空标签上添加 clear:both 属性。

    
    <style>
    * {
      margin: 0;
      padding: 0;
    }
    
    .clearboth {
      clear: both;
    }
    
    p {
      float: left;
      width: 100px;
      height: 100px;
      margin-right: 20px;
      background-color: red;
    }
    </style>
    
    <body>
    <div>
    <p></p>
    <p></p>
    </div>
    
    <div class="clearboth"></div>
    
    <div>
    <p></p>
    <p></p>
    <p></p>
    </div>
    </body>
    
    
  5. 额外的空标签,在浮动元素的父盒子之后添加一个空标签,空标签上添加 clear:both 属性。


<style>
* {
  margin: 0;
  padding: 0;
}
div {
  overflow: hidden;
  margin: 20px;
}
p {
  float: left;
  width: 100px;
  height: 100px;
  margin-right: 20px;
  background-color: red;
}
</style>
 
<body>
  <!--
      两个div
      第一个div中的元素在内部浮动 
      第二个元素中的div在内部浮动
	    但是两个父盒子之前不要互相影响
  -->
  <div>
    <p></p>
    <p></p>
  </div>

  <div>
    <p></p>
    <p></p>
    <p></p>
  </div>
</body>

标签:浮动,100px,float,基础,height,width,CSS,left
From: https://www.cnblogs.com/haloujava/p/17639809.html

相关文章

  • 学习提示嵌入(Prompting Embeds)-AI基础系列文章第4篇
    您的关注是对我最大的支持......
  • Lnton羚通PyTorch快速入门基础知识
    workingwithdata(处理数据)PyTorch提供了两个基本方法用于数据处理,torch.utils.data.DataLoader和torch.utils.data.Dataset。DataSet存储样本及其对应的标签,DataLoader在Dataset基础上封装了一个可迭代的对象。PyTorch提供了不同应用领域的库,例如TorchText,TorchVisi......
  • 【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战
    并发编程介绍当今软件开发领域越来越强调性能和伸缩性,因此,利用并发编程可以更好地利用计算资源,提高应用程序的性能和响应速度。以下是一些关于并发编程的相关信息供您参考。什么是并发编程并发编程是指在一个程序中同时执行多个独立的计算任务,并通过各种手段来协调不同任务之间的交......
  • VX小程序开发基础教程2--
    https://www.bilibili.com/video/BV1834y1676P   P809:361.4组件  scroll-view组件基本使用1.5组件 swiper和swiper-item组件基本使用 ......
  • CSS基础-盒模型
    盒模型所有的HTML标签都可以看成矩形盒子,由width,height,padding,border构成,称为盒模型。盒子的总宽度=width+左右padding+左右border盒子的总高度=height+上下pading+上下borderwidth表示盒子内容的宽度。width属性的单位通常是px,也会涉及到百分数、rem等单位......
  • CSS3
    CSS31.CSS导入方式优先级:就近原则<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>css导入方式</title><!--2.内部样式--><style>h2{color:aqua;......
  • CSS如何使文本溢出部分显示省略号?多行超出
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>CSS如何使文本溢出部分显示省略号?多行超出</title><style>*{margin:0px;padding:0px;}.box{w......
  • 高频SQL 50题(基础版): 员工奖金 | 2023-08-17
    问题表:Activity+----------------+---------+|ColumnName|Type|+----------------+---------+|machine_id|int||process_id|int||activity_type|enum||timestamp|float|+----------------+---------+该表展示......
  • MySQL-基础篇 ( 多表查询:相关 + 内连接 + 外连接 + 自链接 + 联合查询 + 子查询 )
    MySQL-基础篇(多表查询)目录MySQL-基础篇(多表查询)多表查询分类多表关系概述一对多(多对一)多对多一对一多表查询概述笛卡尔积内连接隐式内连接显式内连接外连接左外连接右外连接自连接联合查询-union,unionall子查询标量子查询列子查询行子查询表子查询多表查询案......
  • MySQL-基础篇 ( 函数 + 约束 )
    MySQL-基础篇(函数+约束)目录MySQL-基础篇(函数+约束)函数字符串函数数值函数日期函数流程函数约束概述约束演示外键约束外键的删除/更新行为函数是指一段可以直接被另一段程序调用的程序或代码解决情况:表内存储的是入职日期,通过函数快速计算出入职天数表内存......