详解CSS(六)

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 详解CSS(六),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生

🛵个人主页:亦世凡华、

🛺系列专栏:CSS专栏

🚲给大家推荐一个网站😉很实用😚我一直在上面刷题:点击跳转进入网站 注册登录即可刷题

目录

盒子模型

什么是盒子?

盒子类型:

如何理解CSS中的盒子?

一个盒子的组成部分是什么?从内到外分别是:

content(内容)

padding(填充)

border(边框)

margin(外边距)

盒子模型的举例

那我们如何计算一个盒子的总 (宽) (高) 度呢?

margin的注意事件

margin的塌陷现象

margin居中

使用父元素的padding而不是子元素的margin的原因


盒子模型

什么是盒子?

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子),盒子是用来储存物品;我们可以将盒子理解为一个快递包裹,由内容,填充物以及纸盒子组成。

盒子类型:

行盒,display等于inline的元素,行盒上不换行;块盒,display等于block的元素,块盒独占一行。

display默认值为inline

浏览器中默认样式表:

设置的块盒:容器元素、h1~h6、p

设置的行盒:span、a、img、video、audio

如何理解CSS中的盒子?

在CSS中一个盒子的组成部分有:内容(content)+内填充(padding)+边框(border)+外边距(margin)

一个盒子中的主要属性:widthheightpaddingbordermargin

width:宽度,这里的宽度指的是盒子里面内容的宽度,而不是盒子的宽度。

height:高度,这里的高度指的是盒子里面内容的高度,而不是盒子的高度。

padding:内填充,指的是盒子里面内容到盒子边距的距离。

border:外边框,指的是盒子的边框。

margin:外边距,指的是盒子与盒子之间的间距。

一个盒子的组成部分是什么?从内到外分别是

content(内容)

width、height,设置的是盒子内容的宽高

内容部分通常叫做整个盒子的**内容盒 content-box**。

padding(填充)

盒子边框到盒子内容的距离,具体书写为:

padding-left、padding-right、padding-top、padding-bottom。

padding是简写属性,其书写顺序为:

padding: a b ; 上下、左右

padding: a b c; 上、左右、下

padding: a b c d; 上、右、下、左

填充区+内容区 = **填充盒 padding-box**。

border(边框)

边框 = 边框样式 + 边框宽度 + 边框颜色

边框样式:border-style

边框宽度:border-width

边框颜色:border-color

边框+填充区+内容区=**边框盒 border-box**

margin(外边距)

边框到其他盒子的距离

margin-top、margin-left、margin-right、margin-bottom

margin是简写属性,其书写顺序为:

margin: a b ; 上下、左右

margin: a b c; 上、左右、下

margin: a b c d; 上、右、下、左

盒子模型的举例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100px;
            height: 100px;
            border: 1px solid #f00;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div class="box">文本内容文本内容文本内容文本内容文本内容文本内容</div>
</body>
</html>

详解CSS(六)

那我们如何计算一个盒子的总 (宽) (高) 度呢?

一个盒子的总宽度 = 盒子里面内容的宽度 + 左右两边的填充 + 左右两边的边框线

一个盒子的总高度 = 盒子里面内容的宽度 + 上下两边的填充 + 上下两边的边框线

注意:一个盒子的高度一般情况下是不用设置的,因为一个盒子的高度它应该是由其内容来决定的

margin的注意事件

margin的塌陷现象

1.在标准文档流中,竖直方向的margin值不会叠加,它会取较大的值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
        }
        .div1{
            background-color: #f00;
            /* 下外边距 */
            margin-bottom: 20px;
        }
        .div2{
            background-color: #0f0;
            /* 上外边距 */
            margin-top: 40px;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
</body>
</html>

详解CSS(六)

2.横着方向是没有margin的塌陷现象。 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .s1{
            background-color: #f00;
            /* 右外边距 */
            margin-right: 20px;
        }
        .s2{
            background-color: #0f0;
            /* 左外边距 */
            margin-left: 40px;
        }
    </style>
</head>
<body>
    <span class="s1">文本一</span><span class="s2">文本二</span>
</body>
</html>

详解CSS(六)

3.浮动元素它是没有塌陷现象的。 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100px;
            border: 5px solid #000;
            overflow: hidden;
        }
        .box div{
            width: 100px;
            height: 100px;
        }
        .div1{
            background-color: #f00;
            float: left;/* 向左浮动 */
            margin-bottom: 20px;
        }
        .div2{
            background-color: #00f;
            float: left;/* 向左浮动 */
            margin-top: 40px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
    </div>
</body>
</html>

详解CSS(六)

margin居中

margin的值可以是auto,auto表示“自动”的意思,当左外边距与右外边距的值都是auto时,那么这个盒子就会水平居中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100px;
            height: 100px;
            background-color: #f00;
            /* margin-left: auto;左外边距
            margin-right: auto;右外边距
            margin-top: 100px;上外边距
            margin-bottom: 100px;下外边距 */
            /* 使用简写属性 */
            margin: 100px auto; 
        }
        p{
            height: 50px;
            background-color: #00f;
        }
    </style>
</head>
<body>
    <div class="box"></div>
    <p></p>
</body>
</html>

详解CSS(六)

注意:

1、使用margin来实现水平居中时,一定要有固定的宽度(给这个盒子设置一个宽度)

2、只有块元素可以实现水平居中,行内元素不能实现水平居中

3、只有标准文档流的盒子才可以使用margin来实现水平居中

4、margin属性是用来实现盒子的水平居中,而不是文本的水平居中

注意1:如果不给盒子设置宽度,其就会基础父元素的宽度,也就是body元素。

详解CSS(六)

详解CSS(六)

注意2:行内元素是不能实现水平居中的

详解CSS(六)

详解CSS(六)

注意3:标准文档流的盒子才可以使用margin来实现水平居中

详解CSS(六)

详解CSS(六) 

注意4:margin属性是用来实现盒子的水平居中,而不是文本的水平居中text-align这个属性它是用于实现文本的对齐方式,如果其值为center就表示文本水平居中,但是它不能实现盒子的水平居中

详解CSS(六)

详解CSS(六) 

使用父元素的padding而不是子元素的margin的原因

给一个案例,我们想让盒子内部里面的盒子距外层的盒子上外边距为100px,正常我们会这样做:

详解CSS(六)

详解CSS(六) 

要解决上图的问题:有两种方法解决:

第一种方法:给其父元素设置边框线。但是这种方法不常用,因为边框一般主要是用于来调试代码的,很少会给一个盒子设置边跨。

详解CSS(六)

第二种方法:不要使用子元素的margin而是要使用其父元素的padding

详解CSS(六)

说明:margin这个属性它本意是用来描述兄弟与兄弟元素的关系,不是用于描述父子元素之间的关系的,如果是父子元素的关系,就最好使用给其父元素设置padding属性。

🍃前端的学习还是要以多练习为主,想要练习HTML的朋友,推荐可以去牛客网看一看,链接:牛客网 里面的IT题库内容很丰富,属于国内做的很好的了,最重要的是里面的资源是免费的,是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,感兴趣的可以去看看。

详解CSS(六)

盒子相关知识讲解今天就到这了,码文不易,大家支持一下吧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/140118.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!