关于CSS中的float可能出现的小问题


  • 前言:最近学习CSS的float所遇到点小问题,然后顺便分享给大家。

一、什么是CSS以及float


(一) CSS概述

CSS是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

(二) float概述

float属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。

二、float可能出项的问题


(一) 当没有父级块明确的边界时,float可能没有预想的效果

    1.没有明确的边界

 <!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>floatTest</title>
<style type="text/css">
#d1 {
float: left;
width: 100px;
height: 100px;
background-color: red;
} #d2 {
float: left;
width: 100px;
height: 100px;
background-color: green;
} #d3 {
float: left;
width: 100px;
height: 100px;
background-color: blue;
}
</style>
</head> <body>
<div style="width:auto; border:solid 1px black;">
<!--<div style="width: 300px;height: 300px;border: solid 1px black;">-->
<div id="d1">
d1
</div>
<div id="d2">
d2
</div>
<div id="d3">
d3
</div>
</div> </body> </html>

浮动前

浮动后


    2.有明确的边界时

 <!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>floatTest</title>
<style type="text/css">
#d1 {
float: left;
width: 100px;
height: 100px;
background-color: red;
} #d2 {
float: left;
width: 100px;
height: 100px;
background-color: green;
} #d3 {
float: left;
width: 100px;
height: 100px;
background-color: blue;
}
</style>
</head> <body>
<!--<div style="width:auto; border:solid 1px black;">-->
<div style="width: 200px;height: 200px;border: solid 1px black;">
<div id="d1">
d1
</div>
<div id="d2">
d2
</div>
<div id="d3">
d3
</div>
</div> </body> </html>

浮动前

浮动后


    3.总结

      在选择需要进行浮动操作的时候,一定要明确浮动的边界,这样才能出想要的效果。


(二) 对div块的设定导致的问题

    1.div范围定义较小

 <!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>floatTest</title>
<style type="text/css">
.divs {
/*float: right;*/
} .divs div {
float: right;
} #d1 {
width: 100px;
height: 100px;
background-color: red;
} #d2 {
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head> <body>
<div style="width: 700px;height: 700px;border: solid 1px black;">
<div style="width: 200px;height: 200px;border: solid 1px black;" class="divs">
<div id="d1">
d1
</div>
<div id="d2">
d2
</div>
</div>
</div> </body> </html>

浮动前

浮动后


    2.合理的div块定义

 <!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>floatTest</title>
<style type="text/css">
.divs {
float: right;
} .divs div {
/*float: right;*/
} #d1 {
width: 100px;
height: 100px;
background-color: red;
} #d2 {
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head> <body>
<div style="width: 700px;height: 700px;border: solid 1px black;">
<div style="width: 200px;height: 200px;border: solid 1px black;" class="divs">
<div id="d1">
d1
</div>
<div id="d2">
d2
</div>
</div>
</div> </body> </html>

浮动前

浮动后


    3.总结

当我们将整个divs块下的元素都进行了右浮动,但是我们以为这就是将divs块进行了移动,但是其实只是d1和d2块在divs块中进行了移动,divs块并没有动,所以当我们要移动一整块的divs和分别移动的效果是完全不一样的,所以一定要注意这样的小细节。


 

