HTML+CSS項目——模擬京東網頁


項目准備

項目名稱:京東商城

項目描述:京東首頁公共部分的頭部和尾部制作,京東首頁中間部分。

設計目標

  • 保證瀏覽器 ie7及以上, 火狐, 360, safari,chrome等。誰讓我再測ie6,就跟誰急。。

  • 熟悉CSS+DIV布局,頁面的搭建工作

  • 了解常用電商類網站的布局模式

  • 為后期京東移動端做鋪墊

幾點思考

(1)開發工具 sublime 、fireworks(ps)、各種瀏覽器(ie6.7 要測看心情)

(2)CSS Rest 類庫,為跨瀏覽器兼容做准備(也可以直接運用jd網站的初始化)

normalize.css 
只是一個很小的CSS文件,但它在默認的HTML元素樣式上提供了跨瀏覽器的高度一致性。
相比於傳統的CSS reset,Normalize.css是一種現代的、為HTML5准備的優質替代方案。
Normalize.css現在已經被用於Twitter Bootstrap、HTML5 Boilerplate、GOV.UK、Rdio、CSS Tricks 以及許許多多其他框架、工具和網站上。 你值得擁有。。 - 保護有用的瀏覽器默認樣式而不是完全去掉它們 - 一般化的樣式:為大部分HTML元素提供 - 修復瀏覽器自身的bug並保證各瀏覽器的一致性 - 優化CSS可用性:用一些小技巧 - 解釋代碼:用注釋和詳細的文檔來

(3)技術棧

HTML5 結構 + CSS3  布局

(4)低版本瀏覽器 單獨制作一個跳轉頁面 (都是孩子,也舍不得打,舍不得扔)

https://h5.m.jd.com/dev/3dm8aE4LDBNMkDfcCaRxLnVQ7rqo/index.html

目錄說明

要實現結構和樣式相分離的設計思想。 根目錄下有這4個文件(目錄)。

 項目開始

通用部分

1.icon圖標

標題上的小圖標

 右鍵另存為到網站根目錄下。

引入icon圖標

代碼:  <link rel="shortcut icon" href="favicon.ico"  type="image/x-icon"/>       

注意:

  1. 它不是iconfont字體。

  2. 代碼位置是放到 head 標簽中間。

  3. 后面的type="image/x-icon" 屬性可以省略。

  4. 為了兼容性,請將favicon.ico 這個圖標放到根目錄下。

轉換icon圖標

我們可以自己做圖片,轉換為 ico圖標,以便放到我們站點里面。 http://www.bitbug.net/

2.網站優化三大標簽

SEO是由英文Search Engine Optimization縮寫而來,中文意譯為“搜索引擎優化”!

SEO是指通過對網站進行站內優化、網站結構調整、網站內容建設、網站代碼優化等)和站外優化,從而提高網站的關鍵詞排名以及公司產品的曝光度。

簡單的說就是,把產品做好,搜索引擎就會介紹客戶來。

我們現在階段主要進行站內優化。網站優化,我們應該要懂。。。

①網頁title 標題

title具有不可替代性,是我們的內頁第一個重要標簽,是搜索引擎了解網頁的入口,和對網頁主題歸屬的最佳判斷點。

建議:

首頁標題:網站名(產品名)- 網站的介紹

例如:

京東(JD.COM)-綜合網購首選-正品低價、品質保障、配送及時、輕松購物!

小米商城 - 小米5s、紅米Note 4、小米MIX、小米筆記本官方網站

②Description 網站說明

對於關鍵詞的作用明顯降低,但由於很多搜索引擎,仍然大量采用網頁的MATA標簽中描述部分作為搜索結果的“內容摘要”。 就是簡要說明我們網站的主要做什么的。 我們提倡,Description作為網站的總體業務和主題概括,多采用“我們是…”“我們提供…”“×××網作為…”“電話:010…”之類語句。

京東網:

<meta name="description" content="京東JD.COM-專業的綜合網上購物商城,銷售家電、數碼通訊、電腦、家居百貨、服裝服飾、母嬰、圖書、食品等數萬個品牌優質商品.便捷、誠信的服務,為您提供愉悅的網上購物體驗!" />

