HTML + CSS 连载 | 21 - 盒子模型小米(下)

html+css.jpeg

一、实现小米官网首页的商品 item

第五步:增加商品描述并设置样式

商品标题下面是商品的描述信息,这里我们使用 p 元素来表示,在 HTML 页面中添加 p 元素,具体 HTML 页面的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="./css/reset.css">
  <style>
    .item {
      display: inline-block;
      width: 234px;
      height: 300px;
      padding: 20px 0px;

      background-color: #fff;
      box-sizing: border-box;

      /*设置img子元素居中,img 时行内级元素*/
      text-align: center;
    }

    .item img {
      width: 160px;
      height: 160px;
    }

    .item .title {
      /*上0px 右10px 下 2px 左10px*/
      margin: 0px 10px 2px;
    }
  </style>
</head>
<body>
  <div>
    <a class="item" href="">
      <img src="../images/earphones.webp" alt="">
      <h3 class="title">Readmi Buds 5</h3>
      <p class="desc">46dB深度降噪丨12.4mm镀钛动圈丨40小时超长续航</p>
    </a>
  </div>
</body>
</html>

image.png

通过浏览器的检查工具查看商品描述信息的样式:

image.png

新增一个商品描述信息的 CSS 选择器,并在这里设置文字的颜色以及外边距

.item .desc {
  color: #b2b2b2;
  margin: 0px 10px 10px;
}

image.png

通过与原样式的对比,我们这里的商品描述信息占据了两行,因为我们应该设置让他们在一行显示,多处的内容可以通过省略号表示,具体 CSS 代码如下:

.item .desc {
  color: #b2b2b2;
  margin: 0px 10px 10px;
  /*文字在一行显示*/
  white-space: nowrap;
  /*隐藏超时父元素的部分的内容*/
  overflow: hidden;
  /*使用省略号代替文字*/
  text-overflow: ellipsis;
}

在浏览器中打开该 HTML 页面,效果如下:

image.png

第六步:增加商品价格并设置样式

对于商品价格的表示我们可以使用 p 元素来实现,并且里面要嵌套一个 span 来包裹元素的价格,分别给它们添加一个 class 属性,具体 HTML 页面的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="./css/reset.css">
  <style>
    .item {
      display: inline-block;
      width: 234px;
      height: 300px;
      padding: 20px 0px;

      background-color: #fff;
      box-sizing: border-box;

      /*设置img子元素居中,img 时行内级元素*/
      text-align: center;
    }

    .item img {
      width: 160px;
      height: 160px;
    }

    .item .title {
      /*上0px 右10px 下 2px 左10px*/
      margin: 0px 10px 2px;
    }

    .item .desc {
      color: #b2b2b2;
      margin: 0px 10px 10px;
      /*文字在一行显示*/
      white-space: nowrap;
      /*隐藏超时父元素的部分的内容*/
      overflow: hidden;
      /*使用省略号代替文字*/
      text-overflow: ellipsis;
    }

  </style>
</head>
<body>
  <div>
    <a class="item" href="">
      <img src="../images/earphones.webp" alt="">
      <h3 class="title">Readmi Buds 5</h3>
      <p class="desc">46dB深度降噪丨12.4mm镀钛动圈丨40小时超长续航</p>
      <p class="price"><span class="discount">199</span>元</p>
    </a>
  </div>
</body>
</html>

在浏览器中打开该 HTML 页面,效果如下:

image.png

接下来给商品价格设置样式,我们可以通过浏览器的检查工具查看原商品价格的样式;包括字体颜色、大小以及边距等。

image.png

新增一个 CSS 选择器设置商品价格的样式

.item .price {
  color: #ff6700;
  text-align: center;
  margin: 0px 10px 14px;
  font-size: 14px;
}

在浏览器中打开 HTML 页面,效果如下:

image.png

第七步:微调各个元素之间的间距

在完成各个元素的样式设置之后,与原样式相比还需要进行一些微调,其实就是通过 paddingmargin 来调整元素的内外间距。

image.png

调整后的 CSS 代码如下:

/*其余不需要调整的代码已忽略*/
.item {
  padding: 24px 0px;
}
.item .title {
  /*上15px 右10px 下 2px 左10px*/
  margin: 15px 10px 2px;
}

在浏览器中再次打开 HTML 页面,效果如下:

image.png

可以看到各个元素的位置与原样式之间非常接近了。

第八步:hover 状态实现

最后,当鼠标悬浮在商品上的时候,商品 item 会出现一个阴影,这个阴影可以使用 box-shadow 来实现,如下图所示:

image.png

在实现阴影之前,我们可以先设置 text-align: center 来让盒子在页面中居中显示:

body {
  text-align: center;
}

在浏览器中打开 HTML 页面,可以看到已经居中显示了:

image.png

接着我们可以设置 box-shadow 来实现阴影,需要注意的是只有当 hover 状态时才会出现阴影,因此在书写 CSS 选择器的时候要使用到伪类 :hover,具体 CSS 选择器和代码如下所示:

.item:hover {
  box-shadow: 0 5px 10px 5px rgba(0, 0, 0, .2);
}

在浏览器中打开 HTML 页面,效果如下:

image.png

至此,我们已经实现了小米官网上的一个商品 item 的开发。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值