html+css基礎知識點

来源:http://www.cnblogs.com/frontte-wang/archive/2016/02/03/5179110.html
-Advertisement-
Play Games

以下是自己平時學習累計的,比較雜,歡迎大家指正和補充 一、css重置(css reset) 這是我簡單整理的,並不全,大家可以根據自己需要繼續補充: body,p,h1,h2,h3,h4,h5,h6,dl,dd{margin:0;font-size:12px;}ol,ul{margin:0;padd


以下是自己平時學習累計的,比較雜,歡迎大家指正和補充

一、css重置(css  reset)

這是我簡單整理的,並不全,大家可以根據自己需要繼續補充:

body,p,h1,h2,h3,h4,h5,h6,dl,dd{margin:0;font-size:12px;}
ol,ul{margin:0;padding:0;list-style:none;}
a{text-decoration:none;}
img{border:none;}

不用*{margin:0;padding:0;}是因為:div沒有內外邊距,p只有外邊距問題沒有內邊距問題等等,性能問題也不好,大家可以自己寫標簽通過比如火狐的F12來看到元素的內外邊距情況。

二、全屏遮罩

頁面文檔結構是:body<html<文檔,body和html是沒有高度的,如果需要情況下:設置為height:100%,這樣body裡面有內容高度為100%才能和文檔高度一樣,才能實現全屏遮罩

三、內嵌和塊元素

內嵌元素:內容撐開寬度,不支持寬高,不支持margin和padding的上下邊距,左右支持,代碼換行被解析為空格(即並沒有緊挨著在一排顯示,而是每行顯示一個那種情況)這種是被解析為一個空格的大小的間隙,是頁面中文字大小的一半,比如body中設置為font-size為12px,則間隙為6像素
塊屬性標簽:沒有寬度時,預設撐滿一排,支持寬高,支持所有css命令
img既不是內聯也不是塊,而是inline-block內聯塊元素
inline-block特性有:沒有寬度的時候內容撐開寬度
ie6、ie7不支持塊屬性標簽的inline-block(解決方案:用浮動)

塊元素不設置寬,預設跟著父級的寬度走,如果父元素不設置高度而子元素設置高度,則子元素會撐開父元素高度

 

四:cursor屬性

cursor:url(xxx.cur),pointer;意思是:可以jpg、gif、png等,但可能有相容性問題,最好用.cur格式,pointer意思是如果前面圖片出問題出不來了,則使用pointer,相當於是個備用

五、浮動
1、不設置寬度情況下還是由內容撐開寬度

2、設置為浮動後則脫離了文檔流,同時對設置了浮動的元素設置vertical-align是沒效果的,因為浮動元素預設就是頂部對齊並且是不可更改的,想要解決這種預設則通過設置上下邊距

3、在IE6/7下,元素浮動要併在同一行的元素都要加浮動,不然元素會換行

4、IE6下的橫向margin的雙邊距bug(橫向margin:0 20px;),(ie6下,塊屬性標簽,浮動,並且有橫向margin,則橫向margin加倍),解決方案:display:inline

六、定位

定位:
1、絕對定位和浮動一樣,使元素脫離了文檔流,如果沒設置寬度,則使塊屬性標簽內容撐開寬度;
2、絕對定位使得內嵌元素支持寬高;
3、定位元素預設後者比前者的層級高(堆疊層次,但始終不到1),如需改變則使用z-index
4、fixed定位不設置寬度的話,可以讓塊元素內容撐開寬度,與絕對定位基本一致,的差別是始終相對整個文檔進行定位,IE6不支持固定定位,可以通過js一起解決
5、在IE6下,父級的overflow:hidden是包不住設置為position:relative的子級的(這是當子元素高度高於父元素情況下,在一般情況下,設置為relative是對元素本身沒影響的),那麼要解決這個問題就是給父級加定位屬性(相對或絕對定位都行)
6、在IE6下,如果定位元素的父級的寬高是奇數的話,那麼該定位元素的right和bottom都有1像素的偏差,未找到較好的解決方案,則避免父元素寬高為奇數

七、清除浮動

1、給父級也加浮動,但父級還要父級怎麼辦?一層層加?擴展性不好,會導致:頁面中所有元素都加浮動,margin左右自動失效(floats bad !),結論:不適用,放棄!!
2、給浮動元素的父級加display:inline-block,結論:不好,margin:0 auto失效!

3、給浮動元素後面加個空div,height:0px,但是在IE6下有個最小高度19px,但並不是所有元素都有最小元素,為瞭解決此問題,加個font-size:0;,但是也不能解決IE6下還剩最小高度2px的問題,(樣式為:加個空div,class為clear,樣式為:clear:both;font-size:0;height:0;)解決方案請聽下回分解

4、給浮動元素後面加<br clear="all"/>,這個屬性還有left、right等值,br是沒有高度的,在br里的clear屬性跟用clear:both作用是一樣的,在ie6/7下都起作用了也省事,是可以用方案,但是,但是,不符合w3c標準:結構、樣式、行為分離(寫了個br標簽,改結構了)
5、after偽類並不會改變文檔結構,content:"內容內容"是不會改變結構的(通過F12可以看到,文檔結構里的“內容內容”這幾個字並不存在,但卻可以在頁面上顯示出來,能看見),比如樣式:p:after{content:"內容",background:red;width:10px;height:10px;}那麼背景色變為紅色的地方只會是“內容”,即這個content里的東西,p裡面的文字背景色不會變化,並且寬和高也是對content里的東西起作用,不會影響p元素,但是在IE6/7下只支持a標簽的那個4個偽類,不支持after偽類,但是沒關係,因為在IE6/7下浮動元素的父級有寬度就不用清浮動,那不支持after偽類也沒關係,為啥父級有寬度就不用清浮動了呢?這是因為在ie中有個haslayout的東西(不知道就百度百科)預設為false,有了width就能觸發為true(哪些能觸發去百度),haslayout會根據元素內容的大小或者父級的大小來重新計算元素高度,那麼如果父級不給width怎麼辦呢?這時候就用zoom:1(百度百科里提到zoom除了normal外的值能激發haslayout為true),zoom有放大、縮小效果,所以一般這樣用:給浮動元素的父級.clear{zoom:1};.clear:after{conetent:"";display:block;clear:both;}(前者解決ie6/7下的清浮動,後者解決其他瀏覽器下的清浮動),現在都是推崇這種清浮動方法,推薦、推薦!!
6、overflow可以包含著浮動元素,所以overflow可以製造清浮動假象,是加給浮動元素的父級的,此方法也可用,但是在IE6下有問題:因為overflow沒有把元素提升層級的功能,那麼配合zoom:1使用,可以激發haslayout,此方法還是少用,可能會隱藏本來應該顯示出來的內容,推薦用第5種方法。

註意:clear這個屬性只能加給塊元素,對於內嵌是不起作用的!!

八、vertical-align

預設圖片下麵會有幾個像素的空隙,1、可通過display:block解決,但是如果想排在一行則就有局限性問題;2、使用vertical-align:top(其他值也行),此方法推薦!!!!

上面說到IE6下最小高度問題通過加font-size為0來解決,但是還是會剩最小高度2px問題,那麼解決方案是加overflow:hidden解決

 


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

-Advertisement-
Play Games
更多相關文章
  • 試題描述: 有 n 個同學(編號為 1 到 n )正在玩一個信息傳遞的游戲。在游戲里每人都有一個固定的信息傳遞對象,其中,編號為 i 的同學的信息傳遞對象是編號為 T_i 的同學。游戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日信息告訴各自的信息傳遞對象(註意:可能
  • 回到目錄 分頁組件網上有很多,MVC.Pager,JSPager等,通過實現方式大體分為前端分頁和後端分頁,前端分頁是前臺對list記憶體本地集合進行分頁,缺點就是在大數據情況下,記憶體占用過高;後端分頁就是UI把要返回的頁號告訴後臺,由後臺組織數據並返回,這種方法就是我們經常看到的了;而根據後臺集合種
  • 俗話說,自己寫的代碼,6個月後也是別人的代碼……複習!複習!複習!總結的知識點如下: 享元模式概念和實現例子 使用了享元模式的Java API String類 java.lang.Integer 的 valueOf(int)方法源碼分析 使用享元模式的條件 享元模式和單例模式的區別 前面的策略模式的
  • 序言 Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發佈至今,憑藉開源的力量,已經接近成熟與完善。 Nginx功能豐富,可作為HTTP伺服器,也可作為反向代理伺服器,郵件伺服器。支持FastCGI、SSL、Virtual Host、URL Re
  • 回到目錄 IoC是解耦的靈魂,很難想像一個框架中沒有IoC會變成什麼樣子,Lind.DDD里的IoC是通過Unity實現的,由依賴註入(unity)和方法攔截組成(Interception),依賴註入可以通過事前定義好的實現方式去動態建立某個介面的實例,例如,在倉儲介面IRepository里,你可
  • 既然是游戲服務端程式員,那博客里至少還是得有一篇跟游戲服務端有關的文章,今天文章主題就關於游戲服務端。
  • 本篇體驗使用AngularJS向後端ASP.NET API控制器上傳文件。 首先服務端: public class FilesController : ApiController { //using System.Web.Http [HttpPost] public async Task<HttpR
  • 1
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...