注意:

  1. 描述中出現關鍵詞,與正文內容相關,這部分內容是給人看的,所以要寫的很詳細,讓人感興趣, 吸引用戶點擊。

  2. 同樣遵循簡短原則,字符數含空格在內不要超過 120 個漢字。

  3. 補充在 title 和 keywords 中未能充分表述的說明.

  4. 用英文逗號 關鍵詞1,關鍵詞2

<meta name="description" content="小米商城直營小米公司旗下所有產品,囊括小米手機系列小米MIX、小米Note 2,紅米手機系列紅米Note 4、紅米4,智能硬件,配件及小米生活周邊,同時提供小米客戶服務及售后支持。" />

③Keywords 關鍵字

Keywords是頁面關鍵詞,是搜索引擎關注點之一。Keywords應該限制在6~8個關鍵詞左右,電商類網站可以多一點。

京東網:

 <meta name="Keywords" content="網上購物,網上商城,手機,筆記本,電腦,MP3,CD,VCD,DV,相機,數碼,配件,手表,存儲卡,京東" />

小米網:

<meta name="keywords" content="小米,小米6,紅米Note4,小米MIX,小米商城" />

3.火狐瀏覽器截圖工具

用火狐瀏覽器的截圖工具截取網頁圖片

點擊截圖按鈕——截取整個網頁——保存,稍后可用ps來截取我們需要的圖片

頂部(快捷菜單)所用知識點

1.頭部制作

①版心:

用ps量出網頁的版心,修改css代碼,定義版心寬度並居中

②廣告條部分

分析:一個div里面套一個版心,版心中有一個圖片形式的鏈接(a標簽+img標簽/背景圖片,如果使用背景圖片的方法要先將a轉換為塊級元素,設置高度,再填充背景圖片)

ps量出高度,修改css樣式,編寫HTML結構

 

2.快速導航欄

①寫好結構和基本樣式

 分析:一個div(底部有邊框),里面套一個版心div,一部分文字(ul)向左浮動,一部分文字(ul)向右浮動;最后引入字體圖標

<!-- 快速導航欄 -->
<div class="shortcut">
    <div class="w">
        <ul class="fl city">
            <li>北京</li>
        </ul>
        <ul class="fr">
                <li>
                    <a href="#">你好,請登錄</a>
                    <a href="#" class="f10">免費注冊</a>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#">我的訂單</a>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#">我的京東</a>
                    <i></i>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#">京東會員</a>
                </li>

                <li class="space"></li>
                <li>
                    <a href="#">企業采購</a>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#">客戶服務</a>
                    <i></i>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#">網站導航</a>
                    <i></i>
                </li>
                <li class="space"></li>
                <li>
                    <a href="#" class="mobile">手機京東
                     <img src="images/mobile.png" height="60" width="60" alt="">
                    </a>
                </li>
            </ul>
    </div>
</div>

 css:

/*浮動的公共類*/
.fl{
    float: left;
}
.fr{
    float: right;
}
a{
    text-decoration: none; /*取消鏈接默認下划線*/
    font-size: 12px;
    color: #999;
}
a:hover { /*鼠標放到鏈接上的顏色*/
    color: #c81623;
}
ul{
    list-style: none;/*清除列表樣式*/
    margin: 0; /*清除內外邊距*/
    padding: 0;
}
body{
    background-color: #f6f6f6; /*整個頁面的背景顏色*/
}
/*快速導航欄部分*/
.shortcut{
    height: 30px; /*沒有高度撐開,不會顯示*/
    line-height: 30px; /*行高=容器高,可以使字體居中*/
    background-color: #e3e4e5;
    border-bottom: 1px solid #ddd;
    font-size: 12px; /*導航欄中字體大小*/
    color: #999; /*字體顏色*/

}
.city{ /*定義“北京”的左外邊距,給logo倒出位置*/
    margin-left: 200px;
}
.shortcut li{ /*列表本來是豎着排列,浮動后變為一行*/
    float: left;
}
.space{ /*間隔的小豎線*/
    width: 1px;
    height: 10px;
    background-color: #ccc;
    margin:10px 12px 0;
}
.f10{ /*常用的紅色單獨定義出來*/
    color: #f10215;
}

 ②引入字體圖標:

 下載字體圖標地址:https://icomoon.io/

    

  點擊這個按鈕,選擇想要的圖標,進行下載~

    將下載好的壓縮包解壓,font文件夾下得到下面4個文件,放入項目的fonts文件夾中。

 

