现在,大部分的横排导航都是通过 ul -> li *n -> a 来实现的。具我所知,要达到这种效果,有几种方法可以实现。

  1.传统处理方式:

li {float:left;}/*这样,对固定宽度导航条来说,li不能自动居中*/

2.inline-block方式

ul {text-align:center;font-family:simsun;font-size:14px;}
li {display:inline-block;*display:inline;zoom:1;margin-right:-0.5em; *margin-right:0;}
a{display:block;}
/*
行内显示并且水平居中;display:inline;
zoom:1;是对ie的hack,
margin-right:0.5em是对现代浏览器去缝,
*/

而这两种实现方法中,float:left要比display:inline;的表现方式要好。因为内联(display:inline;)属于行布局,其特性是在一行里进行布局,所以不能被设定宽高。块级元素的布局相对于内联样式要精确的多。所以尽量使用float:left;

当我们使用float:left后,发现父级元素的div没有被撑开,通常情况下要清浮动如下

<div>
<ul style="float:left">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
<!--需要清理浮动-->
<div style="clear:both"></div>
</div>

用了很久这样的方法,每次写Repeater绑定的时候都要加个<div style="clear:both"></div>的标签,以前没有注意到这方面的东西.今天重新写样式的时候,就上网搜了下替代的方法.果然在Google中搜到了一篇How To Clear Floats Without Structural Markup的文章,灵活的处理了清空浮动的问题

  首先设置代码为:

.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

这样我们只要对父级div引入这个clearfix的类即可

<div class="clearfix" >
<ul style="float:left">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</div>

这个css的原理是经过使用after伪对象,它将在应用clearfix的元素结尾添加content中的内容,也就是一个".",并且把他设置为块级元素(display="block");高度设置为0,clear="both",然后将其内容隐藏掉(visibility="hidden").这样就会撑开此块级元素.

  但是,IE并不支持.所以如果你需要兼容IE浏览器的话,可以设定以个Hack.

  如下:

.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
} * html .clearfix {zoom: 1;}

这样我们就可以只在父级div引用class类解决了繁琐的清空步骤.

下面给出别的网站清空浮动的代码

/* 1种clear both方式 */
.clearfix:after { content: “.”; display: block; height: 0; clear: both; visibility: hidden }
.clearfix { zoom: 1; display: inline-block; _height: 1px }
*html .clearfix { height: 1% }
*+html .clearfix { height: 1% }
.clearfix { display: block } /*2种*/
.clearfix:after{content:”.”; display:block; height:0; clear:both; visibility:hidden;}
.clearfix{zoom:1;}

解决CSS中float:left后需要clear:both清空的更多相关文章

  1. 解决CSS中float:left后需要clear:both清空的繁琐步骤(转)

      之前,因为公司专门有CSS+DIV的切片设计师,所以我一直都是注重程序的设计与开发.现在,因为接了一些Web网站的项目需要制作,就在空闲时间学习起了CSS.Jquery. 现在,大部分的横排导航都 ...

  2. CSS中float和Clear的使用

    CSS中float和Clear的使用 本文和大家重点讨论一下CSS中Float和Clear属性的使用,一个float对象可以居左或居右,一个设置为float的对象,将根据设置的方向,左移或右移到其父容 ...

  3. 关于css中float的理解

    感觉css里的float是个非常神奇的东西,神奇之处在于,你知道它是什么意思,但是用的时候总是不知道怎么实现效果.又或者它会很容易地影响到别的元素和属性.所以今天打算尝试一下float的各种设置,看看 ...

  4. CSS中float属性

    这个东西叫浮动.顾名思义,就是让设置的标签产生浮动效果,就是脱离原来页面的标准输出流.正常情况下,HTML页面中块元素都是从上倒下排列的.如果想实现左右结构.float的一种选择(当然还有其他方法). ...

  5. 解决css的float父div没有高度

    在做页面设计常会碰到css的float父div没有高度的情况,HTML代码设计 <div class='box'> <div class='float_left'></d ...

  6. scss牛刀小试:解决css中适配浏览器前缀问题

    在css中为适配浏览器,新特性总加 -webkit,-o, -moz 来适配浏览器,写的烦心,看着也臃肿,让css可读性降低,下面以阴影为例,如何使用scss让我们的css看起来更简洁. 本人使用的I ...

  7. CSS学习系列4 -- 再说CSS中的浮动运用及clear:left/right实际用法

    在 CSS学习系列2 -- CSS中的清除浮动 中,我们详细说了CSS中清除浮动的方法及使用 后来我自己在项目开发一个需要使用浮动的网页时,进行了实际运用,加上后来看到一篇好文章.所以就在这里再次写篇 ...

  8. CSS中float与A标签的疑问

    <stype> a{ text-decoration:none; float:left;} </stype> <div class="box1"> ...

  9. CSS中float属性和clear属性的一些笔记

    在学习CSS的最后一部分内容中,float属性和clear属性比较难以用语言描述,因此在笔记本中无法准确的记录这两个属性的用法.所以在博客园上以图文的形式记录这两种属性的特征,以备以后查阅. 首先,定 ...

随机推荐

  1. 【腾讯Bugly干货分享】你为什么需要 Kotlin

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/xAFKGarHhfQ3nKUwPDlWwQ 一.往事 ...

  2. OSG世界坐标转屏幕坐标(转载)

    OSG世界坐标转屏幕坐标 #define M(row,col) m[col * 4 + row] void Transform_Point(double out[4], const double m[ ...

  3. maven 第一次运行报错

    在大中国的网络环境下,使用一些国外的资源,是一件很痛苦的事情... 大概在好几个月以前,一个同事跟我说,没事的时候学习maven,现在公司项目都用这个做管理 还给了我电子书<Maven实战> ...

  4. 5分钟了解MySQL5.7的Online DDL雷区

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://suifu.blog.51cto.com/9167728/1855872 Part ...

  5. 转:找不到include xgpio.h;Unresolved include xgpio.h

    这个文档讲解的是在SDK下出现的问题,如果在ISE下编译是有错的,不能正常进入SDK,那这篇文档不适合你. 问题是这样的.根据教程<XILINX FPGA Verilog编程大全>做SOC ...

  6. 字符集 ISO-8859-1(2)

    HTML 支持的数学符号 结果 描述 实体名称 实体编号 ∀ for all ∀ ∀ ∂ part ∂ ∂ ∃ exists &exists; ∃ ∅ empty ∅ ∅ ∇ nabla ∇ ...

  7. shc加密shell脚本

    下载地址:http://www.datsi.fi.upm.es/~frosal/sources/ 安装 .tgz cd shc- mkdir -p /usr/local/man/man1 这步是必须的 ...

  8. PrefixSpan算法原理总结

    前面我们讲到频繁项集挖掘的关联算法Apriori和FP Tree.这两个算法都是挖掘频繁项集的.而今天我们要介绍的PrefixSpan算法也是关联算法,但是它是挖掘频繁序列模式的,因此要解决的问题目标 ...

  9. POJ2774(二分+哈希)

    Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total Submissions: 27234   Accepted: 11 ...

  10. SQL递归查询知多少

    最近工作中遇到了一个问题,需要根据保存的流程数据,构建流程图.数据库中保持的流程数据是树形结构的,表结构及数据如下图: 仔细观察表结构,会发现其树形结构的特点: FFIRSTNODE:标记是否为根节点 ...