CSS案例-5.margin产品模块练习

效果1

相关数据

整体长:298px,高:415px

效果2

知识点

外边距margin

块级盒子水平居中

条件:

  • 必须有宽度
  • 左右外边距设为auto

三种写法:

  1. margin-left:auto;margin-right:auto;
  2. margin:auto;
  3. margin:0 auto;

清除元素的默认内外边距

css 复制代码
* {
  margin:0;
  padding:0;
}

外边距合并

相邻块元素垂直外边距合并

取margin-top和margin-bottom两个值中较大的值,称外边距塌陷。

嵌套块元素垂直外边距的合并(塌陷)

  • 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框
  • 父元素的上外边距会与子元素的上外边距发生合并
  • 合并后的外边距为两者中的较大者

解决方案

  1. 可以为父元素定义上边框 border-top:1px solid transparent;
  2. 可以为父元素定义上内边距 padding-top:1px;
  3. 可以为父元素添加overflow:hidden

盒子模型布局稳定性

width>padding>margin

效果1源码

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>产品模块练习</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      body {
        background-color: #f5f5f5;
      }
      a {
        text-decoration: none;
        color: #333;
      }
      .box {
        width: 298px;
        height: 415px;
        background-color: #fff;
        margin: 50px auto;
      }
      img {
        /* 宽度和父级元素一样宽 */
        width: 100%;
      }
      .review {
        height: 80px;
        font-size: 14px;
        /* 没有width,所以不会撑开盒子 */
        padding: 0 28px;
        margin-top: 30px;
      }
      .praise {
        font-size: 12px;
        color: #a6a6a6;
        margin-top: 20px;
        padding: 0 28px;
      }
      .info {
        margin-top: 8px;
        padding: 0 28px;
        font-size: 12px;
      }
      .info h4 {
        display: inline;
        font-weight: 400;
      }
      .price {
        display: inline-block;
        margin-left: 30px;
        padding-left: 10px;
        border-left: 1px solid #a6a6a6;
        color: #ff6700;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <img src="images/img.jpg">
      <p class="review">快递牛,整体很不错啦啦啦啦啦,很棒很给力啦啦啦啦</p>
      <p class="praise">来自于 117384532 的评价</p>
      <div class="info">
        <h4><a href="#">Redmi AirDots真无线蓝...</a></h4>
        <span class="price">99.9元</span>
      </div>
    </div>
  </body>
</html>

效果2源码

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>margin模块列表练习</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .module {
            width: 300px;
            height: 170px;
            margin: 50px auto;
            border: 1px solid #d7d7d7;
        }
        .module h3 {
            height: 32px;
            font-size: 14px;
            font-weight: 400;
            border-bottom: 1px dotted #d7d7d7;
            padding-left: 15px;
            line-height: 32px;
        }
        .bottom {
            padding-left: 20px;
            margin-top: 10px;
            font-size: 12px;
        }
        .bottom ul li {
            height: 23px;
            list-style: none;
        }
        .bottom ul li a {
            text-decoration: none;
            color: #333;
        }
        .bottom ul li a:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="module">
        <h3>品优购快报</h3>
        <div class="bottom">
            <ul>
                <li><a href="#">【特惠】爆款耳机5折秒!</a></li>
                <li><a href="#">【特惠】母亲节,健康好礼低至5折!</a></li>
                <li><a href="#">【特惠】爆款耳机5折秒!</a></li>
                <li><a href="#">【特惠】9.9一杯奶茶!</a></li>
                <li><a href="#">【特惠】智能空调立省1000!</a></li>
            </ul>
        </div>
    </div>
</body>
</html>

用到的图片

相关推荐
cs_dn_Jie23 分钟前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic1 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿1 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具2 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
qq_390161772 小时前
防抖函数--应用场景及示例
前端·javascript
John.liu_Test3 小时前
js下载excel示例demo
前端·javascript·excel
Yaml43 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事3 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶3 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo3 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx