摘要:利用左側浮動,右側盒子通過形成了。三列布局這是比較復雜的布局,適合有復雜操作功能的網頁,如各大電商網站。建議升級您的瀏覽器,或使用等高級瀏覽器,將會得到更好的體驗
在熟悉那些常用的軟件、工具后,我們正式開始開發,在前期準備工作之后,我們要做的事情是寫頁面,也就是網頁布局。在w3c、菜鳥、慕課網等等網站上都有基礎的 HTML+CSS 知識講解,在初期學習中,跟著教程全部過一遍就差不多了。剛開始寫頁面的時候我們會迷糊,那么多的標簽、屬性,我該用哪個,有什么區別等等,然后寫出來的幾個頁面都是亂七八糟的,分不動定位和浮動等很多屬性,接下來我介紹一些我對網頁布局的理解。
一、入門1、盒子模型
在寫網頁的最開始,我們需要清楚記住一個東西:盒子模型。
這是從瀏覽器上截圖下來的一個盒子模型的圖,我們可以清晰的看到從內到外依次是content(內容)、padding(內填充)、border(邊框)、margin(外邊距),看起來很簡單,但是總有新手會記不住,至少我學生時代老師第一次講我是聽不明白的。
2、頁面結構
隨便打開一個網站,都可以清晰的看到網站大致有頭部、中間、底部三部分構成,這樣我們就知道一個網頁首先可以分成三個部分,我的建議是先寫頭部、底部最后寫中間內容。頭部、底部一般都是公共的,整個網站共用一個,那么,就可以多帶帶建一個文件header.html、footer.html分開來寫頭部、底部,然后用一個模塊插件在每個頁面對應的位置引入。
頭部主要是一個導航欄,整個網站根據這個導航欄開發細致功能,而底部主要是開發這個網站公司的信息和備案號等。中間內容:這里就是整個網站的主要內容,展示給用戶看的數據,根據不同類別網站有不同程度復雜的布局,還有編寫習慣,我建議把網頁分成頭部、底部、Banner、內容幾個大塊去寫,寫完一塊看下效果再繼續寫。
3、推薦幾個入門實例
一開始寫頁面新建的項目文件夾大致是這樣的目錄:
demo文件夾 > css文件夾 + images文件夾 + index.html
31、百度一下首頁
網站地址:https://www.baidu.com/
這是一個很簡單的頁面,頁面元素比較少,是我入門的第一個靜態頁面。
32、企業類首頁(貓咪領養網)
網站地址:http://www.maomilingyang.com/
這類型的網站首頁比較簡潔,功能不多,中間內容一般是兩列布局。
33、電商類網站首頁(蘑菇街)
網站地址:http://www.mogujie.com/
這類型的網站布局復雜,功能繁多,最重要的是在寫頁面的時候要細致,要有耐心,在目前熱門的電商網站有很多,我建議是選擇比較復雜的網站首頁去寫布局。
經過以上3個實例的練習,基本上把學習過的HTML+CSS語法都過一遍,平時會用到的大多數屬性都用上了,下面就來分析常用的布局。
1、默認布局(已省略Banner)
我是頭部內容我是內容1我是內容2
#Page{ text-align: center; } .bg{ background-color: pink; } #Header{ width: 100%; height: 60px; line-height: 60px; } #Content{} #Content div{ /*高度不是寫死,內容撐開*/ min-height: 500px; line-height: 500px; } #Footer{ width: 100%; height: 200px; line-height: 200px; }
2、單列布局
該布局比較簡單,大多用于功能不多的網站首頁,該布局通常有固定的寬度,并且居中,高度由內容撐開,有以下兩個應用場景:
21、需求:上下固定,中間滾動,這種布局移動端使用的更多。
只需要給頭部和底部加上絕對定位,再添加內容標簽(注意:父元素不能有定位)
PS:固定可以使用Fixed,但是有兼容性問題
#Header{ position: absolute; top: 0; } #Content{ position: absolute; top: 60px; bottom: 200px; width: 100%; overflow-y: scroll; } #Footer{ position: absolute; bottom: 0; }
22、需求:內容過少時底部固定,過多時正常排列。
有時候頁面內容很少,高度不滿一屏看起來就很不舒服,版面很丑,主要是因為高度不夠,所以最重要就是要設置html,body的高度。
html{ height: 100%; } body{ min-height: 100%; position: relative; } #Footer{ position: absolute; bottom: 0; }
3、兩列布局
多用在后臺管理系統和分欄展示內容的頁面,這里講解的是后臺上的兩列布局,一邊導航一邊內容的。大多是左/右邊固定寬度,右/左邊寬度自適應,或者左右寬度都自適應的情況。實現的方法有很多種,這里以左邊導航右邊內容為例。
#Page{ text-align: center; } .bg{ background-color: pink; } #Header{ width: 100%; height: 60px; line-height: 60px; } #Content div{ height: 500px; line-height: 500px; } #Footer{ width: 100%; height: 200px; line-height: 200px; }
31、Float + BFC
利用左側浮動,右側盒子通過overflow: auto;形成了BFC。(注意:父元素要清浮動)
#Content{ width: 100%; overflow: hidden; } .cont-left{ float: left; } .cont-right{ overflow: auto; background-color: skyblue; }
32、Flex: 彈性布局的方法,兼容性有些不足,很好的一個方法。
#Content{ display: flex; /*高度自動*/ align-items: flex-start; } .cont-left{ /*固定寬度才設置,自適應不設*/ width: 100px; flex: 0 0 auto; } .cont-right{ flex: 1 1 auto; background-color: skyblue; }
33:Grid:柵格布局,兼容性有些不足。
#Content{ display: grid; grid-template-columns: 120px 1fr; align-items: start; } .cont-left{ box-sizing: border-box; grid-column: 1; } .cont-right{ box-sizing: border-box; grid-column: 2; background-color: skyblue; }
3、三列布局
這是比較復雜的布局,適合有復雜操作功能的網頁,如各大電商網站。實現的方法同樣有很多種,如Float、BFC、圣杯、雙飛翼、Flex、絕對定位。
31、BFC(塊格式化上下文)規則規定:BFC不會和浮動元素重疊
我是頭部內容我是內容1我是內容2我是內容0
.cont-left{ float: left; width: 100px; } .cont-right{ float: right; width: 100px; } .cont-middle{ overflow: hidden; background-color: skyblue; }
32、圣杯:左、中、右三欄都通過float進行浮動,然后通過負值margin進行調整
我是頭部內容我是內容0我是內容1我是內容2
#Content{ overflow: hidden; } .cont-left{ position: relative; float: left; width: 100px; margin-left: -100%; background-color: skyblue; } .cont-right{ position: relative; float: left; width: 100px; margin-left: -100px; background-color: skyblue; } .cont-middle{ float: left; width: 100%; }
33、絕對定位:簡單,優先加載主體。
#Content{ height: 500px; } .cont-middle{ position: absolute; left: 200px; right: 200px; } .cont-left{ position: absolute; left: 0; width: 200px; background-color: skyblue; } .cont-right{ position: absolute; right: 0; width: 200px; background-color: skyblue; }三、分享主流網站初始化
考慮到瀏覽器的兼容問題,不同瀏覽器對標簽有不同的默認值,我們在每個頁面的開始會進行初始化CSS,最簡單的初始化方法是*{margin:0;padding:0;},一開始我也是這么寫的,這樣寫最快,但是如果網站很大,就不建議這樣寫,這樣網站加載需要很久,會把所有標簽初始化一遍。我們先看一下網上能找到的主流網站的初始化方案:
[默認效果]
- 小幸運
- 原來你是我最想留住的幸運
- 原來我們和愛情,曾經靠得那么近
- 那為我對抗世界的決定
- 那陪我淋的雨,一幕幕都是你
- 一塵不染的真心,與你相遇 好幸運
1、網易官網
html {overflow-y:scroll;} body {margin:0; padding:29px00; font:12px"5B8B4F53",sans-serif;background:#ffffff;} div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p{padding:0; margin:0;} table,td,tr,th{font-size:12px;} li{list-style-type:none;} img{vertical-align:top;border:0;} ol,ul {list-style:none;} h1,h2,h3,h4,h5,h6{font-size:12px; font-weight:normal;} address,cite,code,em,th {font-weight:normal; font-style:normal;}
2、騰訊官網
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0} body{font:12px"宋體","Arial Narrow",HELVETICA;background:#fff;-webkit-text-size-adjust:100%;} a{color:#2d374b;text-decoration:none} a:hover{color:#cd0200;text-decoration:underline} em{font-style:normal} li{list-style:none} img{border:0;vertical-align:middle} table{border-collapse:collapse;border-spacing:0} p{word-wrap:break-word}
3、新浪官網
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} body{background:#fff;color:#333;font-size:12px; margin-top:5px;font-family:"SimSun","宋體","Arial Narrow";} ul,ol{list-style-type:none;} select,input,img,select{vertical-align:middle;} a{text-decoration:none;} a:link{color:#009;} a:visited{color:#800080;} a:hover,a:active,a:focus{color:#c00;text-decoration:underline;}
4、淘寶官網
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; } body, button, input, select, textarea { font:12px/1.5tahoma, arial, 5b8b4f53; } h1, h2, h3, h4, h5, h6{ font-size:100%; } address, cite, dfn, em, var { font-style:normal; } code, kbd, pre, samp { font-family:couriernew, courier, monospace; } small{ font-size:12px; } ul, ol { list-style:none; } a { text-decoration:none; } a:hover { text-decoration:underline; } sup { vertical-align:text-top; } sub{ vertical-align:text-bottom; } legend { color:#000; } fieldset, img { border:0; } button, input, select, textarea { font-size:100%; } table { border-collapse:collapse; border-spacing:0; }
5、雅虎
html {overflow-y: scroll;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td { margin:0; padding:0; } body { background:#fff; color:#555; font-size:14px; font-family: Verdana, Arial, Helvetica, sans-serif; } td,th,caption { font-size:14px; } h1, h2, h3, h4, h5, h6 { font-weight:normal; font-size:100%; } address, caption, cite, code, dfn, em, strong, th, var { font-style:normal; font-weight:normal;} a { color:#555; text-decoration:none; } a:hover { text-decoration:underline; } img { border:none; } ol,ul,li { list-style:none; } input, textarea, select, button { font:14px Verdana,Helvetica,Arial,sans-serif; } table { border-collapse:collapse; } .clearfix:after {content: "."; display: block; height:0; clear:both; visibility: hidden;} .clearfix { *zoom:1; }四、網頁開發流程
入門和學習了布局之后,接下來就是開始正式寫頁面的準備工作,一個P端網頁在開發的時候有很多準備工作,準備工作做好了對于后面的維護也是比較簡單、友好,要爭取頁面一次寫完就很好,不要后期又反過來調整頁面,因此,在寫頁面的時候一定要專心、精準、仔細。
1、網站初始化:其實用哪個初始化方案都沒關系,重要的是對不同項目進行細微調整,我們分析一下個人的初始化方案怎么寫:
11、重置樣式:主要有以下6點,不是寫死,按需添加標簽與屬性 11-1、去除默認邊距(不是所有,是使用到的) 11-2、整體(背景顏色、字體) 11-3、標題 11-4、列表 11-5、表單 11-6、超鏈接 11-7、圖片 12、通用樣式:主要有字號、a的狀態、清除浮動、居中等等,其中清除浮動和居中這些方式有很多,這里展示的是我個人喜歡用的。 13、模塊樣式:即頁面每一大模塊區域的共用樣式。 14、書寫順序:編輯器中有格式化工具,可以去配置表中配置成自己喜歡的格式,建議定位和自身屬性放在前面。
reset.css /* ========================================================================== 1、重置項 ============================================================================ */ body { margin: 0; padding: 0;} body { background-color: #fff; font: 12px"微軟雅黑";} h1, h2, h3, h4, h5, h6 { font-weight: normal;} ol, ul, li { list-style: none;} select, input, button, textarea { border: 0; outline: none; background-color: #fff;} a { text-decoration: none; color: #000;} img { border: none; border: 0;} /* ========================================================================== 2、公共項 ============================================================================ */ /* 頁面容器 */ #Page {} /* 展示區域 */ .contBase { min-width: 980px; margin: 0 auto;} /* 字號 */ .font-s { font-size: 10px;} .font-m { font-size: 14px;} .font-l { font-size: 16px;} .font-xl { font-size: 18px;} /* a的4個狀態 */ a:link {} a:visited {} a:hover {} a:active {} /* 清除浮動的2種方式 */ .clearBFC { overflow: hidden;} .clearFix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden;} .clearFix { zoom: 1;} /* 水平居中的3種方式 */ .center-block{margin: 0 auto;} .center-inline{text-align: center;} .center-auto{position: absolute;left: 0;right: 0;margin: auto;}
2、模塊代碼:網站進行初始化之后可以寫頁面了,我建議把公共的模塊抽取出來,樣式寫到同一個文件內。
section.css /* ========================================================================== 1、Header ============================================================================ */ #Header{} /* ========================================================================== 2、Banner ============================================================================ */ #Banner{} /* ========================================================================== 3、Footer ============================================================================ */ #Footer{}
3、接著就是這個頁面的代碼,如index.css,注意的是,建議在每個頁面的樣式文件里加上適配屏幕的代碼,1920設計圖上的效果適應大部分屏幕,但是小屏幕、大屏幕的效果還是有偏差,或者希望在手機上打開頁面也不會是亂,就需要寫一寫簡單的適配代碼,如單列布局的寬度等。
index.css /* 大屏幕 */ @media (min-width:2560px){} /* 中小屏幕 */ @media (min-width:1024px) and (max-width:1365px){} /* 小屏幕 */ @media (min-width:980px) and (max-width:1023px){}五、兼容IE
很不幸的,如果你的網站被要求兼容IE8,那么,需要按需加載文件,可以在head部分加判斷條件,具體兼容方案在這里就不做分析了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/113944.html
摘要:利用左側浮動,右側盒子通過形成了。三列布局這是比較復雜的布局,適合有復雜操作功能的網頁,如各大電商網站。建議升級您的瀏覽器,或使用等高級瀏覽器,將會得到更好的體驗 在熟悉那些常用的軟件、工具后,我們正式開始開發,在前期準備工作之后,我們要做的事情是寫頁面,也就是網頁布局。在w3c、菜鳥、慕課網等等網站上都有基礎的 HTML+CSS 知識講解,在初期學習中,跟著教程全部過一遍就差不多了。...
摘要:改變屏幕分辨率可以切換不同的靜態局部頁面元素位置發生改變,但在每個靜態布局中,頁面元素不隨窗口大小的調整發生變化。即創建多個流體式布局,分別對應一個屏幕分辨率范圍。 一、靜態布局(static layout) 即傳統Web設計,網頁上的所有元素的尺寸一律使用px作為單位。 1、布局特點 不管瀏覽器尺寸具體是多少,網頁布局始終按照最初寫代碼時的布局來顯示。常規的pc的網站都是靜態...
摘要:改變屏幕分辨率可以切換不同的靜態局部頁面元素位置發生改變,但在每個靜態布局中,頁面元素不隨窗口大小的調整發生變化。即創建多個流體式布局,分別對應一個屏幕分辨率范圍。 一、靜態布局(static layout) 即傳統Web設計,網頁上的所有元素的尺寸一律使用px作為單位。 1、布局特點 不管瀏覽器尺寸具體是多少,網頁布局始終按照最初寫代碼時的布局來顯示。常規的pc的網站都是靜態...
閱讀 2477·2021-09-29 09:34
閱讀 3312·2021-09-23 11:21
閱讀 2503·2021-09-06 15:00
閱讀 1131·2019-08-30 15:44
閱讀 2031·2019-08-29 17:23
閱讀 3004·2019-08-29 16:44
閱讀 3061·2019-08-29 13:13
閱讀 1940·2019-08-28 18:12