css垂直居中怎么弄(利用CSS垂直居中创建网站实例)

上节分享了利用css居中的五种方法,现在我们开始创建一个简单但是有趣的网站。最终的样子是这样的:

css垂直居中怎么弄(利用CSS垂直居中创建网站实例)(1)

步骤一

以语义化标签开始是很好的。下面是我们的页面构成:

#floater (to push the content into the middle)

#centred (the centre box)

#side

#logo

#nav (unordered list <ul>)

#content

#bottom (for copyright, etc.)

这是我用到的 xhtml 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>A Centred Company</title>

<link rel="stylesheet" href="styles.css" type="text/css" media="all" />

</head>

<body>

<div id="floater"></div>

<div id="centered">

<div id="side">

<div id="logo">

<strong><span>A</span> Company</strong>

</div>

<ul id="nav">

<li><a href="#">Home</a></li>

<li><a href="#">Products</a></li>

<li><a href="#">Blog</a></li>

<li><a href="#">Contact</a></li>

<li><a href="#">About</a></li>

</ul>

</div>

<div id="content">

<h1>Page Title</h1>

<p>Holisticly re-engineer value-added outsourcing after

process-centric collaboration and idea-sharing. Energistically

simplify impactful niche markets via enabled imperatives. Holisticly

predominate premium innovation after compelling scenarios.

Seamlessly recaptiualize high standards in human capital with

leading-edge manufactured products. Distinctively syndicate

standards compliant schemas before robust vortals. Uniquely

recaptiualize leveraged web-readiness vis-a-vis out-of-the-box

information.</p>

<h2>Heading 2</h2>

<p>Efficiently embrace customized web-readiness rather than

customer directed processes. Assertively grow cross-platform

imperatives vis-a-vis proactive technologies. Conveniently empower

multidisciplinary meta-services without enterprise-wide interfaces.

Conveniently streamline competitive strategic theme areas with

focused e-markets. Phosfluorescently syndicate world-class

communities vis-a-vis value-added markets. Appropriately reinvent

holistic services before robust e-services.</p>

</div>

</div>

<div id="bottom">

<p>Copyright notice goes here</p>

</div>

</body>

</html>

步骤二:

现在我们开始用一些基本的 CSS 来给页面添加样式。把以下代码放入在我们的 html 页面顶部被引入的 style.css。

html, body {

margin: 0;

padding: 0;

height: 100%;

}

body {

background: url('page_bg.jpg') 50% 50% no-repeat #FC3;

font-family: Georgia, Times, serifs;

}

#floater {

position: relative;

float: left;

height: 50%;

margin-bottom: -200px;

width: 1px;

}

#centered {

position: relative;

clear: left;

height: 400px;

width: 80%;

max-width: 800px;

min-width: 400px;

margin: 0 auto;

background: #fff;

border: 4px solid #666;

}

#bottom {

position: absolute;

bottom: 0;

right: 0;

}

#nav {

position: absolute;

left: 0;

top: 0;

bottom: 0;

right: 70%;

padding: 20px;

margin: 10px;

}

#content {

position: absolute;

left: 30%;

right: 0;

top: 0;

bottom: 0;

overflow: auto;

height: 340px;

padding: 20px;

margin: 10px;

}

#centered {

-webkit-border-radius: 8px;

-moz-border-radius: 8px;

border-radius: 8px;

}

h1, h2, h3, h4, h5, h6 {

font-family: Helvetica, Arial, sans-serif;

font-weight: normal;

color: #666;

}

h1 {

color: #f93;

border-bottom: 1px solid #ddd;

letter-spacing: -0.05em;

font-weight: bold;

margin-top: 0;

padding-top: 0;

}

#bottom {

padding: 10px;

font-size: 0.7em;

color: #f03;

}

#logo {

font-size: 2em;

text-align: center;

color: #999;

}

#logo strong {

font-weight: normal;

}

#logo span {

display: block;

font-size: 4em;

line-height: 0.7em;

color: #666;

}

p, h2, h3 {

line-height: 1.6em;

}

a {

color: #f03;

}

在我们能够把 content 垂直居中之前, body 和 html 应该被拉伸到 100% 的高度。由于 height

在 padding 和 margin 之内,所以我们要把它们设成 0 以防止因为很小的 margin 出现滚动条。

floater 的 margin-bottom 是 content 高度(400px)的一半, -200px。

现在可以看到一下效果:

css垂直居中怎么弄(利用CSS垂直居中创建网站实例)(2)

#centred 的宽度为 80%。这可以市网页随着显示器的大小而变化。一般称作流体布局。设置 min-width 和

max-width 以避免网页过大或者过小。 但是 IE 不支持 min/max-width。显然可以用固定宽度来代替。

因为 #centred 是相对定位的,在它里面我们可以用绝对定位来定位元素。设置 #content 的 overflow:auto;

以避免滚动条的出现。IE 不怎么喜欢 overflow:auto; 除非我们指定高度(不是 top 和 bottom 的定位,也不是 %)

因此我们给它指定高度。

步骤三

最后要做的就是再添加点样式,让页面好看点。从目录开始吧。

#nav ul {

list-style: none;

padding: 0;

margin: 20px 0 0 0;

text-indent: 0;

}

#nav li {

padding: 0;

margin: 3px;

}

#nav li a {

display: block;

background-color: #e8e8e8;

padding: 7px;

margin: 0;

text-decoration: none;

color: #000;

border-bottom: 1px solid #bbb;

text-align: right;

}

#nav li a::after {

content: '»';

color: #aaa;

font-weight: bold;

display: inline;

float: right;

margin: 0 2px 0 5px;

}

#nav li a:hover, #nav li a:focus {

background: #f8f8f8;

border-bottom-color: #777;

}

#nav li a:hover::after {

margin: 0 0 0 7px;

color: #f93;

}

#nav li a:active {

padding: 8px 7px 6px 7px;

}

需要注意的是 #centred 的圆角。 CSS3 中,应该有 border-radius 属性来设定圆角的半径(可参考 CSS3之旅: border-radius(圆角) – 糖伴西红柿)。现在的流行的浏览器都还不支持,除非用 -moz(Molilla Firefox) 或者 -webit(Safari/Webkit) 前缀.

css垂直居中怎么弄(利用CSS垂直居中创建网站实例)(3)

水平居中经常用,其实垂直居中也很有用的。平时用的最多的应该是上节讲的方法五了,算是个小技巧吧。谁还有更好的方法吗,欢迎留言交流。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页