CSS樣式設置小技巧

来源:http://www.cnblogs.com/Mr-Li-2016/archive/2016/10/28/6007913.html
-Advertisement-
Play Games

1.水平居中設置 行內元素居中設置:如果被設置元素為文本、圖片等行內元素時,水平居中是通過給父元素設置 text-align:center 來實現的。代碼示例如下: 定寬塊狀元素居中設置:滿足定寬和塊狀兩個條件的元素是可以通過設置“左右margin”值為“auto”來實現居中的。代碼示例如下: 不定 ...


  1.水平居中設置 

    行內元素居中設置:如果被設置元素為文本、圖片等行內元素時,水平居中是通過給父元素設置 text-align:center 來實現的。代碼示例如下:

HTML代碼
<body>
  <div class="txtCenter">我想要在父容器中水平居中顯示。</div>
</body>
CSS代碼
<style>
  .txtCenter{
    text-align:center;
  }
</style>

    定寬塊狀元素居中設置:滿足定寬和塊狀兩個條件的元素是可以通過設置“左右margin”值為“auto”來實現居中的。代碼示例如下:

HTML代碼
<body>
  <div>我是定寬塊狀元素,哈哈,我要水平居中顯示。</div>
</body>
CSS代碼
<style>
div{
    border:1px solid red;/*為了顯示居中效果明顯為 div 設置了邊框*/
    
    width:200px;/*定寬*/
    margin:20px auto;/* margin-left 與 margin-right 設置為 auto */
}
</style>

    不定寬塊狀元素居中設置:

    1. 加入 table 標簽,是利用table標簽的長度自適應性---即不定義其長度也不預設父元素body的長度(table其長度根據其內文本長度決定),因此可以看做一個定寬度塊元素,然後再利用定寬度塊狀居中的margin的方法,使其水平居中。代碼示例如下:
HTML代碼
<div>
 <table>
  <tbody>
    <tr><td>
    <ul>
        <li>我是第一行文本</li>
        <li>我是第二行文本</li>
        <li>我是第三行文本</li>
    </ul>
    </td></tr>
  </tbody>
 </table>
</div>
CSS代碼
<style>
table{
    border:1px solid;
    margin:0 auto;
}
</style>

      2.設置 display: inline 方法:改變塊級元素的 display 為 inline 類型(設置為 行內元素 顯示),然後使用 text-align:center 來實現居中效果。代碼如下:

HTML代碼
<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>
CSS代碼
<style>
.container{
    text-align:center;
}
/* margin:0;padding:0(消除文本與div邊框之間的間隙)*/
.container ul{
    list-style:none;
    margin:0;
    padding:0;
    display:inline;
}
/* margin-right:8px(設置li文本之間的間隔)*/
.container li{
    margin-right:8px;
    display:inline;
}
</style>

      3.設置 position:relative 和 left:50%:通過給父元素設置 float,然後給父元素設置 position:relative 和 left:50%,子元素設置 position:relative 和 left: -50% 來實現水平居中。代碼如下:

HTML代碼
<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>
CSS代碼
<style>
.container{
    float:left;
    position:relative;
    left:50%
}

.container ul{
    list-style:none;
    margin:0;
    padding:0;
    
    position:relative;
    left:-50%;
}
.container li{float:left;display:inline;margin-right:8px;}
</style>

  2.垂直居中設置

     父元素高度確定的單行文本:

       父元素高度確定的單行文本的豎直居中的方法是通過設置父元素的 height 和 line-height 高度一致來實現的。(height: 該元素的高度,line-height: 顧名思義,行高(行間距),指在文本中,行與行之間的 基線間的距離 )。代碼如下:

HTML代碼
<div class="container">
    hello, world!
</div>
CSS代碼
<style>
.container{
    height:100px;
    line-height:100px;
    background:#999;
}
</style>

     父元素高度確定的多行文本:

       1.使用插入 table  (包括tbody、tr、td)標簽,同時設置 vertical-align:middle。css 中有一個用於豎直居中的屬性 vertical-align,在父元素設置此樣式時,會對inline-block類型的子元素都有用。代碼如下:

HTML代碼
<body>
<table><tbody><tr><td class="wrap">
<div>
    <p>看我是否可以居中。</p>
