前端学习(十三):CSS盒子模型

进击のpython


前端学习——CSS盒子模型



在前面的时候也说过,包括分析网页结构的时候,提到了,网页就其实就是一个一个盒子叠起来的

那现在就是有装饰的盒子,难度就变得深刻

所以说为了能够让你更好地理解,在说盒子模型之前,我要先向你介绍一下标签

对!就是html里面的那些标签


标签分类

在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(也叫行内元素)和内联块元素

html标签甚至有好几百个,我们之前学习大约有30个标签,你所看到的很多大型网站我们都能通过这些标签来搭建我们网站结构

那么这么多标签,显然是比较没有规律的,那么我们就来对这些常用的标签进行分类,了解了每类标签的特点之后,我们才能更好的对网站进行布局

块状元素

<div>、<p>、<h1>~<h6>、<ol>、<ul>、<li>、<dl>、<dt>、<table>、<form>

内联元素

<a>、<span>、<i>、<em>、<strong>、<label>

内联块元素

<input>、<img>

那么把网页中常用的标签进行分类之后,那么这三类标签分别有什么特点呢?

标签类别 特点
块状元素 1.独自占据整一行 2.可以设置宽高
内联元素 1.所有的内联元素在一行内显示 2.不可以设置宽高
行内块元素 1.在一行内显示 2.可以设置宽高

注意:标签分类的特点是对现有的HTML常用标签进行分类,那么这些特点在后面的学习过程中我们还可以通过display属性进行强制修改规则。

可能你现在还没办法理解这三种都能干什么,这就涉及到了接下来的盒子模型了


盒子模型

所谓盒子模型,在CSS中,”CSS model“这一术语是用来设计和布局时使用

那么所有的HTML元素可以看作盒子!CSS的盒模型本质上是一个盒子,来表示周围的HTML元素

它包括:边距、边框、填充和实际内容

放慢速度,慢慢看,注意理解!很!重!要!

中秋节要到了,这里有个月饼礼盒~但是先别吃~我们先分析一下

那么如果我们把这里礼盒看作网页中的一个元素,比如div

我们会观察如下特点:

  1. 五仁就可以看作这个div的内容,这个内容可以看作是文本、图片或者是另一个标签元素,它应该有宽度和高度
  2. 月饼盒月饼之间距离称为盒子模型的内填充,在样式表中叫做padding
  3. 再继续看下图

一个盒子另一个盒子距离我们称为盒子模型的外边距,在样式表中叫做margin

4.再继续看

红色区域将盒子包括起来的,我们在盒子模型中称为边框,在样式表中叫border

那么在CSS中盒模型又是怎样的呢?


盒子属性

那么我们知道在盒子模型中有四个属性:内容的宽高、内边距、外边距、边框。

内容的宽高

需要注意的是,盒模型的宽度和高度和我们平常所说的物体的宽度和高度是不一样的

CSS定义的宽(width)和高(height),指的是盒子内部物体所占据的宽高,在CSS中指的是填充以里的内容范围

