全国服务热线:4008-888-888

技术知识

企业网站建设签约动态-典型的三行二列居中高度

--------

企业网站建设签约动态

-------作者:阿捷 :03

怎样使全部网页页面內容垂直居中,怎样使高宽比适应內容全自动伸缩。这是学习培训CSS合理布局最多见的难题。下面就给出一个具体的事例,并详尽解释。(本文的工作经验和是蓝色理想化论坛xpoint、guoshuang相互探讨得出的。)

最先先按这里看具体运作实际效果,这个网页页面在mozilla、opera和IE访问器中都可以完成垂直居中和高宽比自适应。大家来剖析编码:

html
head
style type="text/css"
body{
background:#999;
text-align:center;
color: #333;
font-family:arial,verdana,sans-serif;
}
#header{
width:776px;
margin-right: auto;
margin-left: auto;
padding: 0px;
background: #EEE;
height:60px;
text-align:left;
#contain{
margin-right: auto;
margin-left: auto;
width: 776px;
#mainbg{
width:776px;
padding: 0px;
background: #60A179;
float: left;
}
#right{
float: right;
margin: 2px 0px 2px 0px;
padding:0px;
width: 574px;
background: #ccd2de;
text-align:left;
}
#left{
float: left;
margin: 2px 2px 0px 0px;
padding: 0px;
background: #F2F3F7;
width: 200px;
text-align:left;
}
#footer{
clear:both;
width:776px;
margin-right: auto;
margin-left: auto;
padding: 0px;
background: #EEE;
height:60px;}
.text{margin:0px;padding:20px;}
/style
/head
body
div id="header" header /div
div id="contain"
div id="mainbg"
div id="right"
div
right p 1 /p p 1 /p p 1 /p p 1 /p p 1 /p /div
/div
div id="left"
div left /div
/div
/div
/div
div id="footer" footer /div
/body
/html

最先大家界定body和顶部第一行#header,这里边的重要是body中的text-align:center;和header中的margin-right: auto;margin-left: auto;,根据这两句使得header垂直居中。注:实际上界定text-align:center;就早已在IE中完成垂直居中,但在mozilla中失效,需要设定margin:auto;才能够完成mozilla中的垂直居中。

接下来界定正中间的两列#right和#left。以便使正中间两列也垂直居中,大家在它们外面嵌套循环一个层#contain,并对contain设定margin:auto;,这样#right和#left就当然垂直居中了。

留意正中间两列界定的次序,大家最先界定#right,根据float: right;让它浮在#contain层的最右侧。随后再界定#left,根据float: left;让它波动在#right层的左边。这和大家之前表格从左到右界定的次序正好相反(更正:先左后右、還是先右后左都能够完成,依据自身需要设计方案)。

大家看到编码中在#contain和两列之间还嵌套循环了一个层#mainbg,这个层是做甚么用的呢?这个层就是用来界定#contain的情况的。你毫无疑问会问,为何不立即在#contain中界定情况,而要多套一层呢?那是由于在#contain中立即界定的情况,在mozilla中将显示信息不出来,务必界定高宽比值才能够。假如界定了高宽比值,#right层就没法完成依据內容的全自动伸缩。以便处理情况和高宽比难题,就务必提升这么一个#mainbg层。小技巧在于#mainbh这个层界定float: left;,由于float使层全自动有宽和高的特性。(暂且这么了解:)

最终是界定底部的#footer层。这个界定的重要是:clear:both;,这一句话的功效是撤销#footer层的波动承继。不然的话,你会看到#footer紧贴着#header显示信息,而并不是在#right的下面。

关键的层界定结束,这个合理布局就ok了。填补一点:你看到我还界定了一个.text{margin:0px;padding:20px;},这个class的功效是使內容的外围有20px的空白。为何不立即在#right里界定margin或padding呢,由于mozilla和IE对css盒实体模型的解释不一致,立即界定margin/padding会导致mozilla里合理布局形变。我一般选用內部再套一层的做法来处理。

期待这个合理布局对你有协助,有甚么难题欢迎到论坛沟通交流。

TOP
本站全部內容(非常表明以外)都是随意的,要是保存本站或作者连接,不管是不是涉及到商业服务,您能够随意转载和引入。 ---------

企业网站建设签约动态

------------


在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服