关于CSS中的float可能出现的小问题的更多相关文章

  1. css中的float属性以及清除方法 (2011-09-03 17:36:26)

    CSS里面的浮动属性是布局的常用工具,只有真正了解它并熟练使用才能将它的优点发挥到极致. 许多页面中都有文字绕图效果,并且各区块分布得错落有置,很多朋友在自学CSS布局时为了做出这些效果往往会被div ...

  2. 如何理解css中的float

    最近一段时间一直在为一个即将上线的新站进行一些前端开发.自然,对CSS的使用是必不可少的了.我们在CSS 中很多时候会用到浮动来布局.常见的有 float:left 或者 float:right .简 ...

  3. css 中 的 float :left 和 clear :both

    float:left;(左浮动)他使得指定元素脱离普通的文档流而产生的特别的布局特性.并且FLOAT必需应用在块级元素之上,也就是说浮动并不应用于内联标签.或者换句话来说当应用了FLOAT那么这个元素 ...

  4. css 中的背景图片小技巧和存在的坑

    body 的背景图设置 第一种 :这种情况下背景图片可以缩放 但是不能完全等比缩放 background: url(imgs/1.jpg)no-repeat; background-position: ...

  5. [转][译]关于CSS中的float和position和z-index

    原文:http://learn.shayhowe.com/advanced-html-css/detailed-css-positioning 当构建页面排版时,有不同的方法可以使用.使用哪一种方法取 ...

  6. css中的几个小tip(二)

    margin的塌陷现象 (一)在标准文档流中, 垂直方向存在margin的塌陷现象 先上段代码: <style type="text/css"> .box{ width ...

  7. 文档流 css中的float clear与布局

    文档流 先说说什么是文档流  流是什么 就是一串连续的东西 <div style="background-color:pink;width:40px;height:80px;" ...

  8. [译] 关于CSS中的float和position

    原文 http://learn.shayhowe.com/advanced-html-css/detailed-css-positioning 当构建页面排版时,有不同的方法可以使用.使用哪一种方法取 ...

  9. CSS中的float和margin的混合使用

    在最近的学习中,在GitHub上找了一些布局练习,我发现了我自己对布局超级不熟悉(很难受). 在以前的学习中,感觉使用CSS就记住各个属性的功能就OK了,但是呢?真的很打脸.不说了,太伤心了,进入正题 ...

随机推荐

  1. mysql 主键与外键

    一.主键详解,引用自:https://blog.csdn.net/haiross/article/details/50456154 1.要设置主键自增的话字段必须是整形数字. 二.外键详解:引用自ht ...

  2. 000 Jquery的Hello World程序

    1.介绍Jquery 2.简介 3.新建一个静态项目,并粘贴jquery库 4.程序 <!DOCTYPE html> <html> <head> <meta ...

  3. 搭建基于MyEclipse的Hadoop开发环境

    不多说,直接上干货! 前面我们已经搭建了一个伪分布模式的Hadoop运行环境.请移步, hadoop-2.2.0.tar.gz的伪分布集群环境搭建(单节点) 我们绝大多数都习惯在Eclipse或MyE ...

  4. 关于dubbo和zookeeper 注册中心

    Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载.如果不想使用Sprin ...

  5. python中的*和**参数传递机制

    python的参数传递机制具有值传递(int.float等值数据类型)和引用传递(以字典.列表等非值对象数据类型为代表)两种基本机制以及方便的关键字传递特性(直接使用函数的形参名指定实参的传递目标,如 ...

  6. luoguP3920 [WC2014]紫荆花之恋 动态点分治 + 替罪羊树

    意外的好写..... 考虑点分 \(dis(i, j) \leq r_i + r_j\) 对于过分治中心一点\(u\),有 \(dis(i, u) - r_i = dis(j, u) + r_j\) ...

  7. 格式化p6spy的输出日志

    众所周知, p6spy打印出来的日志是一行很长很长的内容, 很不容易查看, 牛B的p6spy为什么就不能想hibernate那样有format_sql的功能? 竟然没有, 我只好自己动手写一个日志输出 ...

  8. SetProcessWorkingSetSize 降低程序运行内存

    在项目中对程序性能优化时,发现用SetProcessWorkingSetSize() 方法使内存降低了很多,于是查阅了相关的资料如下. 一 SetProcessWorkingSetSize 的工作原理 ...

  9. Codeforces Round #394 (Div. 2) D. Dasha and Very Difficult Problem 贪心

    D. Dasha and Very Difficult Problem 题目连接: http://codeforces.com/contest/761/problem/D Description Da ...

  10. PHP PSR 代码规范基本介绍

    PSR 是 PHP Standard Recommendation 的简写,即PHP推荐标准. 目前通过的规范有 PSR-0(Autoloading Standard).PSR-1(Basic Cod ...