百度前端學院-復雜的網頁設計


任務地址:http://ife.baidu.com/task/detail?taskId=9 點我直接飛機

想起來最近好久沒有更新博客了,就把這個任務放上吧~

百度前端技術學院,出了好幾個題,這個應該是最麻煩的吧。。不能說是最難。花一段時間做完了跟大家交流交流。

在線預覽點我github源碼點我

我ps掛了。看着他的預覽圖做的網頁,真是醉了。不過看他們做的出了一些問題,也還有百度給的一些坑。。看你們找全了嗎~

一。兩欄布局。

不知道大家是怎樣布局的。左邊固定,右邊自適應嗎?顯然都做成固定不太好吧。任務要求如下:

  • 整個頁面內容寬度固定,但頭部的藍色導航和瀏覽器寬度保持一致

他這么說這是全固定的意思?反正我是在左邊設置的23%的寬,右邊77%的寬,float+min-width的布局,算是布局還ok吧,放很大就很難看了。縮小出滾動條。但是這樣就不行了。這是某團隊的提交:

當我一縮小瀏覽器。就亂了,顯然右邊欄的min-width沒設。布局亂了。

這次布局主要是這個問題,我當時也被這個問題所困擾:

這是咋了。。header是設置的width 100%;但是下面的內容超出100%了。100%怎么會被超過呢??其實這個100%是相對於父元素的,追究到根,100%也就是瀏覽器的寬,如果沒設置的話。我瀏覽器寬1349px;然而下面的內容大於了這個值,下面的內容超過一屏,出來滾動條,然而上面的100%還是1349px。這就是上面這個例子的問題。

咋辦呢。

一種方法,把header放到內容里,顯然這里不可能。第二種,display:fiexd。然后也沒有這種需求。那咋辦。改布局唄。。。

先看這種方法咋布局的,左邊float,右邊margin-left左邊的寬。這是最簡單的左固定右自適應。然而的div是適應了。里面的內容沒寫適應。。超出div了。解決的方法就是這個div設置min-width,不能讓他很小了。然后里面所有的內容都得寫自適應,這樣你外層div變了,里層才能適應,而不是超出div。

我這里是怎么做的呢?開始說了。兩邊都是百分比,直接設置min-width,保持內容的wrapper總是100%寬。這樣就可以了。

二、自定義下拉框

百度給的下拉樣式是這樣的:,然后我瀏覽器是這樣的:,這就是需要自定義下拉框了。自定義下拉框怎么做呢?

這是我作品的截圖:

最重要的就是-webkit-appearance: none;這個屬性了。不僅可以清除本select的樣式還可以清楚下面百度的坑---同樣的自定義checkbox的樣式。我懶得給他定義了。。

這里border padding,形成外管,那個下拉框的箭頭用了圖片背景。。checkbox的基本相同。

三、hover中的border

這里每次hover加一個border咋辦。直接加boder?不行,這樣試試你就知道內容會”一動一動“的。這是怎么了。

多加了這幾px的border對於下面的10:00am來說就得移位。因為10:00am是margin-top定位的,每次加border都會下移。

解決方法有兩個,一個是hover之前給他一個透明的border。這樣hover就是改了border的顏色。所以不會移動。

二呢,是改變定位。讓內容不在margint-top,position:absolute。對於這種定位,你border愛變不變,反正跟我沒關系。。

四、table布局的空隙

table布局,一不注意就直接寫完了。。然后效果是這樣的:

能看到。如果相鄰的td元素都有border這個border就重了。怎么給他加空隙呢?我試了td加padding,tr加padding,td加margin,tr加margin。然而都不起作用。但是width可以起作用。這樣也不行阿。

width也不能讓他有空隙阿。

這就要上這兩個東西了border-collapse: separate;和border-spacing這是啥。table元素用的屬性,css2就支持了,只是我們不怎么用。

border-collapse 屬性設置表格的邊框是否被合並為一個單一的邊框,還是象在標准的 HTML 中那樣分開顯示。

 

border-spacing 屬性設置相鄰單元格的邊框間的距離(僅用於“邊框分離”模式)。

不多解釋了,大家親自試一下吧~效果呢是這樣的:

已經完美的分割開~

五、div滾動條

不知道是不是psd設計圖上面的東西,好多人給了div的滾動條,如下效果:

我作品里沒有做這個,我就提一下,用到屬性是overflow-y: auto;當然你得給這個div設置一個固定寬。要例子,在我fancy商城的socket.io的聊天室里,有這樣一個例子,聊天內容多了以后就有滾動條了。不能一直拉長網頁是吧~

六、css的tab切換

  • tab只需要實現樣式,有能力余力的同學可以嘗試實現不使用JavaScript的情況下,實現Tab切換

這是要求之一。tab切換呢,我沒做。就大體說一下吧。其實css的tab切換怎么辦呢,就是tab的顯示和隱藏的問題。但是css沒有點擊事件,怎么觸發顯示和隱藏呢(當然hover觸發就簡單多了)。這里css有偽類的選擇:

可以用到:focus,:checked等等。把標簽當作input,每次點擊就是一個focus,然后觸發關系選擇,選擇到下面相應的tab控制他的隱藏和顯示。:checked也是同樣的道理。

個人覺得是蠻麻煩的,就沒做。當然還是有不少大神做了的。大家可以參考一下他們的作品。

all over!

大體就需要注意這些,我的作品也還有一些細節沒處理好,大家共同學習進步。歡迎大家star和follow~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM