精心整理的十個必須要知道CSS+DIV技巧

来源:http://www.cnblogs.com/shouce/archive/2016/02/14/5188596.html
-Advertisement-
Play Games

1.css font的簡寫規則 當我們寫字體樣式的時候,我們也許會這樣子寫 font-size: 1em; line-height: 1.5em; font-weight: bold; font-style: italic; font-variant: small-caps; font-family


1.css font的簡寫規則 

  當我們寫字體樣式的時候,我們也許會這樣子寫    

複製代碼
   font-size: 1em; 
    line-height: 1.5em; 
    font-weight: bold; 
    font-style: italic; 
    font-variant: small-caps; 
    font-family: verdana,serif 
複製代碼

      其實,這樣寫是完全多餘的,我可以只用font 來寫就OK了。 

  比如: 

    font: 1em/1.5em bold italic small-caps verdana,serif 

 

2.把幾個class屬性寫在一起。

  通常情況寫,屬性裡面的class只有一個值,但這並不是意外著你只能給它 

  賦一個class名,我們可以賦2個以上。比如 

    <p class="text side">...</p> 

  不過,需要註意的是,class裡面是用空格把他們分開來的,而不是“,”,這點需要註意一下。這樣運用了,那麼text和side的class 就會運用到p元素中。 
3.CSS的 border的預設值   -   TOP 

  border也就是邊框的值,我在做項目開發的時候,很習慣的做法是: 

      border:1px solid red; 

       第一個指的是框的大小,第二個是指樣式,第三個是指顏色。不過,這裡3個並非都是必須要的,必須要用的是border的樣式。其餘2個有預設值。 

  比如,你這樣寫: 

      border: solid 

  如果你這樣寫了,那麼預設值第一個大小的預設值是:medium(相對於3px或4px左右)以及顏色指的是文本裡面的顏色。 
4.!important 在IE中會被忽視 

  因為瀏覽器之間的不相容性,我們在寫css的時候,為了保證網站能在各個 

  瀏覽器之間保持相容性,所以 我們需要使用!important這個屬性。 

  如果你在css使用了這個,那麼它的優先順序會比和它同名屬性的優先順序高。 

  這個是給除了給IE以外的瀏覽器用的。 

  比如 

       margin-top: 3.5em !important; margin-top: 2em 

  上面指的是,除IE之外的瀏覽器是3.5em,而IE是2em。這個很有用。

 
5.Image的alt屬性   

  我們在網站開發的時候,我們常常被建議使用HTML標簽來顯示文本,而不是圖像。這樣可以使得網站具有更快的載入速度以及可訪問性。舉個例子說,你開發了一個網站,你想在你網站的每一個頁面的頁面頂端放一個"購買物品"。現在加入你是一個賣家,那麼你很期望你的物品能被搜索引擎找到,也許你會這麼做: 

    <h1><img src="widget-image.gif" alt="購買物品" /></h1> 

  實現了,但是這裡需要註意的是,搜索引擎並不會關註img標簽alt里的關鍵字因為現在很多的賣家都是這樣子),所以白搭。所以,我們可以用css來代替 

  如下: 

    <h1><span>購買物品</span></h1> 

  然後定義css: 
  

複製代碼
  h1 
     
    { 
     
    background: url(widget-image.gif) no-repeat; 
     
    } 
     
    h1 span 
     
    { 
     
    position: absolute; 
     
    left:-2000px 
     
    } 
複製代碼

  這樣子就OK了,迎合了搜索引擎的口味。所以呀,搜索引擎真的傷不起呀。 

6.盒模型hack問題 

  這個問題比較難,不過說實在話的現在用的機會也比較少。因為它涉及到IE5問題,現在誰敢說還在用IE5?拉出去斃了。 

  不管如何,我們還瞭解一下 總沒有壞處。 

  IE5和其他瀏覽器(IE 6+ 以及chrome等等)對邊框的計算是不一樣的呢,怎麼說呢?
  比如 代碼說明: 

   

複製代碼
  h1 
     
    { 
     
    background: url(widget-image.gif) no-repeat; 
     
    } 
     
    h1 span 
     
    { 
     
    position: absolute; 
     
    left:-2000px 
     
    } 
複製代碼

 

  把寬度設定為200像素,但是側邊欄實際需要230像素的空間,除了IE5 for Windows以外. IE5 for Windows 里側邊欄總共會占用200像素,把內補丁和邊框都算在裡面.圖2 顯示的是當width屬性指定為200像素時,邊框和內補丁會占用內容空間,而不是內容空間之外. 

  對IE5 for Windows來說,則需要把寬度指定為230像素(加上兩側內補丁和邊框的寬度),接著再以200像素覆蓋回來,讓符合標準的瀏覽器得到正確的寬度. 

  

複製代碼
  #sidebar { 
     
    padding: 10px; 
     
    border: 5px solid black; 
     
    width: 230px; /* for IE5/Win */ 
     
    voice-family: "\"}\""; 
     
    voice-family: inherit; 
     
    width: 200px; /* actual value */ 
     
    } 
複製代碼

 

  留意IE5 for Windows的值先出現,接著幾條讓IE5 for Windows認為聲明已經結束的規則,在此我們使用voice-family屬性,原因單純只是瀏覽器認得它的話也不會改變視覺效果,最後指定實際的寬度,覆蓋最初的width規則,第二個width規則會被IE5 for Windows忽略. 

  結果在IE5 for Windows以及其他所有相容CSS2的瀏覽器上看起來應該完全相同.沒有使用這個hack的話,IE5 for Windows的使用者就會看到比設計還瘦的欄寬。 
