一定要弄懂的盒子模型

这一篇其实老早之前就该写了,但是在敲牛腩的时候,只是跟着老师敲,没有系统的学习CSS这部分知识,从图书馆借了一本书,最近想要系统的学习这部分的知识,所以今天花了小一天的时间做了一个网页,重新学习了一下盒子模型和浮动的知识。今天就聊聊盒子模型这部分知识吧!

定义

在CSS处理页面的时候,它认为每个元素都是包含在一个不可见的盒子里,盒子模型由内容区域、内容区域周围空间(内边距padding)、内边距的外边缘(边框,border)和边框外面将元素与相邻元素隔开的不可见区域(margin)构成。我们将盒子模型想象成一幅挂在墙上的画,画是内容,衬边是内边距,画框是边框,与相邻画框之间的距离是外边距。

当然我们还可以把它想象成一个真正的快递的盒子,下边来看一看盒子模型图吧!

盒子模型图

DEMO:

不要看盒子模型就这四部分组成,其实他一点都不简单,今天就跟他较了一天的劲。其实网页就是由一个个的元素拼装组合到一起的,话不多说,还是看个小例子吧!这个小例子是一个页面导航的例子,代码如下:

前台代码:

nav是标记导航的元素,他可以明确表示主导航链接的区域,ul是无序列表的结构

<nav role="navigation"> <%--导航--%>
                <ul class="navli">
                    <li><a href="/" class="current-page">Home</a></li>
                    <li><a href="/about/">About</a></li>
                    <li><a href="/contact/">Contact</a></li>
                </ul>
            </nav>

CSS样式:

<pre name="code" class="css"><pre name="code" class="html">/*导航栏样式*/
.navli {
    border-top: 5px solid #019443; /*绿色*/
    border-bottom: 1px solid #c8c8c8; /*灰色*/
    padding: .45em 0 .5em; /*7 0 8*/
}

    .navli a {
        color: #292929;
        display: inline-block;
        padding: .5em 1.15em .5em 1.4em;                                                                                                                          font-family: sans-serif;
        font-weight: 700;
        text-transform: uppercase;
    }

    .navli li {
        border-left: 1px solid #c8c8c8;
        display: inline-block;
    }

        .navli li:first-child {
            /*对第一个li使用了下边的属性,取消左边框,即改回至默认样式*/
            border-left: none;
        }



最终效果:

简单讲解:

  1. 设置上边框为绿色,5像素的粗线
  2. 设置下边框为灰色,1像素的细线
  3. 没有左右边框
  4. 设置上下内边距的宽度,分别为7像素和8像素(em是相对长度),没有所有内边距,设置内边距是为了让水平线和垂直线分开,如果没有内边距,上下就没有距离了,就太紧凑了(如右下图所示)
  5. 外边距是默认的值

a元素(链接)讲解:

  1. display:inline-block是让他们可以水平显示,而且具有块级元素的性质,如果没有这一条,那么就不会有外边距了
  2. 下图显示的是内边距的设置,其中em是相对距离,相对的是默认字体的数值,字体默认是16px,所以.5em就是8px,以此类推,四个值的顺序是按照钟表指针的走向,分别是上,右,下,左
  3. font-family:可以理解为字体集合,如果浏览器不支持第一个字体,可以选择第二个,第三个,我这里就设置了一个字体
  4. font-wight:是字体粗细
  5. text-transform:uppercase都是大写字母

li元素讲解:

  1. 首先设置列表的左边框,为1像素 实体 灰色线,两个箭头代表横向排版和纵向排版时的左边框
  2. 设置列表横向排列,让元素显示为行内元素,同时具有块内元素的特征
  3. 去掉第一个LI,也就是HOME的左边框
  4. 如果没有display和first-child的设置,那么显示就如同下图中的第二张图

总结

今天做了这个网页的小例子,没接触web开发之前觉得网页排版就跟word排版似的,真正做起来根本没有想象的那么简单,上边小例子,其实还涉及到了很多别的小知识点,有兴趣的同学可以研究一下。小例子花费时间不长,但其实这个页面做了一天,很有成就感的,虽然不懂的东西还有很多。学习嘛~学会一点就要很开心!

时间: 2024-10-13 11:52:29

一定要弄懂的盒子模型的相关文章

css 大话盒子模型