引入字體圖標步驟:

  1)打開壓縮包中的demo.html。復制想要的圖標到 標簽中,將 標簽插入到需要字體圖標的位置。

  2)在css文件中聲明字體圖標:將壓縮包中的style.css前面的聲明代碼復制到我們的css文件中,修改成正確的路徑。

  

  3)調用字體圖標。

  

   font-style:normal ,去掉 i 默認的傾斜樣式

  ③手機京東下面的二維碼

  

      如果直接在手機京東后加圖片,會把手機京東這幾個字擠下來

  

   解決辦法:給它們開啟定位

  

   

3.logo部分

 分析:

 ①左邊的logo

 ②搜索框

搜索欄和按鈕之間會有縫隙,按鈕較小時會被擠下來,讓他們都浮動即可解決

 ③購物車

 ④關鍵詞

 ⑤下邊的小導航

 ⑥右下角小廣告

知識點:

 

 

 

<!-- 頭部中間部分開始 -->
<div class="w middle">
            <div class="logo">
            <h1>  <!-- 提高權重  便利於搜索引擎優化 -->
                <a href="#"></a>  
            </h1>
        </div>
        <!-- 搜索 -->
        <div class="form">
            <input type="text" placeholder="筆記本電腦">
            <!-- 按鈕的意思 雙標簽 等價於 <input type="button" value=""> -->
            <button> <i></i> </button>  
        </div>
        <!-- 購物車 -->
        <div class="shopCar">
            <i></i><a href="#" class="f10">我的購物車</a> <span>0</span>
        </div>
        <!-- 關鍵詞 -->
        <div class="hotwords">
            <a href="#" class="f10">199減100</a>
            <a href="#">鼠標試用</a>
            <a href="#">農資7折</a>
            <a href="#">低至29元</a>
            <a href="#">抽獎贏空調</a>
            <a href="#">記憶棉</a>
            <a href="#">坐墊</a>
            <a href="#">1分錢買油</a>
            <a href="#">智能手表</a>
        </div>
        <!-- 小導航部分 -->
        <div class="navitems">
            <ul>
                <li><a href="#">秒殺</a></li>
                <li><a href="#">優惠券</a></li>
                <li><a href="#">閃購</a></li>
                <li><a href="#">拍賣</a></li>
                <li class="space"></li>
                <li><a href="#">服裝城</a></li>
                <li><a href="#">京東超市</a></li>
                <li><a href="#">生鮮</a></li>
                <li><a href="#">全球購</a></li>    
                <li class="space"></li>
                <li><a href="#">京東金融</a></li>
            </ul>
            
        </div>
        <!-- 超級日部分 -->
        <div class="super">
            <a href="#"><img src="images/super.png" height="40" width="190" alt=""></a>
        </div>
</div><!-- 頭部中間部分結束 -->

  css:

