千里溃的技术站

技术改变生活
关心代码质量和用户体验
  1. 首页
  2. 前端
  3. 正文

多方法解决设置width:100%再设置margin或padding溢出的问题

2022年9月18日 4185点热度 2人点赞 0条评论

当设置了父元素的宽度,子元素设置宽度为100%后再在加上子元素上添加padding或margin值就会溢出。举个例子:

<!-- 示例 -->

<!-- html -->
<div class="parent">
    <div class="child"></div>
</div>

<!-- css -->
.parent {
    width: 500px;
    height: 50px;
    background-color: green;
    border: 1px solid #E74D4D;
}
.child {
    width: 100%;
    height: 30px;
    margin: 20px;
    background-color: pink;
}

这是因为设置了width: 100%;后已经将父元素占满,再添加margin值就会溢出(默认溢出值为左侧的margin值)

解决方法:

  1. 父元素设置padding
<!-- 弊端是增加了parent占用的宽度 -->
.parent {
      width: 500px;
      height: 50px;
      padding: 20px;
      background-color: green;
      border: 1px solid #E74D4D;
}
.child {
      width: 100%;
      height: 30px;
      background-color: pink;
}
  1. [推荐]利用css3中的box-sizing: border-box; 属性解释链接设置他以后,相当于以怪异模式解析,border和padding全会在你设置的宽度内部。
.parent {
      width: 500px;
      height: 50px;
      padding:20px;
      background-color: green;
      border: 1px solid #E74D4D;
      box-sizing: border-box;
}
.child {
      width: 100%;
      height: 30px;
      background-color: pink;
}
  1. 子元素外添加一个div
<div class="parent">
      <div class="child2">    <!-- 设置margin: 20px; -->
          <div class="child"></div>
      </div>
</div>
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年9月18日

hepeichun

人类改变世界,技术改变生活!

点赞
< 上一篇

hepeichun

人类改变世界,技术改变生活!

最新 热点 随机
最新 热点 随机
解决Windows无法访问\\TOWER 无法访问SMB共享的问题 多方法解决设置width:100%再设置margin或padding溢出的问题 swoole Windows 开发(swoole-cli 开发 hyperf) Go 打包静态资源(文件或文件夹)到二进制 30个高效开发方法🔥 uniapp swiper组件current属性动态赋值无效问题的探究
uniapp swiper组件current属性动态赋值无效问题的探究 30个高效开发方法🔥 Go后台守护进程运行设计思路 多方法解决设置width:100%再设置margin或padding溢出的问题 Go 打包静态资源(文件或文件夹)到二进制 PHP依赖注入和控制反转
标签聚合
依赖注入 ffmpeg DI swoole hyperf PHP

COPYRIGHT © 2021-2022 hepeichun.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

皖ICP备15003431号-2

皖公网安备34010402703848号