摘要:利用左側(cè)浮動(dòng),右側(cè)盒子通過(guò)形成了。三列布局這是比較復(fù)雜的布局,適合有復(fù)雜操作功能的網(wǎng)頁(yè),如各大電商網(wǎng)站。建議升級(jí)您的瀏覽器,或使用等高級(jí)瀏覽器,將會(huì)得到更好的體驗(yàn)
在熟悉那些常用的軟件、工具后,我們正式開(kāi)始開(kāi)發(fā),在前期準(zhǔn)備工作之后,我們要做的事情是寫(xiě)頁(yè)面,也就是網(wǎng)頁(yè)布局。在w3c、菜鳥(niǎo)、慕課網(wǎng)等等網(wǎng)站上都有基礎(chǔ)的 HTML+CSS 知識(shí)講解,在初期學(xué)習(xí)中,跟著教程全部過(guò)一遍就差不多了。剛開(kāi)始寫(xiě)頁(yè)面的時(shí)候我們會(huì)迷糊,那么多的標(biāo)簽、屬性,我該用哪個(gè),有什么區(qū)別等等,然后寫(xiě)出來(lái)的幾個(gè)頁(yè)面都是亂七八糟的,分不動(dòng)定位和浮動(dòng)等很多屬性,接下來(lái)我介紹一些我對(duì)網(wǎng)頁(yè)布局的理解。
一、入門(mén)1、盒子模型
在寫(xiě)網(wǎng)頁(yè)的最開(kāi)始,我們需要清楚記住一個(gè)東西:盒子模型。
這是從瀏覽器上截圖下來(lái)的一個(gè)盒子模型的圖,我們可以清晰的看到從內(nèi)到外依次是content(內(nèi)容)、padding(內(nèi)填充)、border(邊框)、margin(外邊距),看起來(lái)很簡(jiǎn)單,但是總有新手會(huì)記不住,至少我學(xué)生時(shí)代老師第一次講我是聽(tīng)不明白的。
2、頁(yè)面結(jié)構(gòu)
隨便打開(kāi)一個(gè)網(wǎng)站,都可以清晰的看到網(wǎng)站大致有頭部、中間、底部三部分構(gòu)成,這樣我們就知道一個(gè)網(wǎng)頁(yè)首先可以分成三個(gè)部分,我的建議是先寫(xiě)頭部、底部最后寫(xiě)中間內(nèi)容。頭部、底部一般都是公共的,整個(gè)網(wǎng)站共用一個(gè),那么,就可以多帶帶建一個(gè)文件header.html、footer.html分開(kāi)來(lái)寫(xiě)頭部、底部,然后用一個(gè)模塊插件在每個(gè)頁(yè)面對(duì)應(yīng)的位置引入。
頭部主要是一個(gè)導(dǎo)航欄,整個(gè)網(wǎng)站根據(jù)這個(gè)導(dǎo)航欄開(kāi)發(fā)細(xì)致功能,而底部主要是開(kāi)發(fā)這個(gè)網(wǎng)站公司的信息和備案號(hào)等。中間內(nèi)容:這里就是整個(gè)網(wǎng)站的主要內(nèi)容,展示給用戶看的數(shù)據(jù),根據(jù)不同類(lèi)別網(wǎng)站有不同程度復(fù)雜的布局,還有編寫(xiě)習(xí)慣,我建議把網(wǎng)頁(yè)分成頭部、底部、Banner、內(nèi)容幾個(gè)大塊去寫(xiě),寫(xiě)完一塊看下效果再繼續(xù)寫(xiě)。
3、推薦幾個(gè)入門(mén)實(shí)例
一開(kāi)始寫(xiě)頁(yè)面新建的項(xiàng)目文件夾大致是這樣的目錄:
demo文件夾 > css文件夾 + images文件夾 + index.html
31、百度一下首頁(yè)
網(wǎng)站地址:https://www.baidu.com/
這是一個(gè)很簡(jiǎn)單的頁(yè)面,頁(yè)面元素比較少,是我入門(mén)的第一個(gè)靜態(tài)頁(yè)面。
32、企業(yè)類(lèi)首頁(yè)(貓咪領(lǐng)養(yǎng)網(wǎng))
網(wǎng)站地址:http://www.maomilingyang.com/
這類(lèi)型的網(wǎng)站首頁(yè)比較簡(jiǎn)潔,功能不多,中間內(nèi)容一般是兩列布局。
33、電商類(lèi)網(wǎng)站首頁(yè)(蘑菇街)
網(wǎng)站地址:http://www.mogujie.com/
這類(lèi)型的網(wǎng)站布局復(fù)雜,功能繁多,最重要的是在寫(xiě)頁(yè)面的時(shí)候要細(xì)致,要有耐心,在目前熱門(mén)的電商網(wǎng)站有很多,我建議是選擇比較復(fù)雜的網(wǎng)站首頁(yè)去寫(xiě)布局。
經(jīng)過(guò)以上3個(gè)實(shí)例的練習(xí),基本上把學(xué)習(xí)過(guò)的HTML+CSS語(yǔ)法都過(guò)一遍,平時(shí)會(huì)用到的大多數(shù)屬性都用上了,下面就來(lái)分析常用的布局。
1、默認(rèn)布局(已省略Banner)
我是頭部?jī)?nèi)容我是內(nèi)容1我是內(nèi)容2
#Page{ text-align: center; } .bg{ background-color: pink; } #Header{ width: 100%; height: 60px; line-height: 60px; } #Content{} #Content div{ /*高度不是寫(xiě)死,內(nèi)容撐開(kāi)*/ min-height: 500px; line-height: 500px; } #Footer{ width: 100%; height: 200px; line-height: 200px; }
2、單列布局
該布局比較簡(jiǎn)單,大多用于功能不多的網(wǎng)站首頁(yè),該布局通常有固定的寬度,并且居中,高度由內(nèi)容撐開(kāi),有以下兩個(gè)應(yīng)用場(chǎng)景:
21、需求:上下固定,中間滾動(dòng),這種布局移動(dòng)端使用的更多。
只需要給頭部和底部加上絕對(duì)定位,再添加內(nèi)容標(biāo)簽(注意:父元素不能有定位)
PS:固定可以使用Fixed,但是有兼容性問(wèn)題
#Header{ position: absolute; top: 0; } #Content{ position: absolute; top: 60px; bottom: 200px; width: 100%; overflow-y: scroll; } #Footer{ position: absolute; bottom: 0; }
22、需求:內(nèi)容過(guò)少時(shí)底部固定,過(guò)多時(shí)正常排列。
有時(shí)候頁(yè)面內(nèi)容很少,高度不滿一屏看起來(lái)就很不舒服,版面很丑,主要是因?yàn)楦叨炔粔颍宰钪匾褪且O(shè)置html,body的高度。
html{ height: 100%; } body{ min-height: 100%; position: relative; } #Footer{ position: absolute; bottom: 0; }
3、兩列布局
多用在后臺(tái)管理系統(tǒng)和分欄展示內(nèi)容的頁(yè)面,這里講解的是后臺(tái)上的兩列布局,一邊導(dǎo)航一邊內(nèi)容的。大多是左/右邊固定寬度,右/左邊寬度自適應(yīng),或者左右寬度都自適應(yīng)的情況。實(shí)現(xiàn)的方法有很多種,這里以左邊導(dǎo)航右邊內(nèi)容為例。
#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
利用左側(cè)浮動(dòng),右側(cè)盒子通過(guò)overflow: auto;形成了BFC。(注意:父元素要清浮動(dòng))
#Content{ width: 100%; overflow: hidden; } .cont-left{ float: left; } .cont-right{ overflow: auto; background-color: skyblue; }
32、Flex: 彈性布局的方法,兼容性有些不足,很好的一個(gè)方法。
#Content{ display: flex; /*高度自動(dòng)*/ align-items: flex-start; } .cont-left{ /*固定寬度才設(shè)置,自適應(yīng)不設(shè)*/ 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、三列布局
這是比較復(fù)雜的布局,適合有復(fù)雜操作功能的網(wǎng)頁(yè),如各大電商網(wǎng)站。實(shí)現(xiàn)的方法同樣有很多種,如Float、BFC、圣杯、雙飛翼、Flex、絕對(duì)定位。
31、BFC(塊格式化上下文)規(guī)則規(guī)定:BFC不會(huì)和浮動(dòng)元素重疊
我是頭部?jī)?nèi)容我是內(nèi)容1我是內(nèi)容2我是內(nèi)容0
.cont-left{ float: left; width: 100px; } .cont-right{ float: right; width: 100px; } .cont-middle{ overflow: hidden; background-color: skyblue; }
32、圣杯:左、中、右三欄都通過(guò)float進(jìn)行浮動(dòng),然后通過(guò)負(fù)值margin進(jìn)行調(diào)整
我是頭部?jī)?nèi)容我是內(nèi)容0我是內(nèi)容1我是內(nèi)容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、絕對(duì)定位:簡(jiǎn)單,優(yōu)先加載主體。
#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; }三、分享主流網(wǎng)站初始化
考慮到瀏覽器的兼容問(wèn)題,不同瀏覽器對(duì)標(biāo)簽有不同的默認(rèn)值,我們?cè)诿總€(gè)頁(yè)面的開(kāi)始會(huì)進(jìn)行初始化CSS,最簡(jiǎn)單的初始化方法是*{margin:0;padding:0;},一開(kāi)始我也是這么寫(xiě)的,這樣寫(xiě)最快,但是如果網(wǎng)站很大,就不建議這樣寫(xiě),這樣網(wǎng)站加載需要很久,會(huì)把所有標(biāo)簽初始化一遍。我們先看一下網(wǎng)上能找到的主流網(wǎng)站的初始化方案:
[默認(rèn)效果]
- 小幸運(yùn)
- 原來(lái)你是我最想留住的幸運(yùn)
- 原來(lái)我們和愛(ài)情,曾經(jīng)靠得那么近
- 那為我對(duì)抗世界的決定
- 那陪我淋的雨,一幕幕都是你
- 一塵不染的真心,與你相遇 好幸運(yùn)
1、網(wǎng)易官網(wǎng)
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、騰訊官網(wǎng)
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、新浪官網(wǎng)
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、淘寶官網(wǎng)
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; }四、網(wǎng)頁(yè)開(kāi)發(fā)流程
入門(mén)和學(xué)習(xí)了布局之后,接下來(lái)就是開(kāi)始正式寫(xiě)頁(yè)面的準(zhǔn)備工作,一個(gè)P端網(wǎng)頁(yè)在開(kāi)發(fā)的時(shí)候有很多準(zhǔn)備工作,準(zhǔn)備工作做好了對(duì)于后面的維護(hù)也是比較簡(jiǎn)單、友好,要爭(zhēng)取頁(yè)面一次寫(xiě)完就很好,不要后期又反過(guò)來(lái)調(diào)整頁(yè)面,因此,在寫(xiě)頁(yè)面的時(shí)候一定要專心、精準(zhǔn)、仔細(xì)。
1、網(wǎng)站初始化:其實(shí)用哪個(gè)初始化方案都沒(méi)關(guān)系,重要的是對(duì)不同項(xiàng)目進(jìn)行細(xì)微調(diào)整,我們分析一下個(gè)人的初始化方案怎么寫(xiě):
11、重置樣式:主要有以下6點(diǎn),不是寫(xiě)死,按需添加標(biāo)簽與屬性 11-1、去除默認(rèn)邊距(不是所有,是使用到的) 11-2、整體(背景顏色、字體) 11-3、標(biāo)題 11-4、列表 11-5、表單 11-6、超鏈接 11-7、圖片 12、通用樣式:主要有字號(hào)、a的狀態(tài)、清除浮動(dòng)、居中等等,其中清除浮動(dòng)和居中這些方式有很多,這里展示的是我個(gè)人喜歡用的。 13、模塊樣式:即頁(yè)面每一大模塊區(qū)域的共用樣式。 14、書(shū)寫(xiě)順序:編輯器中有格式化工具,可以去配置表中配置成自己喜歡的格式,建議定位和自身屬性放在前面。
reset.css /* ========================================================================== 1、重置項(xiàng) ============================================================================ */ 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、公共項(xiàng) ============================================================================ */ /* 頁(yè)面容器 */ #Page {} /* 展示區(qū)域 */ .contBase { min-width: 980px; margin: 0 auto;} /* 字號(hào) */ .font-s { font-size: 10px;} .font-m { font-size: 14px;} .font-l { font-size: 16px;} .font-xl { font-size: 18px;} /* a的4個(gè)狀態(tài) */ a:link {} a:visited {} a:hover {} a:active {} /* 清除浮動(dòng)的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、模塊代碼:網(wǎng)站進(jìn)行初始化之后可以寫(xiě)頁(yè)面了,我建議把公共的模塊抽取出來(lái),樣式寫(xiě)到同一個(gè)文件內(nèi)。
section.css /* ========================================================================== 1、Header ============================================================================ */ #Header{} /* ========================================================================== 2、Banner ============================================================================ */ #Banner{} /* ========================================================================== 3、Footer ============================================================================ */ #Footer{}
3、接著就是這個(gè)頁(yè)面的代碼,如index.css,注意的是,建議在每個(gè)頁(yè)面的樣式文件里加上適配屏幕的代碼,1920設(shè)計(jì)圖上的效果適應(yīng)大部分屏幕,但是小屏幕、大屏幕的效果還是有偏差,或者希望在手機(jī)上打開(kāi)頁(yè)面也不會(huì)是亂,就需要寫(xiě)一寫(xiě)簡(jiǎn)單的適配代碼,如單列布局的寬度等。
index.css /* 大屏幕 */ @media (min-width:2560px){} /* 中小屏幕 */ @media (min-width:1024px) and (max-width:1365px){} /* 小屏幕 */ @media (min-width:980px) and (max-width:1023px){}五、兼容IE
很不幸的,如果你的網(wǎng)站被要求兼容IE8,那么,需要按需加載文件,可以在head部分加判斷條件,具體兼容方案在這里就不做分析了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/54657.html
摘要:利用左側(cè)浮動(dòng),右側(cè)盒子通過(guò)形成了。三列布局這是比較復(fù)雜的布局,適合有復(fù)雜操作功能的網(wǎng)頁(yè),如各大電商網(wǎng)站。建議升級(jí)您的瀏覽器,或使用等高級(jí)瀏覽器,將會(huì)得到更好的體驗(yàn) 在熟悉那些常用的軟件、工具后,我們正式開(kāi)始開(kāi)發(fā),在前期準(zhǔn)備工作之后,我們要做的事情是寫(xiě)頁(yè)面,也就是網(wǎng)頁(yè)布局。在w3c、菜鳥(niǎo)、慕課網(wǎng)等等網(wǎng)站上都有基礎(chǔ)的 HTML+CSS 知識(shí)講解,在初期學(xué)習(xí)中,跟著教程全部過(guò)一遍就差不多了。...
摘要:改變屏幕分辨率可以切換不同的靜態(tài)局部頁(yè)面元素位置發(fā)生改變,但在每個(gè)靜態(tài)布局中,頁(yè)面元素不隨窗口大小的調(diào)整發(fā)生變化。即創(chuàng)建多個(gè)流體式布局,分別對(duì)應(yīng)一個(gè)屏幕分辨率范圍。 一、靜態(tài)布局(static layout) 即傳統(tǒng)Web設(shè)計(jì),網(wǎng)頁(yè)上的所有元素的尺寸一律使用px作為單位。 1、布局特點(diǎn) 不管瀏覽器尺寸具體是多少,網(wǎng)頁(yè)布局始終按照最初寫(xiě)代碼時(shí)的布局來(lái)顯示。常規(guī)的pc的網(wǎng)站都是靜態(tài)...
摘要:改變屏幕分辨率可以切換不同的靜態(tài)局部頁(yè)面元素位置發(fā)生改變,但在每個(gè)靜態(tài)布局中,頁(yè)面元素不隨窗口大小的調(diào)整發(fā)生變化。即創(chuàng)建多個(gè)流體式布局,分別對(duì)應(yīng)一個(gè)屏幕分辨率范圍。 一、靜態(tài)布局(static layout) 即傳統(tǒng)Web設(shè)計(jì),網(wǎng)頁(yè)上的所有元素的尺寸一律使用px作為單位。 1、布局特點(diǎn) 不管瀏覽器尺寸具體是多少,網(wǎng)頁(yè)布局始終按照最初寫(xiě)代碼時(shí)的布局來(lái)顯示。常規(guī)的pc的網(wǎng)站都是靜態(tài)...
摘要:開(kāi)發(fā)中的實(shí)踐盡量使用更換實(shí)現(xiàn)樣式變化。原因事件存在毫秒延時(shí)。解決方法移動(dòng)端使用事件。文本顯示省略號(hào)顯示省略號(hào)的基本條件元素定長(zhǎng)。單行顯示省略號(hào)多行顯示省略號(hào)目前只有內(nèi)核支持此屬性和手機(jī)端內(nèi)核以及瀏覽器默認(rèn)字體瀏覽器默認(rèn)字體是。 1、輸入U(xiǎn)RL到顯示網(wǎng)頁(yè),中間發(fā)生了什么 DNS(完成域名到IP的映射)-->TCP傳輸(三次握手建立傳輸鏈接)-->發(fā)送請(qǐng)求(分析url,設(shè)置請(qǐng)求頭、主體)-...
閱讀 2521·2023-04-26 02:57
閱讀 1403·2023-04-25 21:40
閱讀 2154·2021-11-24 09:39
閱讀 3556·2021-08-30 09:49
閱讀 759·2019-08-30 15:54
閱讀 1166·2019-08-30 15:52
閱讀 2067·2019-08-30 15:44
閱讀 1273·2019-08-28 18:27