</div>
</td></tr></tbody></table>
</body>
CSS代碼
table td{height:500px;background:#ccc}
/*因為 td 標簽預設情況下就預設設置了 vertical-align 為 middle,所以我們不需要顯式地設置了。*/

       2.在 chrome、firefox 及 IE8 以上的瀏覽器下可以設置塊級元素的 display 為 table-cell(設置為表格單元顯示),激活 vertical-align屬性,但註意 IE6、7 並不支持這個樣式, 相容性比較差。代碼如下:

HTML代碼
<div class="container">
    <div>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
    </div>
</div>
CSS代碼
<style>
.container{
    height:300px;
    background:#ccc;
    display:table-cell;/*IE8以上及Chrome、Firefox*/
    vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
</style>

       這種方法的好處是不用添加多餘的無意義的標簽,但缺點也很明顯,它的相容性不是很好,不相容 IE6、7而且這樣修改display的block變成了table-cell,破壞了原有的塊狀元素的性質。

  3.隱性改變display類型  

    當為元素(不論之前是什麼類型元素,display:none 除外)設置以下 2 個句之一:

       1. position : absolute 

       2. float : left 或 float:right 

    時,元素的display顯示類型就會自動變為以 display:inline-block(塊狀元素)的方式顯示,當然就可以設置元素的 width 和 height 了,且預設寬度不占滿父元素。代碼如下:

HTML代碼
<div class="container">
    <a href="#" title="">進入課程請單擊這裡</a>
</div>
CSS代碼
<style>
.container a{
    position:absolute;
    width:200px;
    background:#ccc;
}
</style>

   4.清除浮動的方法

    1.改變css樣式 clear: both;

    2.width:100%; overflow: hidden;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Javascript嵌入式 <script typt:javascript>代碼</script> 註釋 //或者/*內容*/ 變數名賦值 Var 變數名 = 值 輸出方式 Document.write(變數名) window.alert(變數名) 算數運算符 a++;a-- 賦值運算符 字元串運算 ...
  • 1、什麼是表單對象 表單(<form>)是Web頁面中的基本元素。表單對象最主要的功能就是能夠直接訪問頁面中的表單。利用表單對象,可以實現與用戶的交互;不需要伺服器的介入,就可以實現動態改變Web頁面的行為。對於Web頁面表單,通常使用document對象的forms數組可以很方便地訪問不同的表單。 ...
  • jquery和angular都有defer服務,我暫以angular為例談談我的理解,最後並附上jquery的阮一峰總結的defer。 以我目前項目的部分代碼為例說明為什麼要用deferred。 就這段代碼,我想要在位置二處使用base64,然後結果呢? 兩處位置都列印了,位置一得到base64,o ...
  • 方案一 位置 屬性名 值 意義 父div text-align center 讓子元素居中 子div display inline-block 可以將對象呈遞為內聯對象,但是對象的內容作為塊對象呈遞。inline-block的寬度是其中文字的寬度。 子div text-align left 讓子元素... ...
  • 1.使用Object創建對象 2.工廠模式 3.構造函數模式 4.原型模式 我們創建的每個函數都有一個prototype(原型)屬性,這個屬性是一個指針,指向一個對象,這個對象的用途是包含可以有特定類型的所有實例共用的屬性和方法。 原型和實例通過prototype和constructor屬性相互關聯 ...
  • 因為項目需要,現在需要做個手風琴菜單,於是自己就瞎整了一下,所用只是less.js javascript jquery效果如圖: 具體代碼如下: <!DOCTYPE html><html> <head> <title></title> <style type="text/less"> .list{ ...
  • 一. 準備工作 1. 點擊此下載 相關的文件 二. 瀏覽器中運行 play-img.html 文件,即可顯示效果 三. 效果圖 ...
  • 通過jquery可以很容易實現CP端的拖拽。但是在移動端卻不好用了。於是我自己寫了一個在移動端的拖拽demo,主要用到的事件是觸摸事件(touchstart,touchmove和touchend)。 這個demo實現的功能是:可以拖拽的元素(在這裡是圖片)位於列表中,這些元素可以被拖到指定區域,到達 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...