/*頭部中間部分開始*/
.middle {
    height: 140px;
    position: relative;
}
.logo {
    position: absolute;
    top: -30px;
    left: 0;
    box-shadow: 0px -10px 10px rgba(0,0,0,.3);
}
.logo a {
    display: block;
    width: 190px;
    height: 170px;
    background: #fff url(../images/logo.png) no-repeat;
}
/* 搜索框 */
.form {
    width: 550px;
    height: 35px;
    position: absolute;
    top: 25px;
    left: 320px;
}
.form input {
    width: 495px;
    height: 33px;
    border: 1px solid #f10215;
    float: left;
    font-size: 14px;
    padding-left:3px;
}
.form button {
    width: 50px;
    height: 35px;
    background-color: #f10215;
    float: left;
}
.form button i {
    font-family: 'icomoon';
    font-style: normal;
    color: #fff;
}
/* 購物車 */
.shopCar {
    width: 188px;
    height: 33px;
    line-height: 33px;
    border: 1px solid #ccc;
    position: absolute;
    top: 25px;
    right: 95px;
    background-color: #fff;
    text-align: center;
    color: #f10215;

}
.shopCar i {
    font-family: 'icomoon';
    margin-right: 5px;
    font-style: normal;
}
.shopCar span {
    width: 15px;
    height: 15px;
    background-color: #f10215;
    border-radius: 50%;
    position: absolute;  /* 加了絕對定位 固定定位 浮動的行內元素, 可以不用轉換,直接給寬度和高度 */
    top: 5px;
    right: 30px;
    font-size: 12px;
    color: #fff;
    line-height: 15px;
}
/* 關鍵詞模塊 */
.hotwords {
    position: absolute;
    top: 68px;
    left: 320px;
}
/* 小導航模塊 */
.navitems {
    width: 770px;
    height: 40px;
    position: absolute;
    bottom: 0;
    left: 200px;
    line-height: 40px;
}
.navitems li {
    float: left;
    margin-left: 30px;
}
.navitems li a {
    font-size: 16px;
    font-weight: 700; 
    color: #555;
}
.navitems li a:hover {
    color: #f10215;
    }
.navitems .space {
    /* margin-top: 15px;
    margin-left:15px;
    margin-right: -15px; */
    margin:15px -15px 0 15px;
}
/* 超級日 */
.super {
    position: absolute;
    bottom: 10px;
    right: 0;
}
/*頭部中間部分結束*/

底部

 分析:footer標簽,里面兩個div

①多快好省部分

品類齊全···文字部分直接給margin-left,‘多’(使用雪碧圖)定位到文字左邊,不占空間

text-indent  設置負值,可以隱藏文字,一般是-999px。

li浮動后,脫離文檔流,高度坍塌,給父元素清除浮動即可

②購物指南部分

兩個部分,‘購物指南’那五欄整體左浮動,右邊‘京東自營覆蓋區縣’部分右浮動

sublime快捷鍵:快速到達某行,ctrl + g,輸入行數,回車

‘購物指南部分’用dd、dl標簽實現

box-sizing:border-box;(稍后補充相關知識點)

中間部分

准備工作:

頭部和底部屬於公共樣式,在css文件夾中再新建一個index.css,寫中間部分css樣式

模塊划分:

首先一個大盒子,給一個高度480px

大盒子中有左中右三個盒子

①左側分類部分

使用ul、li實現

撐開文字整體與盒子間上下左右的間距:

給ul設置上下padding

給li設置左右padding

撐開每行文字間的間距:

給li里的a設置margin

撐開行與行文字間的間距:

給li指定line-height

鼠標放置變色:

li:hover

a:hover

②中間banner部分

上邊一個大盒子,大盒子下面並排兩個小盒子,‘品’型。

箭頭垂直居中:

transform : translateY(-50%)

 

bug:左邊的箭頭跑出去了,稍后解決

圖片上翻頁的小圓點:

用ul,li + 浮動實現

③右側盒子模塊

模塊划分:

3個盒子組成,分別是登錄、促銷公告和服務模塊。

登錄模塊:

上邊登錄注冊部分+下部分(兩個按鈕)

上部分:寬度就是文字部分寬度,給圖片絕對定位

促銷公告模塊:

 

 

樣式沒生效可能是權重不夠的問題。

促銷下的紅線用一個單獨的div底邊框+定位實現

下半部分用ul+li實現

服務模塊:

 

用ul和li實現,每個li有個邊框。

 

給li設置浮動解決框框排成一豎排的問題

每個li盒子的寬度給多了,會擠到下一行,解決辦法:給ul的寬度調大一些,

使用overflow:hidden將右側和下側多余部分隱藏

④分類左側的彈出廣告部分

鼠標放到廣告條上,顯示一張大的廣告圖片

廣告條在左側分類大盒子里,再定位到左邊

動畫效果:過渡(一開始大圖片寬度設置為0,鼠標放上去大圖片寬度恢復)

 

 

完整代碼地址:https://github.com/superjishere/jdtest


免責聲明!

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



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