1. 程式人生 > >利用CSS使網頁居中對齊

利用CSS使網頁居中對齊

如何使DIV居中,主要的樣式定義如下:

body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
說明:

首先在父級元素定義TEXT-ALIGN: center;這個的意思就是在父級元素內的內容居中;對於IE這樣設定就已經可以了。但在mozilla中不能居中。解決辦法就是在子元素定義時候設定時再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”

需要說明的是,如果你想用這個方法使整個頁面要居中,建議不要套在一個DIV裡,你可以依次拆出多個div,只要在每個拆出的div裡定義MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。

如何使圖片在DIV 中垂直居中用背景的方法。
舉例:

body{BACKGROUND: url(http://www.w3cn.org/style/001/logo_w3cn_194x79.gif) #FFF no-repeat center;}
關鍵就是最後的center,這個引數定義圖片的位置。還可以寫成“top left”(左上角)或者"bottom right"等,也可以直接寫數值"50 30"

效果如下:

如何使文字在DIV中垂直居中,如果是文字,便不能用背景方法,可以用增高行距的辦法變通實現垂直居中,完整程式碼如下:

<html>
<head>
<style>
body{TEXT-ALIGN: center;}
#center{ MARGIN-RIGHT: auto;
MARGIN-LEFT: auto;
height:200px;
background:#F00;
width:400px;
vertical-align:middle;
line-height:200px;
}
</style>
</head>
<body>
<div id="center"><p>test content</p></div>
</body>
</html>
說明:

vertical-align:middle;表示行內垂直居中,我們將行距增加到和整個DIV一樣高line-height:200px;然後插入文字,就垂直居中了。傳統的做法:居中的佈局,首先,由於是做比較,讓我們來看一個例子,它是一種基於一個居中表格的頁面設計。圖表A中顯示了一個例子,以下是這個例子的編碼:

<body>
<p> </p>
<table width="80%" border="0" align="center" cellpadding="0"
cellspacing="10"bgcolor="#FFFFFF">
<tr>
<td colspan="2"><h2 align="center">Header</h2></td>
</tr>
<tr>
<td width="150px" valign="top"><h4>Navigation</h4>
<ul>
<li>Let me not to the marriage of true minds</li>
<li>Admit impediments; love is not love</li>
<li>Which alters when it alteration finds</li>
</ul>
</td>
<td valign="top"><p>Main Content -- Love's not
time's fool...</p>
</td>
</tr>
<tr>
<td colspan="2"><hr />
<p>Footer text -- Admit impediments...</p>
</td>
</tr>

</table>

<p> </p>

</body>

< table >這個標籤包括了以下一些屬性,將其寬度定義為頁面寬度的80%,並將該表格置於頁面的中間。在表格的前面有一個空白段落,這就使得頁面的頂端與表格的頂端之間有一些垂直空間。在表格的後面也有一個空白段落,這就使得頁面的底端與表格的底端之間也有一些空間。這個表格包括兩列三行。頂端的單元被合併了,用來放置頁首,底端的行也合併了,以安置頁尾,而中間那些單元則被分為兩列,一個供放置主要內容,另一個則是導航工具欄。

這是一個簡單的例子,詮釋的是一種多年以來廣為人們使用的技術。在現今的那些應用軟體中,有代表性的主要種包含了巢狀表格,用以建立一種複雜得多的版面設計,不過,它的複雜性雖然被人為加大了,它所採用的基本技術卻並沒有改變。

將居中的設計轉換成使用CSS
要想將這種傳統的基於表格的版面設計轉換成用CSS,你只要用divs來代替那些表格和表格單元就行了。一個div取代表格本身,另一個取代那些單個的表格單元,這些單個的表格單元定義了主要的版面設計元素,諸如標題,頁尾,導航工欄,以及主要內容。每個div都有一個id,且它們的id都是獨一無二的,你可以用一個CSS選擇器來讓它們建立各自不同的樣式,每一種樣式對應於div中的一種,這種對應關係依據id而建立。那個取代表格的div被標上了id= 外部,其它那些div則靠他們各自的功能來鑑別。

這是已校訂過的用div代替表格的XHTML的編碼:

<body>
<div id="outer">
<div id="header">
<h2>Header</h2>
</div>
<div id="nav">
<h4>Navigation</h4>
<ul>
<li>Let me not to the marriage of true minds</li>
<li>Admit impediments; love is not love</li>
<li>Which alters when it alteration finds</li>
</ul>
</div>
<div id="main">
<p>Main Content -- Love's not time's fool...</p>
</div>
<div id="footer">
<p>Footer text -- Admit impediments...</p>
</div>
</div>
</body>

注意一下所有那些陳述的格式,原來它們被包括在<table>和<td>標籤中,現在已經被移走了。而那些位於表格前面和後面的空白段落也都不見了。CSS格式會處理所有的格式化以及空間的問題。

以下是CSS的編碼,就是這些編碼,將頁面設計成一種居中的樣式,這種設計與前面所說的基於表格的設計很類似:

body {
background-color: #999999;
font-size:12px;
font-family:Verdana, Arial, Helvetica, sans-serif;
}

div#outer {
width: 80%;
background-color:#FFFFFF;
margin-top: 50px;
margin-bottom: 50px;
margin-left: auto;
margin-right: auto;
padding: 0px;
border: thin solid #000000;
}

