CSS浮动属性,知道原理就很简单,灵活控制块级元素在一行内显示

news/2024/7/8 2:01:32 标签: web前端, javascript, HTML5, 程序员, 编程开发

在页面布局中,有两个非常常用的CSS属性。它们巧妙的控制着块级元素们之间的位置,灵活的让块级元素在一行内显示或者另起一行。说到这里,相信大家已经猜出来了,这两个属性就是控制块级元素浮动的属性。整个页面布局过程中,浮动属性的使用频率是最高的。今天,就来带领大家一同认识这两个神奇的CSS属性。

承接文章:发挥个人的优势,踏踏实实的学习前端开发,为你传授学习心得

技术等级:初级 | 适合前端开发的初学者阅读学习。

一、浮动属性:

CSS技术使用float属性来实现块级元素的浮动效果。

web前端/html5学习群:733581373

CSS技术使用float属性实现浮动效果

该属性可以有下列取值:

  • left,控制块级元素左浮动。

  • right,控制块级元素右浮动。

属性说明:我们都知道,块级元素之间默认情况下是独占一行的。也就是说,两个在代码中紧密相连的块级元素,它们的摆放位置是一个在上一行,另一个在下一行。尽管通过width和height属性为块级元素设置了大小,使得块级元素无法占满整个行,但是块级元素右侧空余的位置仍然不允许出现任何内容。

让我们一同来看下列实例:

HTML代码如下所示:

<div id=”box01”></box>

<div id=”box02”></box>

CSS代码如下所示:

#box01,#box02{

width:200px; height:100px;

}

#box01{background-color:#ff5857;}

#box02{background-color:#5857ff;}

上述代码的运行结果如下图所示,这张图为我们展示了两个块级元素默认的位置摆放。

展示两个块级元素的默认位置

如果我想让两个块级元素在一行内显示该如何实现呢?这就需要float属性登场了。

将#box01的CSS代码中添加如下属性:float:left,会发生什么情况呢?同学们实践操作一下,我们会发现,屏幕中就只剩下红色的块级元素了。那蓝色的#box02去哪里了呢?其实#box02响应了#box01浮动的号召,和#box01一同出现在同一行了,只是被压在了红色的#box01的下面。

解决方法就是让蓝色的#box02也添加上 float:left的属性。这样,两个块级元素就可以共同出现在一行了。下图为我们展示了这样的效果。

 

web前端/html5学习群:733581373

展示两个块级元素的左浮动位置

下面让我们再看一个实例,这个实例中我们为两个块级元素添加一个容器。

HTML代码如下所示:

<div id=”box”>

<div class=”boxLeft”></div>

<div class=”boxRight></div>

</div>

我们设置容器#box的宽度为400px。内部的两个块级元素:.boxLeft的宽度设置为150px;.boxRight的宽度设置为100px。要求让这两个内部的块级元素在一行内显示,并且分布到容器的两端。

CSS代码如下所示:

#box{

width:400px; height:100px;

background-color:#cccccc;

}

#box .boxLeft{

width:150px; height:100px;

background-color:#ff5857;

float:left;

}

#box .boxRight{

width:100px; height:100px;

background-color:# 5857 ff;

float:right;

}

我们可以看到,在.boxRight对象上,我们添加了float:right的CSS属性,让这个块级元素发生了右浮动,则该元素跑到了容器的最右侧。下图为我们展示了这样的效果。

展示两个块级元素的左右浮动位置

浮动属性的使用结论:

若希望多个块级元素在一行内显示,则这几个块级元素都要具备float浮动属性。

二、清除浮动属性:

CSS技术使用clear属性来实现块级元素的清除浮动效果。

 

web前端/html5学习群:733581373

CSS技术使用clear属性设置清除浮动效果

该属性可以有下列取值:

  • left,清除块级元素的左浮动效果。

  • right,清除块级元素的右浮动效果。

  • both,清除块级元素的两端浮动效果。

