1. 程式人生 > >CSS基本知識5-CSS對齊

CSS基本知識5-CSS對齊

要對齊的關鍵,在於理解塊,行的概念,塊的對齊主要靠自動計算定位,比如margin:auto,及浮動,所以最好的辦法是儘量使用行來對齊。

例項:

        .box {
            border: 1px solid #808080;
            height: 200px;
            line-height: 200px;
            width: 200px;
            text-align: center;
        }
        .content {
            color: #ff0000;
            display
: inline-block; margin: 0 auto; width: 80px; height: 20px; }

我們看看這裡所涉及的知識:

首先,我們外面有個盒子,即Box。

1.這個Box的line-height等於高度,那麼就是內容就只有一行,當然如果是一半,那就是二行了。

2.Box的內容是行業元素,那麼很明顯,如果要顯示兩行,但中間要清除浮動,那就相當於“折行”了。

3.text-align:center;這表示,在這個Box的行內,元素居中顯示,很明顯,水平居中就實現了。只要把Box的內容變成行或行塊,加上這個特性就可以水平居中。

4.值得注意的是,行塊本質還是行,即inline-block,那麼對它使用margin:0 auto是不起作用的。而text-align卻起作用了。可見,inline,inline除了有高寬,但本質還是行內元素。

5.那麼總結一下,水平居中,行內元素就使用text-align,那麼,如果把DiV變成inline,那它裡面的內容,就可以使用text-align水平居中了。假如button居中就可以,然後作為行,要顯示次Botton的高度,就設成line-height.

6.反過來,行內元素,要當作塊處理,那麼設成block模式,然後就可以使用塊的方式了,比如Width,Height,margin 0 auto;

7.對於塊,margin:auto是可以水平居中的,但為什麼垂直無效呢?原因很簡單,就是因為“浮動”,所以我們要使用position大法。

8.對內容塊加入position:absolute,再設定上下左右為0,然後設定:margin:auto;直接全居中。

9.當然還有其它演算法,就是上左50%,Margin上左設成高寬的一半負值。

10.最後就是使用 transform: translate(-50%, -50%); /* 50%為自身尺寸的一半 */

相容性不錯的主流用法是:

.element {
    width: 600px; height: 400px;
    position: absolute; left: 50%; top: 50%;
    margin-top: -200px;    /* 高度的一半 */
    margin-left: -300px;    /* 寬度的一半 */
}

Html5方式
.element { width: 600px; height: 400px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); /* 50%為自身尺寸的一半 */ }

簡單方式
.element {
    width: 600px; height: 400px;
    position: absolute; left: 0; top: 0; right: 0; bottom: 0;
    margin: auto;    /* 有了這個就自動居中了 */
}

變成行方式:兩種:
1.把行高和Box高設成一樣,這就垂直居中了,最簡單,text-align:center,這就水平居中了,或者是inline-block加margin:0 auto;
2.設成inline,然後使用vertical-align:middle;這個有什麼效果呢?就是把文字在行內垂直顯示,比如在圖文排列的時候就起作用了。
總結就是有行高的情況下,設定line-height最簡單,沒有行高的情況下,使用vertical-align垂直對齊圖文。

相關推薦

CSS基本知識5-CSS

