对 clear:both 这个样式的一些理解

看下我今天一直研究的两个例子吧。希望对自己跟大家有帮助:

例子一:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
<style>
    .clearfix:after{
                visibility: hidden;
                display: block;
                font-size: 0;
                content: ".";
                clear: both;
                height: 0;
        }
    </style>
</head>
<body>
    <div style="border:2px solid red;">
        <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
        <div style="clear:both;"></div>
    </div>

<div style="height: 10px">
</div>

    <div class="clearfix" style="border: 2px solid red;">
        <div style="float: left;width:80px;height: 80px;border:1px solid blue;">TEST DIV</div>
    </div>

</body>
</html>

<div style="clear:both;"></div> 与  class="clearfix"  这个的作用是一样的,让父类的div展开。Clear:both;其实就是利用清除浮动来把外层的div撑开。你可以将上面的其中一个去掉,看下效果。所以有时候,我们在将内部div都设置成浮动之后,就会发现,外层div的背景没有显示,原因就是外层的div没有撑开,太小,所以能看到的背景仅限于一条线。

例子二:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {
            font-family: Tahoma, Geneva, Helvetica, sans-serif !important;
            color: #000 !important;
            height: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            background-color: #fff !important;
        }
        .clearfix:after {
            content: ".";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }/* 作用:   与<div style="clear: both"></div>相同,将外层的div撑开         */
    </style>
</head>
<body>

<div style="background-color: #f5fafe;width: 500px;height: 300px;margin: 20px 20px">  <!--最外层div-->
    <div style="padding: 50px 40px 40px 80px">   <!--用户名/密码的承载层,定义距离父层的距离-->
        <div style="padding: 20px 20px;">         <!--用户名/密码层之间的空间间隔-->
            <div style="float: left;width: 20%;text-align: right;"><label>用户名:</label></div>   <!--浮动20%-->
            <div style="float: left;position: relative">    <!--与下面children层进行position匹配-->
                <div><input /></div>              <!--定义标签以及错误已经样式-->
                <div style="position: absolute;font-size: 8px;color:#ff0000;background: #FFEBEB;height: 15px;line-height: 15px;width: 100%">用户名不能为空</div>
            </div>
            <div style="clear: both"></div>        <!--将外层的div撑开,与class=‘chearfix‘作用相同-->
        </div>

        <div class="clearfix" style="padding: 20px 20px;">
            <div style="float: left;width: 20%;text-align: right;"><label>密码:</label></div>
            <div style="float: left;position: relative">
                <div><input type="password"/></div>
                <div style="position: absolute;font-size: 8px;color:#ff0000;background: #FFEBEB;height: 15px;line-height: 15px;width: 100%">密码不能为空</div>
            </div>
        </div>
    </div>

</div>

</body>
</html>

例子一有参考:http://blog.sina.com.cn/s/blog_4a3789a70100jfv4.html

				
时间: 2024-10-18 19:35:21

对 clear:both 这个样式的一些理解的相关文章

边框图片样式的简单理解

border-image:url:(images/WhiteButton.png) 0 12 0 12 stretch stretch;“0 12 0 12”:按顺时针方向分别是上右下左边框的宽度,即上:0:右:12:下:0;左:12.stretch | repeat | round 即为除去边框后的图像拉伸的方法,第一个stretch为上下拉伸方法,第二个stretch为左右拉伸方法:stretch:指定用拉伸方式来填充边框背景图.repeat:指定用平铺方式来填充边框背景图.当图片碰到边界时

浏览器默认样式及reset

写在前面 首先纠正一个易错概念.div并非生来就是块元素,而是每个浏览器都有一套默认的css样式(优先级最低),默认样式里会把div设置成display: block;还有margin,padding等.这就是不同浏览器初始化样式不同的原因.也是为什么要做css reset的原因. 注:chrome等可以在调试工具里看到默认样式,是不可修改的,置灰的,如下图.各浏览器默认样式详情请参考<浏览器默认样式对比表>. 1.浏览器默认样式 这里无需过多赘述,最直观的就是上表,给大家几个地址: 1.浏览

