模仿淘宝电脑端购物车页面

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="cart.css">
</head>
<body>
<script>/*一个页面内可能有多家店铺,所以最外层盒子用shops命名,
         第二层内放置两个店铺盒子和结算盒子
         第三层是店铺内部,店铺内部首先有一个头部盒子,头部盒子中有【多选框、店铺名、天猫图、旺旺图】,既然是同一行,那么用span定义
         第三层由一个头部盒子和n个条目盒子组成
         第四层是条目内部,由多选框、商品图片、商品描述、商品属性、商品价格、商品数量、商品总价、 操作选项
         第五层是商品描述内部,由纯文本和小图标组成
         第五层是商品属性内部,由各种属性盒子组成
         第五层是商品价格内部,由建议价(建议价要用del划线删除)和现价盒子组成
         第五层是商品数量内部,由减、文本框、加一共3个span组成
         第五层是操作选项内部,由移入收藏夹操作与删除操作盒子组成

         设计完样式后考虑js内容,首先数量框限制只能输入数字
         其次数量框改变总金额也要跟着改变,这一步可以一起写进判断数量的函数里
         想要改变金额要先设法拿到金额,这一步的直觉做法是在price2里设置id拿,但真正开发中往往是设置一个隐藏域real_price,从隐藏域中拿价格
         删除操作通过调用parentnode方法直达item父节点再调用remove方法删除
         */
         function modifyCount(thisNode){
             var userInput=thisNode.value;
             var regExp=/^[1-9][0-9]{0,1}$//*表示第一位数字范围为1-9最低出现一次,第二位数字0-9最低出现0次最高出现1*/
             var ok=regExp.test(userInput);
             if(!ok){
                 thisNode.value=1;
             }else{
                 if(thisNode.value>64){
                     thisNode.value=1;
                 }
             }

             var real_price = document.getElementById("real_price").value
             var now_total_price=real_price*thisNode.value;
             var total_price= document.getElementById("item_total_price")
             total_price.innerHTML="¥"+now_total_price
         }

         function del(thisNode){
             var ok = window.confirm("confirm that you want to remove it.")
             if(ok){
                 thisNode.parentNode.parentNode.remove()
             }
         }
         </script>
<!--第一层-->
<div class="shops">
    <!--第二层独立店铺页-->
    <div class="shop">
        <!--第三层店铺头部-->
        <div class="header">
            <input type="checkbox" class="shop_checkbox">
            <span class="shop_icon"></span>
            <span class="shop_name">跑圈沙雕好物</span>
            <span class="shop_wangwang_icon"></span>
        </div>
        <!--第三层店铺条目-->
        <div class="item">
            <!--第四层条目内部复选框-->
            <div class="item_checkbox">
                <input type="checkbox">
            </div>
            <!--第四层条目内部商品图片-->
            <div class="item_image">

            </div>
            <!--第四层条目内部商品描述盒子-->
            <div class="item_description">
                <!--第五层商品描述盒子内部文本-->
                <div class="item_text">
                    21赛季新款F1迈凯伦McLaren车队短袖T恤Polo里卡多诺里斯赛车服111
                </div>
                <!--第五层商品描述盒子内部图标-->
                <div class="item_description_icon">
                    <span> </span>
                    <span> </span>
                    <span> </span>
                </div>
            </div>
            <!--第四层商品属性-->
            <div class="sku">
                <!--第五层商品属性内部颜色-->
                <div class="sku_color">
                    21迈凯伦海湾t恤
                </div>
                <!--第五层商品属性内部尺寸-->
                <div class="sku_size">
                    M号
                </div>
            </div>
            <!--第四层商品价格-->
            <div class="price">
                <!--第五层商品价格内部建议价-->
                <div class="price1">
                    <del>¥198</del>
                </div>
                <!--第五层商品价格内部现价-->
                <div class="price2">
                    ¥98
                </div>
                <!--单价隐藏域-->
                <input type="hidden" id="real_price" value="98">
            </div>
            <!--第四层商品数量 -->
            <div class="number">
                <span class="minus">-</span>
                <input type="text" value="1" onkeyup="modifyCount(this)">
                <span class="minus">+</span>
            </div>
            <!--第四层商品总价-->
            <div  id="item_total_price" class="item_total_price">
                ¥98
            </div>
            <!--第四层操作选项-->
            <div class="operation">
                <!--第五层操作选项内部移入收藏夹操作-->
                <div class="moveFavorite">
                    移入收藏夹
                </div>
                <!--第五层操作选项内部删除操作-->
                <div class="del" onclick="del(this)">
                    删除
                </div>
            </div>
        </div>

        <div class="item">
            <!--第四层条目内部复选框-->
            <div class="item_checkbox">
                <input type="checkbox">
            </div>
            <!--第四层条目内部商品图片-->
            <div class="item_image">

            </div>
            <!--第四层条目内部商品描述盒子-->
            <div class="item_description">
                <!--第五层商品描述盒子内部文本-->
                <div class="item_text">
                    21赛季新款F1迈凯伦McLaren车队短袖T恤Polo里卡多诺里斯赛车服
                </div>
                <!--第五层商品描述盒子内部图标-->
                <div class="item_description_icon">
                    <span> </span>
                    <span> </span>
                    <span> </span>
                </div>
            </div>
            <!--第四层商品属性-->
            <div class="sku">
                <!--第五层商品属性内部颜色-->
                <div class="sku_color">
                    21迈凯伦海湾t恤
                </div>
                <!--第五层商品属性内部尺寸-->
                <div class="sku_size">
                    M号
                </div>
            </div>
            <!--第四层商品价格-->
            <div class="price">
                <!--第五层商品价格内部建议价-->
                <div class="price1">
                    <del>¥198</del>
                </div>
                <!--第五层商品价格内部现价-->
                <div class="price2">
                    ¥98
                </div>
            </div>
            <!--第四层商品数量 -->
            <div class="number">
                <span class="minus">-</span>
                <input type="text" value="1">
                <span class="minus">+</span>
            </div>
            <!--第四层商品总价-->
            <div class="item_total_price">
                ¥98
            </div>
            <!--第四层操作选项-->
            <div class="operation">
                <!--第五层操作选项内部移入收藏夹操作-->
                <div class="moveFavorite">
                    移入收藏夹
                </div>
                <!--第五层操作选项内部删除操作-->
                <div class="del">
                    删除
                </div>
            </div>
        </div>
    </div>




    <div class="shop">
        <!--第三层店铺头部-->
        <div class="header">
            <input type="checkbox" class="shop_checkbox">
            <span class="shop_icon"></span>
            <span class="shop_name">电子爱好者之家</span>
            <span class="shop_wangwang_icon"></span>
        </div>
        <!--第三层店铺条目-->
        <div class="item">
            <!--第四层条目内部复选框-->
            <div class="item_checkbox">
                <input type="checkbox">
            </div>
            <!--第四层条目内部商品图片-->
            <div class="item_image">

            </div>
            <!--第四层条目内部商品描述盒子-->
            <div class="item_description">
                <!--第五层商品描述盒子内部文本-->
                <div class="item_text">
                    STM32F103电动智能小车套件壁障遥控机器人开发板模块配件组套装
                </div>
                <!--第五层商品描述盒子内部图标-->
                <div class="item_description_icon">
                    <span></span>
                    <span></span>
                    <span></span>
                </div>
            </div>
            <!--第四层商品属性-->
            <div class="sku">
                <!--第五层商品属性内部颜色-->
                <div class="sku_color">
                    颜色分类:高配版 智能小车套件 送资料[(7种功能看详情)]
                </div>
                <!--第五层商品属性内部尺寸-->
                <div class="sku_size">
                    M号
                </div>
            </div>
            <!--第四层商品价格-->
            <div class="price">
                <!--第五层商品价格内部建议价-->
                <div class="price1">
                    <del>¥198</del>
                </div>
                <!--第五层商品价格内部现价-->
                <div class="price2">
                    ¥198
                </div>
            </div>
            <!--第四层商品数量 -->
            <div class="number">
                <span class="minus">-</span>
                <input type="text" value="1">
                <span class="minus">+</span>
            </div>
            <!--第四层商品总价-->
            <div class="item_total_price">
                ¥198
            </div>
            <!--第四层操作选项-->
            <div class="operation">
                <!--第五层操作选项内部移入收藏夹操作-->
                <div class="moveFavorite">
                    移入收藏夹
                </div>
                <!--第五层操作选项内部删除操作-->
                <div class="del">
                    删除
                </div>
            </div>
        </div>
    </div>

    <div class="checkout">

    </div>