属性说明:根据上面的float属性的使用,我们可想而知,一个紧跟在具有浮动属性的块级元素后面的块级元素,即使它不想和它前面的块级元素在一行内显示,也会受到前面块级元素浮动属性的影响,被压在前面块级元素的下方。

解决这个问题,可以对不希望和前面块级元素在同一行显示的块级元素使用清除浮动属性。

 

下面让我们来看这个实例:

HTML代码如下所示:

<div id=”box”>

<div class=”boxLeft”></div>

<div class=”boxRight></div>

</div>

CSS代码如下所示(#box .boxRIght):

#box .boxRight{

width:100px; height:100px;

background-color:# 5857ff;

clear:left;

}

因为.boxRight具备clear:left属性,所以即使.boxLeft使用了float:left属性,它们也仍旧分布在两行,不会在同一行显示。就好像没有过使用任何浮动效果似的。

 

web前端/html5学习群:733581373

欢迎关注此公众号→【web前端技术圈】跟大佬一起学前端!欢迎大家留言讨论一起转发


http://www.niftyadmin.cn/n/1733091.html

相关文章

HTML Dom Table对象

http://www.w3school.com.cn/htmldom/dom_obj_table.asp Table 对象 Table 对象代表一个 HTML 表格。 在 HTML 文档中 <table> 标签每出现一次&#xff0c;一个 Table 对象就会被创建。 IE: Internet Explorer, F: Firefox, O: Opera, W3C: W3C 标准. Table 对象集合 集合…

HTML DOM deleteRow() 方法

http://www.w3school.com.cn/htmldom/met_table_deleterow.asp 定义和用法 deleteRow() 方法用于从表格删除指定位置的行。 语法 tableObject.deleteRow(index) 说明 参数 index 指定了要删除的行在表中的位置。行的编码顺序就是他们在文档源代码中出现的顺序。<thead> 和…

JavaScprit30-6 学习笔记

今天学习的是 仿即时搜索诗句效果 第一个问题&#xff1a; fetch() Fetch API 提供了一个 JavaScript接口&#xff0c;用于访问和操纵HTTP管道的部分&#xff0c;例如请求和响应。它还提供了一个全局 fetch()方法&#xff0c;该方法提供了一种简单&#xff0c;合乎逻辑的方式…

java删除目录下所有文件以及目录

import java.io.File;public class Test12121 {/*** param args*//*** 删除目录下一级的所有文件与目录* param file*/private void delTempFiles(File file,Test12121 biz) throws Exception{//if(file.isFile()) {//if(!file.delete()) {if(file.isFile()) {file.delete();} …

Ubuntu18.04和Win10共享文件夹

Ubuntu18.04和Win10共享文件夹 陈拓2021/08/05-2020/08/08 1. 概述 Ubuntu18.04局域网共享文件夹&#xff0c;实现win10和Ubuntu局域网访问。 2. Ubuntu 下设置共享文件夹 右击要共享的文件夹 例如hk 选择Local Network Share点击Share this folder&#xff0c;需要安装共享…

守护线程与用户线程

守护线程与普通线程的唯一区别是&#xff1a;当JVM中所有的线程都是守护线程的时候&#xff0c;JVM就可以退出了&#xff1b;如果还有一个或以上的非守护线程则不会退出。&#xff08;以上是针对正常退出&#xff0c;调用System.exit则必定会退出&#xff09; 所以setD…

选择好友的下拉控件

<!doctype html public "-//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv"content-type" content"text/html; charsetutf-8"/><title>選擇好友</title>&l…

Ubuntu18.04安装使用Qt编译海康威视SDK DEMO

Ubuntu18.04安装使用Qt编译海康威视SDK DEMO 陈拓 2021/08/09-2020/08/09 1. Ubuntu 18.04安装Qt 我们在《海康威视SDK实例QtDemo显示NVR视频窗口(LinuxQt)》 https://zhuanlan.zhihu.com/p/395178052 https://blog.csdn.net/chentuo2000/article/details/119299045 一文中…