Boostrap入门准备之border-box

前言:在Boostrap学习过程中,尤其是网格系统的使用中,遇到了许多的坑,如果在学Boostrap之前,先做好一些准备功夫,就可以很好的避开这些坑了。现在,我们首先来说说border-box这个属性。

在Boostrap自带的css文件:boostrap.css中,有这样一段代码:

* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

这意味着在写代码时,这个属性将无处不在。那这个box-sizing:boder-box究竟是什么鬼呢?让我们先来看看一段很普通的代码:

<div class="outer" style="width:500px; height:500px; padding:100px; border:1px solid #000; background-color: yellow; ">
          <div class="inner" style="width:100%; height:100%; background-color:pink;"></div>
      </div>

运行代码得出:outer的高度为702px,宽度为702px,inner的宽度为500px,高度为500px;这里大家应该都没什么疑问吧,我们现在看看另外一段代码:

* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
<div class="outer" style="width:500px; height:500px; padding:100px; border:1px solid #000; background-color: yellow; ">
          <div class="inner" style="width:100%; height:100%; background-color:pink;"></div>
      </div>

这段代码其实就是头两段代码的相加,可以简单的理解为现在是在Boostrap的框架中开始写代码,代码运行的结果为:outer的宽度为500px,高度为500px;inner的宽高为298px;

导致这样的结果的原因是:box-sizing:border-box使得元素的宽高不会受padding和border的影响,如上面的代码,即使outer有padding,border,但是padding和border都不会影响outer的宽高,outer的宽高还是500px;但是padding和border跑哪里去了?答案:跑到里面去了!打开浏览器的调试工具,看outer的样式详情:

我们可以明显的看到,padding和border都是有效的,只是它们占据了outer的内部空间,由于padding:100px占据了outer的200px宽高值,border占据了2px的宽高值,所以inner只能获得298px的宽高值。

如果大家有ie下的网页开发经验的话,就会发现,box-sizing:border-box就是低版本ie的怪异模式。

时间: 2024-10-14 07:40:44

Boostrap入门准备之border-box的相关文章

Boostrap入门(一)

1.第一步:下载Boostrap有关文件 Boostrap中文网:http://www.bootcss.com/ -->--> 2.第二步: 如下代码:引入相关文件即可. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>Boostrap模板(zqzjs)</title> <link hr

Boostrap入门+样式学习--叁--

11. 基础表单 类名form-control 1.宽度变成了100% 2.设置了一个浅灰色(#ccc)的边框 3.具有4px的圆角 4.设置阴影效果,并且元素得到焦点之时,阴影和边框效果会有所变化 5.设置了placeholder的颜色为#999 类名 form-horizontal 水平表单风格(标签居左,表单控件居右) 类名form-inline 将表单的控件都在一行内显示 表单控件(输入框input) 单行输入框,常见的文本输入框,也就是input的type属性值为text.在Boots

Boostrap入门+样式学习--贰--(慕课网大漠《玩转bootstrap》[基础])

1. 标题样式 除了有标签 h1~h6 之外,bootstrap还提供了对应的六个类名:.h1~.h6 重新设置了margin-top和margin-bottom的值, h1~h3重置后的值都是20px:h4~h6重置后的值都是10px. 所有标题的行高都是1.1(也就是font-size的1.1倍),而且文本颜色和字体都继承父元素的颜色和字体. 固定不同级别标题字体大小,h1=36px,h2=30px,h3=24px,h4=18px,h5=14px和h6=12px. 2.副标题 small标签

Boostrap入门+样式学习--壹--

1. 自适应网页设计 首先,在网页代码的头部,加入一行 viewport元标签.viewport是网页默认的宽度和高度, <meta name="viewport" content="width=device-width, initial-scale=1"> 上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%. 所有主流浏览器都

Boostrap入门+样式学习--肆--

12. 图像 1.img-responsive:响应式图片,主要针对于响应式设计 2.img-rounded:圆角图片 3.img-circle:圆形图片 4.img-thumbnail:缩略图片 由于样式没有对图片做大小上的样式限制,所以在实际使用的时候,需要通过其他的方式来处理图片大小.比如说控制图片容器大小.(注意不可以通过css样式直接修改img图片的大小,这样操作就不响应了) 对于圆角图片和圆形图片效果,因为是使用了CSS3的圆角样式来实现的,所以注意对于IE8以及其以下版本不支持,是

CSS 框模型( Box module )

框和布局 在 KB005: CSS 层叠 中已经介绍了 CSS 的重要之处.CSS 可以说是页面表现的基础, CSS 可以控制布局,控制元素的渲染. 布局是讲在电影画面构图中,对环境的布置.人物地位的调度.人物之间的关系.人物和景物的关系等的安排.大同小异,CSS 的布局也是一样. CSS 的布局,包含两个大部分: 元素:元素及其组成,类似电影布局中人物的高矮胖瘦.衣着配饰等,以及场景中的桌椅板凳,物品等等. 定位:元素的位置, 类似电影场景的中对环境的设置,人物作为元素,他们之间的关系会影响其

CSS Box Model

Table of Contents The CSS Box Model Visualized width and height box-sizing The CSS box model specifies how margins, borders and padding of HTML elements are rendered. The CSS Box Model Visualized The CSS box model looks like this: Each HTML element r

css 实现长英文或链接自动换行

在网页布局中,经常遇到长英文或链接在div等盒子里排成一排显示不会自动随盒子宽度限制而自动换行.该如何解决这个问题呢?本文章通过实例向大家讲解css长英文或链接如何自动换行. 解决办法: 使用CSS属性 word-wrap:break-word;即可解决.使用break-word时,是将强制换行. break-word兼容各版本IE浏览器,兼容谷歌浏览器. 实例: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml

前端面试合集

VUE 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted的区别 6.vue获取数据在哪个周期函数 7.请详细说下你对vue生命周期的理解? vue路由面试题 mvvm 框架是什么?vue-router 是什么?它有哪些组件 active-class 是哪个组件的属性?怎么定义 vue-router 的动态路由? 怎么获取传过来的值vue-router 有哪几种导航钩子?6.$ro