</div>
</body>
</html>

CSS代码

/*使用前别忘了在html页面link上css

/*
把大小相等的图片统一设置
 */
.shop_icon,.shop_wangwang_icon,.item_description_icon span{
    width: 10px;
    height: 10px;
    background-color: antiquewhite;
    /*以块的形式展示出来,但不会独占行*/
    display:inline-block;
}
/*设置第一层所有店铺样式*/
.shops{
}
/*relative指相对于元素本身的位置,absolute指相对于距离最近的非static父元素的位置*/
/*设置第二层单个店铺名和图标对齐*/
.shop_name{
    position: relative;
    top: 1px;
}

.shop{
    margin-bottom: 30px;
}

/*店铺名和图标之间距离的调整*/
.shop_checkbox,.shop_icon,.shop_name,.shop_wangwang_icon{
    /*外补丁,直接的效果是将元素向某个方向增加x个px的间隔*/
    margin-right: 3px;
}

/*到此处发现页面所有内容都是块级排放,但是每件商品盒子内部的小盒子我们需要设置横向排放*/
.item{
    display: flex;
    border: 1px solid #DAD9D9;
    /*margin是控制盒子跟外界的距离 ,padding是控制内容跟盒子的距离,此处控制item内部所有内容和盒子的距离*/
    padding: 13px;
}

 .item_image{
      width:100px;
     height: 100px;
     background-color: antiquewhite;
 }

.header{
    /*margin是控制盒子跟外界/盒子的距离 ,padding是控制内容跟盒子的距离,此处控制店铺名header和商品item之间的距离*/
    margin-bottom: 15px;
}

.item_checkbox,.item_image{
    margin-right: 10px;
}
/*弹性布局,且呈纵向排列*/
.item_description{
    display: flex;
    flex-direction: column;
    width: 400px;
    justify-content: space-between;
    margin-right: 50px;
}

.sku{
    width: 250px;
    margin-right: 50px;
}

.price{
    margin-right: 100px;
    font-weight: 600;
}

.price1{
    color: #8A8989;
}

.number input{
    width:30px;
    height: 25px;
    /*数量框中的数字居中*/
    text-align: center;
}

.number,.item_total_price{
    margin-right: 80px;
}

.item_total_price{
    font-weight: 600;
    color: #F31919;
}

.number{
    background-color: #DAD9D9;
    height: 33px;
}
/*能点击的“按钮”鼠标悬停时设置小手*/
.plus:hover,.minus:hover,.del:hover{
    color: #F31919;
    cursor:pointer;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值