使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题


Posted in HTML / CSS onJune 28, 2016

有时我们会给页面的元素(比如div)设置个固定的高度或宽度。但如果给这个div又设置了内边距或者边框的话,那么这个div就会被撑大。也就是其实际的尺寸变成了:设置的宽高尺寸+内边距+边框。
这样就有可能对我们的布局造成影响,如果不想让内边距和边框影响到我们设置的固定尺寸,可以借助 box-sizing 这个css属性来实现。

1,box-sizing 属性介绍
box-sizing 允许我们以特定的方式定义匹配某个区域的特定元素。

CSS Code复制内容到剪贴板
  1. box-sizing: content-box|border-box|inherit;  
描述
content-box 这是由 CSS2.1 规定的宽度高度行为。 宽度和高度分别应用到元素的内容框。 在宽度和高度之外绘制元素的内边距和边框。
border-box 为元素设定的宽度和高度决定了元素的边框盒。 就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。 通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
inherit 规定应从父元素继承 box-sizing 属性的值。

2,设置元素内容尺寸(box-sizing:content-box)
content-box 是 box-sizing 属性的默认值。当元素的box-sizing是content-box的时候,我们给元素设置的宽度、高度实际上是设置这个元素内容的宽度、高度。而元素的内边距和边框会在宽度和高度之外绘制。

比如下面样例,我们设置宽高尺寸为:200px * 34px

CSS Code复制内容到剪贴板
  1. <style>   
  2.     .form-control {   
  3.           width200px;   
  4.           height34px;   
  5.           padding6px 12px;   
  6.           line-height: 1.42857143;   
  7.           color#555555;            
  8.           border1px solid #cccccc;   
  9.           border-radius: 4px;   
  10.     }   
  11. </style>   
  12. <input class="form-control" type="text" placeholder="Email地址">  

但加上内边距和边框后,输入框的实际尺寸变成:226px * 48px
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

3,设置元素边框盒尺寸(box-sizing:border-box)
当元素的 box-sizing 是 border-box 的时候,我们给元素设置的宽度、高度实际上是设置这个元素边框盒的宽度、高度。也就是说内边距、边框都是在这个内部绘制,而不会把元素撑开。
还是同样的样例,设置为border-box后:

CSS Code复制内容到剪贴板
  1. <style>   
  2.     .form-control {   
  3.           width200px;   
  4.           height34px;   
  5.           box-sizing: border-box;   
  6.           padding6px 12px;   
  7.           line-height: 1.42857143;   
  8.           color#555555;            
  9.           border1px solid #cccccc;   
  10.           border-radius: 4px;   
  11.     }   
  12. </style>   
  13. <input class="form-control" type="text" placeholder="Email地址">  

不管内边距和边框设置是多少,输入框尺寸固定是:200px * 34px
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

HTML / CSS 相关文章推荐
使用CSS3代码绘制可爱的Hello Kitty猫
Aug 03 HTML / CSS
css3圆角边框和边框阴影示例
May 05 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
Html5实现二维码扫描并解析
Jan 20 HTML / CSS
HTML块级标签汇总(小篇)
Jul 13 HTML / CSS
五分钟学会HTML5的WebSocket协议
Nov 22 HTML / CSS
Html5 video标签视频的最佳实践
Feb 26 HTML / CSS
浅析HTML5 meta viewport参数
Oct 28 HTML / CSS
z-index不起作用
Mar 31 HTML / CSS
奇妙的 CSS shapes(CSS图形)
Apr 05 HTML / CSS
CSS实现五种常用的2D转换
Dec 06 HTML / CSS
老生常谈CSS中的长度单位
Jun 27 #HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
Jun 23 #HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
Jun 20 #HTML / CSS
CSS3实现3D翻书效果
Jun 20 #HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
Jun 16 #HTML / CSS
CSS3实现翘边的阴影效果的代码示例
Jun 13 #HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
Jun 13 #HTML / CSS
You might like
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
基于node.js的快速开发透明代理
2010/12/25 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
《三亚落日》教学反思
2014/04/26 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
2016年五一促销广告语
2016/01/28 职场文书