第13章,構建基於浮動的佈局
使用的是float(浮動)屬性
注:float:none值將取消全部浮動,一般只用來取消元素中已經應用的浮動。
切記:不須要給正文的div設計寬度,即便設計成固定寬度也不用
用浮動進行佈局
在浮動元素中浮動元素,會在列中增長列。
克服浮動問題
清除浮動和保持浮動
清除元素兩邊的浮動
clear屬性值:left,right,both
在非浮動的外圍元素如<div>標籤中浮動元素,有可能形成當浮動元素高於div裏面的其餘內容時,從外圍元素的底部凸出來,
解決方法:
一、在外圍<div>底部添加一個清除元素
二、浮動外圍元素
三、利用overflow:hidden,在外圍元素中使用
四、使用Micro Clear Fix
多列布局
第14章,響應式Web設計
響應式Web設計基礎知識
響應式Web設計簡稱RWD。
RWD中結合了三大理念:用於佈局的彈性網絡、用於圖片和視頻的彈性媒體、爲不一樣屏幕寬度建立不一樣樣式的CSS媒體查詢
在網頁<head>中添加如下代碼(<title>標籤上方就是它最佳位置)能夠忽略手機瀏覽器對於網頁的自動縮放:
<meta name="viewport" content="width=device-width">
CSS的@viewport也能夠實現一樣的功能,應該將這個代碼放在全部樣式表前,但目前還有不少瀏覽器不支持,須要添加供應商前綴才行
@viewport{ width:device-width; }
媒體查詢
能夠根據目標瀏覽器的寬高給網頁分配樣式
使用媒體查詢的策略
一、調整列
二、彈性寬度
三、縮進空白空間
四、調整字號
五、修改導航菜單
六、在手持設備上隱藏內容
七、使用背景圖片
建立斷點
媒體查詢可給告訴瀏覽器在特定條件下使用特定的樣式,特定條件一般被稱爲斷點
如何進行斷點設置呢?簡單作法是在網頁中打開一個網頁,而後使用瀏覽器窗口句柄,讓窗口變窄,在某個點時設計將會變得很難看,這時能夠設置一個斷點,如此循環。通常來講會設計3個斷點,一個針對智能手機,一個針對平板電腦,一個針對桌面型瀏覽器
桌面型優先仍是手機版優先
建立媒體查詢
<link href="css/small.css" rel="stylesheet" media="(width:480px)">
只是新增了media屬性,設定條件
<!--[if lte IE 8>
<script src="respond.min.js"></script>
<![endif]-->
這種只針對精確的查詢,最好使用範圍值,即藉助max-width(小於等於)和min-width(大於等於)
彈性網格
HTML源碼的順序的重要性
重置盒模型
將固定寬度轉換成彈性網格
流式圖片
雖然彈性設計中列會隨着瀏覽器窗口變小而收縮,但圖片不會,這就可能致使圖片溢出邊界
可使用以下方式使圖片變成具備彈性:
一、首先,添加樣式:
二、將HTML中全部img標籤的height和width屬性刪除
流式圖片不足
圖片會伸展到列的100%寬度,這就可能發生拉伸超出它的天然寬度,發生形變和失真。
第15章,定位網頁上的元素
定位屬性的功能
CSS的position屬性能夠控制Web瀏覽器如何以及在和何處顯示特定的元素
CSS提供了4種類型的定位:
絕對定位:經過以pixel、em或percentage爲單位設定元素的左右上下方的位置對它進行定位。
注:不要在一個樣式中同時設定float屬性和任何一種定位,除了靜態定位和相對定位,absolute和fixed也不能和float屬性同時應用於同一個元素
相對定位:相對於它在HTML流中的當前位置進行定位,與絕對定位不一樣,其餘元素並不會佔據相對定位元素原來在HTML中所處的位置,相對定位最大的好處不是移動元素,而是給它內部絕對定位元素設定一個新的參照點
固定定位:固定定位元素會被鎖定在屏幕某個位置上。
靜態定位:只是表示網頁內容將遵循正常從上到下的HTML流
position屬性能夠改變任何一個元素的定位,使用如下4個關鍵字:static、absolute、relative、fixed
注:靜態定位元素將不支持如下要討論的任何一種定位值
設置定位值
Web瀏覽器窗口顯示區也被稱爲檢視區(viewport),有上、下、左、右4條邊,對應CSS屬性top、bottom、left、right
position屬性後面還有更多種屬性(top、bottom、left、right)
利用絕對定位在網頁上定位元素時,它的具體位置均取決於相關元素在其它標籤中所嵌套的位置:
一、若是一個標籤的位置是絕對定位的,且它又不在其餘任何設定了absolute、relative、fixed定位的標籤裏面,那它就是相對於瀏覽器窗口進行定位
二、若是一個標籤處在另外一個設定了absolute、relative、fixed定位的標籤裏,那它就是相對於另外一個元素的邊框進行定位
注:在CSS中,術語relative不徹底等同於它的本義,能夠解讀爲「相對於我」的意思。即當對一個標籤設置relative定位時,意思是「我內部全部定位元素應該相對於個人位置進行定位」
堆疊元素
通常來說,定位元素重疊時的堆疊順序是按照它們在網頁HTML代碼中的順序來決定,但能夠經過CSS屬性z-index來控制定位元素的堆疊順序:
z-index:3; 這個值爲數字,數字越大,越接近堆疊頂部,即出如今HTML頁面的前面,還可使用負值,將一個元素定位在其父元素或者其任意一個祖先元素之下。
注:IE7及更早版本不支持,z-index最大值是2147483647
隱藏部分網頁
絕對定位元素時經常使用CSS屬性visibility(可見性),隱藏部分網頁或顯示隱藏部分visibility:hidden(隱藏),visibility:visible(可見)
visibility:hidden與display:none相似,不過visibility會在HTML網頁留下空白,display不會
opacity屬性也能夠隱藏元素:opacity:0,徹底不可見,opacity:1,徹底可見
強大的定位策略
綜合使用position的定位
第四部分----CSS高級技術
第16章,設計打印頁面的CSS技術
Media樣式表的做用
CSS支持10種不一樣的媒體類型:all、braille、embossed、handheld、print、projection、screen、speech、tty、tv
應特別注意的3種媒體類型:
all:適用於每一種設備,當把樣式嵌入或經過外部樣式表進行連接時,用的就是這種方式
screen:只適用於顯示器
print:只適用於打印網頁
給外部樣式表指定媒體類型
<link rel="stylesheet" media="print" href="print.css">
技術上來講:@import url(print.css) print;也是能夠的,只是IE不支持
在樣式表中指定媒體類型
在樣式表中使用如下語句:
@media print{
/*put your styles for printer in here*/
}
重寫文本樣式
使用pixel或em單位對於瀏覽器而言可能很好,但對打印機並不起做用。瀏覽器會根據本身的解釋將其轉換成打印的單位:點(pt),不一樣瀏覽器解釋不同,因此最好可以設置成針對打印機的樣式使用pt做爲單位
定義打印背景
一、取消背景元素
使用background:white;可直接將背景設置成白色,並取消圖片
二、保留背景元素
三、給打印添加分頁符
使用page-break-before和page-break-after屬性
page-break-before:always讓Web瀏覽器在一個指定樣式以前插入分頁符,是某個元素顯示在打印頁的頂部
page-break-after:always是某一個元素顯示在打印頁面最後
第17章,改正CSS設計習慣
一、添加註釋
二、組織樣式和樣式表
三、樣式命名要清晰
四、根據用途而不是外觀命名樣式
五、不根據位置命名
六、不使用含義模糊的名稱
七、使用多個類能夠節省時間
八、將樣式分組:把網頁上相關部位所採用的樣式集中在一塊兒,把用途相關的樣式集中在一塊兒
九、用註釋分隔樣式組
十、使用多個樣式表:可使用@import合併多個樣式表,再引入’
十一、消除瀏覽器的樣式衝突:即各個瀏覽器的默認樣式不一致,要對樣式重置
十二、使用派生選擇器:儘可能減小ID選擇器的使用,以及減小類的使用
1三、給IE嘗試不一樣的CSS
IE條件註釋基本結構:
<!--[if IE]>
/*針對IE的樣式*/
<![endif]-->
非IE瀏覽器會當成HTML註釋並忽略