什么是盒子模型? CSS中, Box Model叫盒子模型(或框模型),Box Model规定了元素框处理元素内容(element content).内边距(padding).边框(border) 和 外边距(margin) 的方式.在HTML文档中,每个元素(element)都有盒子模型,所以说在Web世界里(特别是页面布局),Box Model无处不在. 什么是Box Model? 为什么要理解盒子模型? 因为(能够更好的装逼)? 如果你理解了盒子模型,你就能知道这个东西在页面上面的大小,既

[ css 弹性盒子模型 box-flex 及相关属性 ] box-flex属性弹性盒子模型讲解及实例演示

box-flex属性(和谐版) 有道桌面词典显示,”flex”一词中文有“收缩”之意.不过,从此属性实际上产生的效果来看,无论怎样用“收缩”一词解释都显得很牵强.所以,这里,直接抛开字面意思,我们可以将”box-flex”理解为”房子-分配”.box为“盒子”的意思,我们可以理解为当下价格巨高的“房子”,”flex”指兄弟几个“分配房子”. 举个更实际点的例子:马林大叔省吃俭用一辈子,终于在上海郊外买了间150平米的商品房.后来,马林大叔想回老家养老,决定把房子分配给他的三个儿子.ok,先暂停下

CSS box-flex属性,然后弹性盒子模型简介

一.here we go 看到大神写的关于box-flex的介绍,忍不住收了,大神介绍的很详细,新技能get! 二.box-flex属性(和谐版) 有道桌面词典显示,"flex"一词中文有"收缩"之意.不过,从此属性实际上产生的效果来看,无论怎样用"收缩"一词解释都显得很牵强.所以,这 里,直接抛开字面意思,我们可以将"box-flex"理解为"房子-分配".box为"盒子"的意思,我们

CSS box-flex属性 弹性盒子模型简介

二.box-flex属性(和谐版) 有道桌面词典显示,”flex”一词中文有“收缩”之意.不过,从此属性实际上产生的效果来看,无论怎样用“收缩”一词解释都显得很牵强.所以,这里,直接抛开字面意思,我们可以将”box-flex”理解为”房子-分配”.box为“盒子”的意思,我们可以理解为当下价格巨高的“房子”,”flex”指兄弟几个“分配房子”. 举个更实际点的例子:马林大叔省吃俭用一辈子,终于在上海郊外买了间150平米的商品房.后来,马林大叔想回老家养老,决定把房子分配给他的三个儿子.ok,先暂

浅谈 css3 box盒子模型以及box-flex的使用

display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分.   一.使用以及介绍: 1.要实现水平或者垂直切分,必须先满足以下要求 i. display : box必须用在对应的父窗口,比如div.parent>div.panel*3 这种格局, parent 必须先先定义此属性 ii. .panel的元素定义box-flex,来实现按比例切分.如下图:就是将三个di

2018-06-08CSS常用样式+浮动+定位+盒子模型

CSS布局样式: 常用样式: ①    字体 ②    颜色 ③    背景 布局: ①    浮动 ②    定位 ③    标签特性 标签盒子模型: ①    内边距 ②    边框 ③    外边距 动画: ①    旋转 ②    渐变 Link的正确用法: <link rel="stylesheet" href="ZuoYe1.css"> 常用样式: ①    字体: 大小,颜色,粗细,字体! 子标签会继承父标签的样式(不是所有的样式都会被继承

盒子模型相关知识总结

一. CSS层叠 在前端程序员对CSS编写的过程中,CSS选择器的作用是用来选中某个元素,并对当前的元素进行样式上的渲染,那么每一个选择器都有属于自己的一些解析规则.那我们今天所探讨的CSS层叠就是浏览器对多个样式的来源进行叠加,并最终解析成渲染效果,那这个过程我们就称为CSS层叠. 1) CSS样式的来源 css之所以有"层叠"的概念,是因为有多个样式来源.其实css的样式来源有5个,开发人员只能接触到后面3个. 前三个我们程序员习惯的称为:"内联样式表".&qu

30分钟彻底弄懂flex布局

目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了.什么是flex布局以及它的好处,这里就不再赘述. 在这篇文章里,想说说flex布局的属性语法及其细节.那么网上也有不少flex布局的教程,为什么又要再写一篇? 首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光.先感受一下这12个flex布局属性,是不是很“迷”人. 容器属性 flex-flow flex-direction flex-wrap justify-content

理解CSS盒子模型

什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式.那么内容就是盒子里装的东西:而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料:边框就是盒子本身了:至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定