div#header {
padding: 15px;
margin: 0px;
text-align: center;
}

div#nav {
width: 25%;
padding: 10px;
margin-top: 1px;
float: left;
}

div#main {
margin-left: 30%;
margin-top: 1px;
padding: 10px;
}

div#footer {
padding: 15px;
margin: 0px;
border-top: thin solid #000000;
}

解析CSS編碼
與基於表格的版面設計比起來,它的主體樣式並沒有什麼變化。它只不過設定了一下背景顏色,預設正文字型以及尺寸大小。

div#outer 是其中的一種樣式,它是這一技術的關鍵。這就是前面提到過的以div取代表格的樣式,它建立了居中的盒子,而這個盒子成了包容該頁面所有內容的容器。將寬度設定為80%的規則設定了該div的寬度,就跟表格標籤的相應屬性規定該表格的寬度一樣。與此相類似,background-color: #FFFFFF為div建立了一個白色的背景,就如同表格中bgcolor="#FFFFFF"屬性為表格設定白色背景一樣。margin-top: 50px and margin-bottom: 50px則用頂端和底端的空白來取代表格中用來造成垂直空間的空白段落。

這一技術的關鍵在於,外部div的中心要安排合適。這裡存在一個難題,可以說是我們面臨的一個挑戰,即div沒有像align="center"這樣一個屬性,這與表格不同,表格中有這樣一種屬性。你可以在div的母元素(在本案例,指< body >標籤)中使用text-align: center來將外部div置於中心位置。儘管除了正文以外,大多數瀏覽器還會為一些諸如div的塊元素使用該佇列,但是我們有證據可以證明它是對排列正文這一屬性的誤用,而且它會使問題複雜化,就如同你建立一些額外的樣式來使那些已按正常標準對齊的文字重新回到左邊一樣。

用CSS來將塊元素置於中心位置的正確方法是這樣設定:margin-left: auto,margin-right: auto。這就指示瀏覽器自動計算頁面兩邊合適的空白寬度,從而將div置於中心。border: thin solid #000000這一規則在外部div的周圍添加了一個邊界,這是因為用CSS新增很容易,而如果用表格的話就很難了。CSS編碼中的其它部份則規定了 div的頁首,頁尾,nav,以及主要內容。

div#header和div#footer則設定了

相關推薦

利用CSS使網頁居中

如何使DIV居中,主要的樣式定義如下:body {TEXT-ALIGN: center;}#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; } 說明:首先在父級元素定義TEXT-ALIGN: center;這個的意思就是在父級元

css種盒子居中的問題

1.沒有定位的盒子水平居中 ​ 1.讓盒子的文字內容居中對齊: text-align: center ​ 2.外邊距實現盒子水平居中對齊,需要滿足以下兩個條件 ​  *1.必須是塊級元素* ​ *2.盒子必須指定了寬度* width: 500px; margin:0

HTML篇之CSS樣式——CSS水平垂直居中(多種方式)

用CSS來實現元素的垂直居中效果是件苦差事,雖然說實現方法有多種,但有很多方式在某些瀏覽器下可能無法正常的工作。接下來我們就一起來看看這些不同方法實現垂直居中的各自優點和其不足之處。 方法一:這種方法用來實現單行垂直居中是相當的簡單的,你只要保證元素內容是單行,並且其高度是

div css 圖片和文字上下居中