7.塊級元素的居中效果  

  塊級元素?你不會這個都不懂了。不懂,我就羅嗦一下,就是指div、h1、table這類元素。相對應的就是inline元素了,比如label等等。 

  通俗點就是,一個會占一行(當然在沒有其他屬性的支持下),另一個不會。OK。 

  一般來說,對div居中,我都會寫下麵的寫法: 

    

複製代碼
#content 
     
    { 
     
    width: 700px; 
     
    margin: 0 auto; 
     
    } 
複製代碼

  然後,我們很高興的 就能在正常的瀏覽器到效果,請註意,我說了正常2個子,那這也說明,有不正常的情況下?什麼情況呢?和上面的第六點一樣,也是IE5的問題,在IE5下麵,它根本就不懂這個,你說它能解決問題嘛?。 


  所以,我們只好按照下麵的來實現: 

    

複製代碼
body 
     
    { 
     
    text-align: center; 
     
    } 
     
    #content 
     
    { 
     
    text-align: left; 
     
    width: 700px; 
     
    margin: 0 auto; 
     
    } 
複製代碼

  OK,就樣就能很好的相容了。 

8.垂直調整(vertical aligning) 

  當我們在使用table的時候,如果我們需要把一列的內容居中排列怎麼做?不用問,我們理所當然的是,用下麵的這行句話: 

  vertical-align: middle 

  很多時候,這樣可以工作,可總有例外。比方說,你現在有一個導航菜單,它的高度是2em,如果你插入這個命令的話,sorry,它不會進行執行,並且會把文字放到頂端。 

  那怎麼解決呢?很簡單。 

  你只需要把box模型的的高度的line-height指定成一樣就可以了。如下: 

  line-height: 2em 
9.絕對定位和相對定位

  這個應該是在css教程里比較難的部分吧,一下子也真的很難說清楚,有興趣的可以找找資料看。給個例子: 

    

<style> 
    #container { position: relative } 
    </style> 
    <div id="container"><div id="navigation">...</div></div> 

  接著我設定裡面navigation的樣式 

複製代碼
#navigation 
     
    { 
     
    position: absolute; 
     
    left: 30px; 
     
    top: 5px 
     
    } 
複製代碼

  這個說明瞭裡面的navigationo相對於外面的來說 進行CSS定位。 

10.不需要給背景圖片路徑加引號 

  比如: 

     background:url("images/***.gif") #333; 

  你應該把CSS background屬性引號去掉 

     background:url(images/***.gif) #333; 

  如果你加了引號,反而會引起一些瀏覽器的錯誤。 


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

-Advertisement-
Play Games
更多相關文章
  • 模式結構: 實現: 1 package com.shejimoshi.create.FactoryMethod; 2 3 4 /** 5 * 功能:工廠方法模式 6 * 意圖 : 7 * 定義一個用於創建對象的介面,讓子類決定實例化哪一個類。 8 * 適用性: 9 * 當一個類不知道它所必須創建的對
  • 前言 春節期間,無意中看到一篇文章,文章中講到12306的業務複雜度遠遠比淘寶天貓這種電商網站要複雜。後來自己想想,也確實如此。所以,很想挑戰一下12306這個系統的核心領域模型的設計。一般的電商網站,購買都是基於商品的概念,每個商品有一定量的庫存,用戶的購買行為是針對商品的。當用戶發起購買行為時,
  • 模式結構: 1 package com.shejimoshi.create.Builder; 2 3 4 /** 5 * 功能:意圖是將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示 6 * 適用性: 7 * 當創建複雜對象的演算法應該獨立於該對象的組成部分以及它們的裝配方式時
  • HTML中包含大量的標簽, 這些標簽在我們使用中發現會有小小的差別, 有的標簽用了之後不會有太大的佈局變化, 只是語義化, 而有的標簽卻會重起一行, 相當於自己回車了一次, 這就是不同標簽元素的分類不同造成的結果. 塊級元素 在HTML中, <div>, <p>, <h1>, <form>, <ul
  • 用Object.definedproperties 一次性添加或修改多個屬性的特性和值。 1 <script> 2 var obj ={} 3 Object.defineProperties(obj,{ 4 x:{value:1,writalbe:true,configurable:true,enu
  • 我從網上收集一個jquery星級插件的,它只支持一個頁面中使用一次,多次使用的話會發生衝突,達不到我項目的需求,沒辦法,只能修改它, 效果圖如下: css所需背景圖片: 二話不說,帖代碼: html代碼 <div class="xing"> <span style="float: left">總體評
  • 前世今生 Git是誰開發的?為什麼要問這個問題,天朝的我們只管用軟體就是了管誰開發幹啥,好了別急,請聽我一一道來。Git是由李納斯·托沃茲(Linus Torvalds),這個英文名還是查渡娘找到的,英語好難呀!大伙兒有沒有發現這個Linus和Linux(Server操作系統)只有一詞之隔,邏輯好的
  • 當人們剛接觸佈局的時候都比較傾向於使用定位的方式。因為定位的概念看起來好像比較容易掌握。錶面上你確切地指定了一個塊元素所處的位置那麼它就會坐落於那裡。可是定位比你剛看到的時候要稍微複雜一點。對於定位來說,有一些東西會絆倒新手,所以在它成為你的慣用技巧前你需要掌握它們。 一旦你更深入地瞭解了它是怎麼運
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...