举例说明:我想有一个400px*400px范围的div盒子,背景颜色是红色的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>内容的宽高</title>
    <style type="text/css">
        .box{
            width: 200px;
            height: 200px;
             background-color: red;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

那么如何能查看该盒模型的大小呢?很简单,在页面上右击审查元素,或者快捷键F12,打开控制台,查看效果:

看,最后的时候显示了400*400的尺寸,以及颜色#ff0000

而你往下翻,就会发现一个很熟悉的东西:

可爱的盒子模型

内边距

内边距表示的是盒子的边框到内容之间的距离,也就是草绿色的部分

我们可以直接在审查元素上面进行修改,可以看到左侧代码又有了变化

而当我添加了padding属性为20px的时候,很明显红色方块抖动了一下(变大了)

也就是说设置了padding之后,padding的区域是有背景颜色的,并且背景颜色和内容的颜色一样

而当我划过盒子模型中的padding属性的时候,变色的部分就是padding

可以看出来,padding = 20px 是在上下左右都加了20像素

那我想让特定的位置多,怎么办呢?比如只想让上面多20px

padding的设置

padding有四个方向,分别描述四个方向的padding

/*上 右 下 左 四个方向*/
padding: 20px 30px 40px 50px ;
/*上 左右  下*/
padding: 20px 30px 40px;
/* 上下 左右*/
padding: 20px 30px;
/*上下左右*/
padding: 20px;

边框

盒子模型的边框,在样式表中称为border,我们知道呢,我们用的手机,都会有手机壳

手机壳的样式、颜色、薄厚程度等都是这个壳的形态,同样呢,盒模型的边框也有三要素:粗细 线性样式 颜色

按照border三要素写:

border-width:3px;
border-style:solid;
border-color:red;
/*上面三句代码相当于一句代码:border:3px solid red;*/

/*同样,也可以分别设置边框四个方向的粗细 线性样式 颜色,跟padding的四个方向一样。*/

/*上下5px  左右10px*/
border-width:5px 10px;

/*上:实现  右:点状  下:双线 左:虚线*/
border-style: solid dotted double dashed;

/*上:红色 左右:绿色 下:黄色*/
border-color: red green yellow;

能够很明显的看到效果吧~

清除默认边框

清除某些标签默认的边框,我们使用border:none;或者border:0;

比如,input输入框它有默认的边框,如果我们想制作好看的输入框的话,首先先得把默认的清除掉

然后我们再按照需求来更改,并且我们会发现焦点选中输入框的时候有一条蓝色的外线

那么我们也需要将它清除 ,使用属性outline:none;

外边距

在盒子模型中称为外边距,样式表中叫margin

表示盒子到另一个盒子的距离。既然是两者之间的距离,那么就会产生水平之间的距离和垂直之间的距离

同样情况下,外边距也有四个方向,跟padding类似

水平方向:margin-left & margin-right

可以看到,当我改变margin的时候,两个盒子的距离就有变化了

垂直方向:

盒子模型的外边距水平方向上不会出现问题,在垂直方向上会出现“外边距合并”的现象

现在有两个盒子,其中给红盒子的下外边距设置成30px

现在我们将绿盒子的上边距设置成20px,两个盒子之间就应该是50px

可是你发现,在调节绿色的上外边距并没有对两个框的距离造成影响

什么时候影响了???当上边距超过30px的时候有影响了

这个现象,就叫外边距合并现象,也叫塌陷现象

只有在垂直方向上,当两个同级的盒子,在垂直方向上设置了margin之后,那么以较大者为准

那怎么处理呢???很简单!我们如果想让上下的两个盒子中间有间距,只需要设置一个盒子的一个方向即可

没必要去碰触外边距塌陷的问题,还得找解决问题的方法,得不偿失


*****
*****

前端学习(十三):CSS盒子模型

原文地址:https://www.cnblogs.com/jevious/p/11511276.html

时间: 2024-12-12 09:27:43

前端学习(十三):CSS盒子模型的相关文章

CSS基础学习十三:盒子模型

一CSS盒子模型概述 CSS盒子模型规定了元素框处理元素内容.内边距.边框和外边距的方式.一个完整元素包括内容(content),内 边距(填充)(padding),边框(border)和外边距(空白)(margin). 盒子模型图: 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框. 边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素.故背景应用于由内容和内边距组成的区 域. 内边距.边框和外边距都是可选的,默认值是零.但是,许多元

[CSS3] 学习笔记--CSS盒子模型

1.CSS盒子模型概述 盒子模型的内容范围包括:margin(外边距).border(边框).padding(内边距).content(内容)部分组成. 2.内边距 内边距在content外,border内,属性有5个: padding:设置所有边距 padding-bottom:设置底边距 padding-left:设置左边距 padding-right:设置右边距 padding-top:设置上边距 3.边框 我们可以创建效果出色的边框,并且可以应用于任何元素.边框的样式为border-st

web前端学习笔记(CSS盒子的浮动)

Posted on 2013-09-18 09:00 Stephen_Liu 阅读(2205) 评论(6) 编辑 收藏 在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界:而在竖直方向和兄弟元素依次排列,不能并排.使用“浮动”方式后,块级元素的表现就会有所不同.      CSS中有一个float属性,默认为none,也就是标准流通常的情况.如果将float属性的值设置为left或right,元素就会向其父元素的左侧或右侧靠紧,同时默认情况下,盒子的宽度不在伸展,而是根据盒子里

CSS基础学习-8.CSS盒子模型_标准盒子

原文地址:https://www.cnblogs.com/songsongblue/p/11047179.html

前端基础——CSS盒子模型

现在许多网页都是由许多个"盒子"拼接.嵌套而成,所以多少接触过网页设计的朋友一定都对CSS盒子模型有所了解. 为了更好的说明,先举个通俗的例子:在一个仓库中放了10个纸箱,每个纸箱之间有一定距离,每个纸箱内放的是一台电脑并且纸箱和电脑之间都有一层泡沫来隔绝防震(这里假设纸箱和电脑都是正方体),以这个例子为背景接着说盒子模型. 其实一张图片就可以把CSS盒子模型形象地表述出来,网上一搜一大堆: 正如上图所示:CSS中的盒子模型通常由四部分组成:内容(content).填充(padding

每天学点前端——基础篇1:css盒子模型,绝对定位和相对定位

什么是css盒子模型(Box Model)? W3C中解释为:规定了元素框处理元素内容.内边距.边框和外边距的方式: MDN:文档中的每个元素被描绘为矩形盒子.渲染引擎的目的就是判定大小,属性--比如它的颜色.背景.边框方面--及这些盒子的位置. 背景会应用于元素内容.内边距.边框三者组成的区域: margin值可以设置为负值,很多情况下会需要使用margin负值:padding没有负数: 浏览器的兼容性:IE5.X 和 6 在怪异模式中使用自己的非标准模型.这些浏览器的 width 属性不是内

CSS盒子模型+如何使用CSS实现三角形

盒子模型 前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张图片里并不能放东西,它自己就是自己的内容. 盒子中的区域 一个盒子中主要的属性就5个:width.height.padding.border.margin.如下: width和height:内容的宽度.高度(不是盒子的宽度.高度). padding:内边距. border:边框. margin:外边距. 盒子模型的示意图: 代

(5)css盒子模型

CSS 盒子模型概述 ***什么是CSS的盒子模型呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content).边框(border).内边距(padding).外边距(margin), CSS盒子模型都具备这些属性. ***属性我们可以把它转移到我们日常生活中的盒子(箱子)来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模型. 盒子模型是css控制页面是一个很重要的概念. 所有网页的页面中的元素都可以看成是一个盒子,占据着一定的页面空间. 一

深入理解CSS盒子模型

前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverflow上求助.ifaou在帮助我解决我问题的同时,还推荐我阅读一篇有关CSS盒子模型的文章<The CSS Box Model>,阅读之后受益匪浅,才知道自己对盒子模型知识还是如此欠缺.恰逢学期末,项目验收后暂时告一段落,有空闲的时间.于是想把这篇文章翻译出来,一方面再给自己一点挑战和锻炼,另一方面也给大家参考,让更多的人受益. 这篇文章适合初级web设计朋友,让你对盒子模型有更近一步的理解.但是在阅读这篇文