当前位置:  编程技术>WEB前端

元素水平居中方案全集

    来源: 互联网  发布时间:2014-09-06

    本文导语:  先来看我一个简单XHTML/HTML文件代码(部分),我们的目的是让#container水平居中。   content Lorem?ipsum?dolor?sit?amet,?consectetuer?adipiscing?elit.Phasellus?varius?eleifend.使用自适应边界(auto?margin)水平居中任意元素的首选办法是使用边界...

先来看我一个简单XHTML/HTML文件代码(部分),我们的目的是让#container水平居中。











 
 content
 

Lorem?ipsum?dolor?sit?amet,?consectetuer?adipiscing?elit.Phasellus?varius?eleifend.





使用自适应边界(auto?margin)
水平居中任意元素的首选办法是使用边界(margin)性质(property),并把左右之值设置为auto。但你必须为#container指定一个宽度。

div#container?{
 margin-left:?auto;
 margin-right:?auto;
 width:?168px;
}
这个方案在任何当代浏览器上都有效,即使是IE6,前提是在web标准兼容模式下(compliance?mode)。不幸的是,它不会在先前版本的IE/Win中工作。我们为此列一个表格:


浏览的自适应边界支持一览表?浏览器?版本?支持?
Internet Explorer 6.0, compliance?mode?是?
Internet Explorer 6.0, quirks?mode?否?
Internet Explorer 5.5 Windows?否?
Internet Explorer 5.0 Windows?否?
Internet Explorer 5.2 Macintosh?是?
Mozilla 所有当前版本?是?
Mozilla Firefox?所有版本?是?
Netscape?4.x?否?
Netscape?6.x+?是?
Opera?6.0,?7.0?Macintosh?and?Windows?是?
Safari?1.2?是?

尽管受到浏览器支持的限制,大部分设计师还是提倡你尽可能这样做。但我们依然可以使用CSS应付一切情况。

使用文本排列(text-align)
此方案需要使用到text-align性质,应用给body元素并且赋予center的值。

body{
 text-align:center;
}
它公正地对待各种浏览器,十分彻底,唾手可得。然而,这是赋予文本的性质,它使#container中的文本也居中了。所以,在布局上我们还得做一些额外工作:

div#container{
 text-align:?left;
}
这样才可以把文本的对齐方式返回默认状状态。

综合边界和文本排列
因为文本排列向后兼容,当代浏览器也支持自适应边界,很多设计师把他们结合起来,实现跨浏览器使用。

body{
text-align:?center;
}
#container?{
 margin-left:?auto;
margin-right:?auto;
 border:?1px?solid?red;
 width:?168px;
 text-align:?left
}
唉,依然不完美,因为还是一个黑客技巧?(hack)。你不得不为文本排列写下多余的规则。但现在,我们可以使用更完美的跨浏览器的方案。

负边界解决方案
此方案得结合使用绝对定位(absolute?positioning?)。首先,把#container绝对定位并左偏移 50%,这样,#container的左边界就是页面分辨率的一半。下一步,把#container的左边界设置为负值,值大小为#container宽 度(width)的一半。

#container?{
background:?#ffc?url(/blog_article/mid.jpg)?repeat-y?center;
 position:?absolute;
 left:?50%;
 width:?760px;
 margin-left:?-380px;
}
看,没有任何黑客技巧(no?hacks)!连Netscape?4.x都支持!


    
 
 

您可能感兴趣的文章:

  • JQuery实现元素屏幕居中显示的代码
  • 文字或图片元素在DIV中垂直居中
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 end():返回最末元素的迭代器(译注:实指向最末元素的下一个位置)
  • 文件描述符集fd_set * readfds;书上这样描述数组元素的每一位对应一个文件描述符,第一个元素代表文件描述符0到31,数组第二个元素代表文
  • C++ Double Ended Queues(双向队列) 成员 erase():删除一个元素
  • jquery判断元素的子元素是否存在的示例代码
  • C++ Lists(链表) 成员 erase():删除一个元素
  • jquery怎么判断元素的子元素是否存在
  • C++ MultiMaps 成员 insert():插入元素
  • jquery获取一个元素下面相同子元素的个数代码
  • C++ Maps 成员 erase():删除一个元素
  • 页面元素绑定jquery toggle后元素隐藏的解决方法
  • C++ MultiMaps 成员 erase():删除元素
  • 什么叫“删除一个元素,就必须移到另一个元素“?
  • C++ Lists(链表) 成员 remove():从list删除元素
  • SPAN元素和DIV元素有的区别
  • C++ Lists(链表) 成员 insert():插入一个元素到list中
  • jquery中子元素和后代元素的区别示例介绍
  • C++ Lists(链表) 成员 remove_if():按指定条件删除元素
  • jQuery 获取/设置/删除DOM元素的属性以a元素为例
  • C++ Maps 成员 insert():插入元素
  • 网站的站内搜索是怎么实现的?怎么做?在网页的头元素中有一关键词元素,是不是就是给站内搜索用的?如果我在Sina中登记我的网站,那么是不是
  • C++ Vectors 成员 assign():对Vector中的元素赋值
  • jquery 元素控制(追加元素与内容)的方法介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3