`
zhengdl126
  • 浏览: 2513458 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

CSS实现div或ul,li水平对齐不换行

 
阅读更多

 

去掉A标签的:

 

 

增加li标签:

 

 

在网页前端开发中,我们可能会经常用到走马灯特效,于是乎就需要用CSS来实现文字或图 片水平对齐但不换行的效果,用div+table可是很实现这个效果,但是要用div或ul,li来做就难了,大部分人都会想到用 overflow:hidden+固定宽度width来控制div或li浮动元素不会换行,但这样效果很差或根本无效。其实我们只需要用到三个CSS样式 就能搞定它了,它们分别是display:inline-block,overflow:hidden和white-space:nowrap

下面就来分析一下它们的作用:

首先,是overflow:hidden。

overflow:hidden是作用是什么呢?大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解。

一提到清除浮动,我们就会想到另外一个CSS样式:clear:both,我相信对于这个属性的理解大家都不成问题的。但是对于“浮动”这个词到底包含什么样的含义呢?我们下面来详细的阐述一下。

<div id="outer">
 <div id="inner"></div>
</div>

这是一个常用的div写法,下面我们来书写样式。大家可以在DW中自己做试验

#outer{ width:500px;  background:#000; height:500px;}

#inner{ float:left; width:600px; height:600px; background:red;}

可以看到,我给inner这个id加了一个浮动,我们常规的理解是,我们允许inner这个id的div的右边出现其他的内容,只要它的宽度不超过outer这个div和inner这个div的剩余值。

如果div outer中还包含其他的div,我不允许它出现在inner的右侧,我们则用样式clear:both指定这个div,不允许它浮动在inner右侧。

这些在ie6里面是正确的。但是在火狐或者其他浏览器里面,我们发现问题并非如此简单。我们发现,当inner这个div的宽度和高度都大于wai这个div的时候,outer并没有被inner撑开而是依旧显示为我们指定的宽高。在我的例子中,都是500。

这个时候我不理解了,我搜索了很多的资料,但是都没能理解这是为什么,直到看到别人在类似的情况下给outer这个div加了一个overflow:hidden这个属性解决了这个问题。

我们直到overflow:hidden这个属性的作用是隐藏溢出,给outer加上这个属性后,我们的inner的宽高自动的被隐藏掉了。另外, 我们再做一个试验,将outer这个div的高度值删除后,我们发现,outer的高度自动的被inner这个div的高度值给撑开了。

说到这里,我们再来理解一下“浮动”这个词的含义。我们原先的理解是,在一个平面上的浮动,但是通过这个试验,我们发现,这不仅仅是一个平面上的浮动,而是一个立体的浮动!

这就是overflow:hidden这个属性清除浮动的准确含义。

其次,是display:inline-block

display:inline-block
简单来说就是将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同 一行内,也就是水平对齐但不会换行,而用display:inline 和display:block都实现不了,但是这个属性目前不是所有的浏览器都支持,只有Opera和Safari支持,FireFox3和IE8都会支 持,Firefox2和IE使用特殊办法可以实现这种效果。

最后,是white-space:nowrap

white-space:nowrap本来的用途是让文本内容不会出现换行,其实它还能用容器(div,ul等)上。在ul上加样式white- space:nowrap,可以让其内部的li对象,水平放置而不会换行,跟display:inline-block的作用应该是相辅相承的

 

 

 

 

 

 

  • 大小: 17.1 KB
  • 大小: 22.4 KB
分享到:
评论

相关推荐

    div css nowrap无换行

    昨天在使用css结合div布局的时候碰到了一个问题。 在一个规定宽度大小的ul里边 我把li的宽度定义为自动。企图让li根据内容长度来自动向左对齐排列。

    div+css有实例,易学易懂

    div+css有实例,易学易懂第1 章 Web 标准布局的本质 第8 页 1.1 为什么要建立Web 标准 1.1.1 建立Web 标准的目的 1.1.2 使用Web 标准的好处 1.2 什么是Web 标准 1.3 内容、结构和表现 1.4 两种思考方式 1.5 Web 标准...

    float元素浮动后高度不一致导致错位的解决办方法

    当N个元素浮动后,会导致错位的问题。一般给元素一个固定的height就没有这个现象。 但是当高度不一致时,就需要想别的办法来解决了:... } ul li{ width:160px; display:inline-block; vertical-align:top; font-size:

    制作div+css带箭头的新闻list模块

    制作div+css带箭头的新闻list模块 .list li span{ float: right;/*使span元素浮动到右面*/ text-align: right;/*日期右对齐*/ padding: 6px 0px 4px 15px; font-size:13px; } .list li a:hover{ color: #...

    H5+CSS3.zip

    列表标签:使用&lt;ul&gt;&lt;li&gt;实现无序列表,使用&lt;ol&gt;&lt;li&gt;实现有序列表; 使用标签添加图片,使用标签添加链接,使用table添加表格,使用thead、tbody、tfood定义表格; 表单标签:使用创建表单,文本输入框,密码输入框,...

    div+css是网页排版技巧分享

    1,ul:默认的ul的margin和padding不是0,如果在导航中用到了左浮动的li,往往会把外部的div撑大,导致页面变形,改成: ul{margin:0px; padding:0px;} 2、img:1、这里牵涉的不同浏览器的问题,ie6里显示的图片...

    css入门笔记

    ex:div,h1-h6,p,ul,li,ol,dl,dt,dd 2.行内元素允许修改尺寸 表单控件元素 3.本身具备width和height属性的元素 ex:img,table 注意:大部分行内元素不能修改 span,a,i,u,b,s 3.溢出处理 当内容多,元素区域小...

    使用HTML开发商业网站-CSS元素的类型和转换课件.pptx

    一般不可以设置宽度、高度、对齐等属性。 元素的类型和转换 &lt;ul&gt; 常见的块元素 — &lt;div&gt; &lt;li&gt; 其中&lt;div&gt;标签是最典型的块元素。 元素的类型和转换 常见的行内元素 其中标签最典型的行内元素。 元素的类型和...

    Web前端与移动开发之复合选择器 css元素显示模式 背景属性.txt

    (1)块级元素 div p h1-h6 ul ol li ①独占一行 ②宽度 高度 外边距 内边距都可控制 ③宽度默认是容器(父级元素)100%的宽度 ④是一个容器及盒子 里面看可以放行内或块级元素 ⑤文字类的元素如p h1-h6里面不...

    46种常见的浏览器兼容性问题大汇总

    2. const问题 3 3. event.x与event.y问题 3 4. window.location.href问题 3 5. frame问题 3 ...25. 属性选择器(这个不能算是兼容,是隐藏css的一个bug) 3 26. 为什么FF下文本无法撑开容器的高度 3

    基础的CSS3弹性盒Flexbox布局使用实例

    flexbox是一个新的盒子模型,当你给一个元素使用了flexbox模块,那么它的子元素就会指定的方向在水平或者纵向方向排列。这些子元素会按照一定的比例进行扩展或收缩来填补容器的可用空间。flexbox有许多很好用的地方...

    html入门到放弃笔记

    文本的水平对齐方式 取值:left / center / right 4、段落元素 语法:&lt;p&gt;&lt;/p&gt; 属性:align : left / center / right Demo : 1、在 02-text.html 中,增加以下内容 1、用 段落标记表示 :The first paragraph...

    一文了解CSS 标签显示模式

     常见的块元素有~、、&lt;div&gt;、&lt;ul&gt;、、&lt;li&gt;等,其中 &lt;div&gt; 标签是最典型的块元素。  特点:(重要)  1、独占父亲一行,宽度默认是容器的100%;  2、高度,行高、外边距以及内边距都可以控制;(支持宽高的设置)...

    sublime快捷键

    14分组:() div&gt;(header&gt;ul&gt;li*2&gt;a)+footer&gt;p 16乘法:* 17自增符号:$ 18ID和类属性#header .title form#search.wide 19自定义属性p[title="Hello world"] td[rowspan=2 colspan=3 title] 20文本:{} a{Click me} p...

    Code-Challenge

    (从 div 移动到 css /* li:before {} */ ) 将淡入淡出添加到列表底部进行中:悬停模型样式/方法[总时间:3 小时,进入项目] 跨浏览器错误测试FF错误; ::首字母 CSS 伪元素选择器Chrome错误; 下拉列表边距对齐...

Global site tag (gtag.js) - Google Analytics