要對齊的關鍵,在於理解塊,行的概念,塊的對齊主要靠自動計算定位,比如margin:auto,及浮動,所以最好的辦法是儘量使用行來對齊。 例項: .box { border: 1px solid #808080; height: 200

CSS基本知識3-CSS盒模型

box-sizing: content-box|border-box|inherit; 值描述 content-box 這是由 CSS2.1 規定的寬度高度行為。 寬度和高度分別應用到元素的內容框。 在寬度和高度之外繪製元素的內邊距和邊框。 border-box

CSS基本知識1-CSS基本概念

CSS基本概念: 選擇器{屬性:值;屬性:值} CSS繼承:子元素繼承父元素樣式,父子關係看DOM結構。 CSS覆蓋: 瀏覽器預設設定 外部樣式表 內部樣式表(位於 <head> 標籤內部) 內聯樣式(在 HTML 元素內部) CSS優先: A:文字從上到下,後宣告的樣式

CSS基本知識2-CSS選擇

選擇就是CSS定義的第一部分,可以用面向物件的模式來理解,或者宣告式的面向物件。 標準選擇: #.E 進階選擇:“,”分隔多個相同項,相當於類的例項。 如:#btn1,#btn2,.btn {...} 後代元素選擇,相當於子類: 空格分隔: .nav p {...}    #header .nav

CSS基本知識6-CSS字型

    首先要考慮的是文字的排版,實際上有這玩意,Word還需要嗎?不需要了。我們列下文字所涉及的操作: CSS 文字屬性 可見,以上的這些CSS文字屬性,主要就是操作文字的顯示,當然對於網頁來說,大多數不常用。但如果想做個網頁編輯器,那就都可以派上用場了。 有了文字,我們還要設下字型,先看

CSS基本知識4-CSS行模型

display:inline、block、inline-block block元素的特點是:  總是在新行上開始;  高度,行高以及頂和底邊距都可控制;  寬度預設是它的容器的100%,除非設定一個寬度 inline元素的特點是:   和其他元素都在一行上;  高,行高及頂和底邊距不可改變;  寬度就是它

CSS基本知識

分開 col tle -- body 定義 type text 參考 CSS規則有兩個主要部分組成:選擇器,一條或多條聲明 選擇器通常是需要改變樣式的HTML元素 每條聲明由一個屬性和一個值組成 屬性是希望設置的樣式屬性。每個屬性有一個值。屬性和值之間用冒號分開。 CSS

CSS中實現文字兩端的方法,登陸註冊介面經常用到

在寫登陸或註冊介面時,經常會遇到文字兩端對齊(word中有類似對齊方式)的問題,如下圖: 使用者名稱和密碼並沒有兩端對齊,那麼該怎樣處理 其實只需要兩行CSS程式碼就可以解決: 關鍵兩行是:text-align:justify;  text-align-last

css 實現文字圖片垂直

給圖片使用vertical-align:middle;就可以實現 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</

CSS多種方式實現底部

CSS實現底部對齊效果 因公司業務要求需要實現如下圖中紅色區域的效果: 效果說明: 1、紅色區域資料需要倒排(即從底部開始數,數字為1、2、3、4、5),並且顯示在最底部 2、當資料過多時需要顯示滾動條,**並且滾動條需要拉到最底部** 3、資料從websocket

CSS 下拉內容的方式

<!DOCTYPE html > <html> <head> <meta charset="utf-8"> <title>自學教程

css 圖片 文字居中

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

css 水平垂直居中 兩端

單行垂直居中 單行垂直居中可以直接用line-height=width來做 <div  style="width:100px;height:100px;line-height:100px;"><span>hello world</span>

CSS技巧】文字分散的方法

<table width="300" align="center">    <tr>        <td style="text-align:justify;text-justify:distribute-all-lines;text-align-last:justify"&g

js基本知識5

tin 1.7 interval targe fun 大小寫轉換 name 1.4 length 1.1 復習 1. 按鈕不可用 disabled = “disabled” || true 2. setTimeout 只執行一次 setIn

5.程式碼(UVA1593)

程式碼對齊(UVA1593) 題目簡單分析 程式碼 題目簡單分析 題目的詳細內容可以在這個網站上看到,下面簡單說明一下題目要求。 [題意] 本題主要任務是對輸入的程式碼進行對齊,例如: start: integer; // be

css文字兩端

搜索 一個 中文 graph idt 元素 text lock 問題 最近在工作項目中接觸到Web界面設計的問題,要實現文字兩端對齊的效果。在網上搜索了一下,差不多都是用的都是類似的技巧: text-align:justify;text-justify:inter-ide

css布局基本知識

pad ati 窗口 htm type 適應 ant ans webkit 一,. 頁面導入樣式時,使用link和@import有什麽區別? 語法的角度: link屬於XHTML標簽,除了加載CSS外,還能用於定義RSS, 定義rel連接屬性等作用; 而@import是CS

【】小技巧】CSS文字兩端

兩個 isp images inline clas 我們 寬度 filter pre 需求如下,紅框所在的文字有四個字的、三個字的、兩個字的,如果不兩端對齊可以選擇居中對齊,或者右對齊。但是如果要像下面這樣兩端對齊呢? 我相信以前很多人都這麽幹過:兩個字中間使用 來隔開達

css 表單標簽兩端

developer str proto spa play fff line name cal 來自:http://demo.doyoe.com/css3/justify/justify-form.htm 侵刪 <!DOCTYPE html> <html