[css]【转载】CSS样式分离之再分离

原文链接:http://www.zhangxinxu.com/wordpress/2010/07/css%E6%A0%B7%E5%BC%8F%E5%88%86%E7%A6%BB%E4%B9%8B%E5%86%8D%E5%88%86%E7%A6%BB/ 一.关于CSS样式分离 zxx://一些名词表意含有自己的理解成分,或许与您的理解有偏差,希望不要拘泥于措辞.无论是CSS的分离还是js的分离,其主要作用之一就是精简与重用. CSS本身就代表着精简与重用.例如我们可以设置一个如下的样式: .exa

清除浮动的四种方式及其原理理解

清除浮动的四种方式及其原理理解 本文介绍了四种清除浮动的方法,并尝试解释其原理.在理解了各种清除浮动的原理之后,你会发现,很多清除浮动的方法本质上其实是一样的.掌握这些原理,相信你可以根据场景和需求,灵活运用原则发展出不同的清除浮动的方法,而不再死记或拘泥于文中提到的方法. 一.为什么要清除浮动 在讲清除浮动的方法之前,我们先来了解一下为什么要清除浮动,清除浮动的目的是什么,即,要解决什么样的问题.来看一个浮动的例子(略去了文字内容): <div class="topDiv"&g

进行手持设备wince开发中DataGrid的样式设置(宽度)

private void SelectGoodsForm_Load(object sender, EventArgs e) { //定义 DataGrid样式 DataGridTableStyle dataGridStyle = null; dataGridStyle = new DataGridTableStyle(); this.goodsGrid.DataSource = createDataTable(); //清楚之前的DataGrid样式 this.goodsGrid.TableSt

我对CSS vertical-align的一些理解与认识(一)

一.关于今天,本文,及其他 今天是个特殊的日子,因为今天是汶川地震两周年的日子,我很悲鸣:今天又是国际护士节,看到微博上护士照横流,我很欣慰. 一段放松的YY后,进入正题.上个月21号,有位同行留言想让我讲讲vertical-align属性,我其实对vertical-align属性也是略知皮毛,要说岂敢谈“讲解”,就说说我对vertical-align属性的一些理解吧,纯属个人见解,若有不准确之处还望见谅.还有,vertical-align属性牵扯到的知识实在是太多了,不是一篇文章就可以讲清楚的

浏览器如何加载和解析CSS&mdash;&mdash;CSS样式来源与层叠规则

关于CSS样式首先得理解浏览器如何加载它们,最终的页面样式是如何呈现的? CSS层叠样式表的关键在于"层叠",会根据选择符的使用而将样式相互叠加或者覆盖. CSS样式表之所有有"层叠"的概念,因为有多个样式来源,不同样式设置来源不同权重, 优先顺序为:1到5权重依次降低 1 HTML标签头内的样式             (不建议使用,结构样式分离) 2 <style>中编写的样式代码        (适合不常更新或很少访问的页面) 3 <link

关于css清除元素浮动的方法总结(overflow clear floatfix)

作者:文刀日月: 来源:http://www.cnblogs.com/dtdxrk/p/3555438.html 关于css清除元素浮动的方法总结(overflow clear floatfix) 在前两天的一个面试中考官问我web中清除浮动的一些css常用方法,我很轻松的答出了: 1.overflow:hidden 2.clear:both 3.floatfix类 然后问题就来了,考官接着问'为什么overflow:hidden'可以清除浮动?这下就把我问住了.写了这么多年css只是单纯的解决

CSS样式表(二)

网页中原始的布局是内容之间不会进行自动分段,会从左往右开始出现内容,而在出现分行或者分段的符号后,页面会按照分的行开始下一行的内容,默认为从左上方开始,一直往下.为使网页中一些内容出现在一定的位置,常常会使用到样式表中的格式布局进行调整.而进行格式布局的方式一般有两种,position和float,这两种方式都可以使该元素浮于页面上层,但position因为后期不方便修改,所以现在在网页的制作过程中不常用. position有三种定位方式:"absolute"为绝对定位,它是相对于浏览