log ima 圖片 lin 效果 ges 馬克思 pos 需要 想要圖片和文字水平居中對齊很容易,可今天做這個樹的時候,遇到了要將圖片上下居中.這下就不知道怎麽搞. 拿手冊看也看不出所以然來,不同的瀏覽器對DIV的支持不一個,目前最好的瀏覽器是Firefox.

css中的vertical-align的垂直居中

先來看規範文件中對於vertical-align屬性的定義及使用: 基線:就是英文小寫字母x的下邊緣。 常見的我們用於設定父元素內子元素(或子元素們)(為inline或inline-block)的對齊。 父元素為block,需設定line-height 如何實現子元素在父元素中居中

css筆記:在flex佈局和table-cell佈局中實現居中的辦法

當使用 flex 佈局時,justify-content 表示主軸方向的位置佈局,align-items 表示從軸方向的佈局,text-align 表示文字佈局。 主、從軸方向佈局有三種:flex-start、center、flex-end。 可以通過fle

css居中的幾種方法

彈性盒子 設定彈性容器的 主軸對齊屬性:justify-content:center 交叉軸的對其屬性:align-items:center .perent{ position: absolute; display: flex; displ

css 圖片 文字居中

例: <li> <span class='al'> <a href="#"> <img class="p_pic" src="pic.jpg"> <span class="name"> nima

css居中大全

一、垂直居中對齊 1、圖片跟行內塊中部對齊:圖片和行內塊都設定vertical-align:middle; 2、文字跟行內塊中部對齊:行內塊設定vertical-align:middle; 3、文字跟圖片中部對齊:圖片設定vertical-align:middl

css實現文字和div居中詳細講解示例

 1. 文字居中 首先編寫一個簡單的html程式碼,設定一個類名為parentDiv的div物件。html程式碼如下: 複製程式碼 程式碼如下: <div class="parentDiv"> 這裡隨意填寫~... </div> .1

移動端垂直居中

absolut -i pos family items wid font display -c 方法一:利用CSS3的transform:translate .center{ width:50%; position: absolute; top: 5

iOS UILabel設置居上居中,居下

fall pla prop text break case pat png com 在iOS中默認的UILabel中的文字在豎直方向上僅僅能居中對齊,博主參考國外站點。從UILabel繼承了一個新類,實現了居上對齊,居中對齊,居下對齊。詳細例如以下: [c

圖片水平垂直居中的四種做法

span log 屬性 wid 水平垂直居中 code absolute webkit 居中對齊 在前端開發中,圖片垂直居中對奇是很常見的,有些是固定高度,有些沒有固定高度,本文分享我用的四種方法,希望對你有所啟發。 以下說的做法暫不考慮IE瀏覽器的兼容性,適用於移動端 以

H5C3--transform實現任何元素居中

flow head height translate width post back ive pos 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <met

微信小程序文字水平垂直居中問題

attr lec -a tps .net IE auto https 簡單 我們知道常用的居中對齊方式有很多種例如: text-align:center; align-items:center; justify-content: center; margin: auto;

css文本兩端

flow 它的 嚴格 可能 方法 兼容性 auto align 地址 在做表單時我們經常遇到讓上下兩個字段對齊的情況,比如姓名, 手機號碼, 出生地。這樣我們就要用到 text-align, text-justify樣式了。 text-align直接設為justify就行了

前端基礎學習筆記 圖片和元素的居中

圖片對齊 首先看文字居中方式: 上下居中:給文字一個line-height,最好和文字盒子大小相同。 左右居中:給文字一個text-align:center; 考慮到文字與圖片對齊用到基線對齊,所以圖片在盒子裡居中的方式為: text-align和line-height放在父級元

讓文字和圖片垂直居中

讓文字和圖片垂直居中對齊(經常會用的,但是記不住的佈局。。) 給img和文字所在的父容器設定如下css即可。 1.flex佈局 .box{ display:flex; align-items: center;//子元素垂直居中 justify-cont

css3文字水平垂直居中的幾種方法

1.使用絕對定位: .div{ position:absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } 2.flex佈局: .parent{ Justify-content:cent

css元素分散貼邊

怎樣讓多個元素貼邊平分? 為什麼會有這個疑問呢?首先說明一下,接觸前端有一年的時間了,自認為對靜態佈局不在話下,果然,自負的人最容易被打臉吶,剛換了一份工作,公司對前端要求比較嚴格。 公司使用的是bootstrap開發,我們都知道bootstrap框架最核心的是它的柵格系統,我當然