首页 > 其他分享 >CSS基础-盒模型

CSS基础-盒模型

时间:2023-08-17 23:12:40浏览次数:35  
标签:盒子 模型 元素 基础 height padding width margin CSS

盒模型

所有的HTML标签都可以看成矩形盒子,由width,height,padding,border构成,称为盒模型

盒子的总宽度 = width + 左右padding + 左右border

盒子的总高度 = height + 上下pading + 上下border

width

表示盒子内容的宽度。

width属性的单位通常是px,也会涉及到 百分数、rem等单位。

当块级元素(div,h系列,li 等)没有设置width属性的时候,它将自动撑满,但这并不意味着width可以被继承。

height

表示盒子内容的高度

height属性的单位通常是px,也会涉及到 百分数、rem等单位

当块级元素(div,h系列,li 等)没有设置height属性的时候,它将自动撑满,但这并不意味着height可以被继承。

padding

padding 是盒子的那边距,即盒子边框内壁到内部文字(或者子元素)的距离

四个方向的padding,可以分别用小属性进行设置

小属性 意义
padding-top 上padding
padding-right 右padding
padding-bottom 下padding
padding-left 左padding
<!--小属性demo-->
<style>

    .box1 {
        width: 200px;
        height: 200px;
        background-color: red;
        padding-left: 20px;
        padding-top: 30px;
        padding-bottom: 40px;
        padding-right: 50px;
    }

</style>

<div class="box1"></div>

padding 合并写法

<!--padding合并写法-->
<!--      上   右   下   左-->
padding: 10px 10px 10px 10px;

<!--      上  左右  下-->
padding: 10px 20px 10px;

<!--     上下 左右 -->
padding: 10px 20px

margin

margin 是盒子的外边距,即盒子和其他盒子间的距离。

margin 的四个方向

属性名称 解释
margin-top 上 margin,向上扩展
margin-right 右margin, 向右扩展
margin-bottom 下margin, 向下扩展
margin-left 左margin, 向左扩展

两个盒子之间的,margin 不会叠加,只以大的margin的值为准。

一些元素都有默认的margin,在开始制作网页的时候,要清除他们,比如 body、ul、p等

实践:盒子实现水平居中的实现方式

<!-- 主要是 auto属性-->
.box1 {
    margin: 10px auto;
}

box-sizing 属性

默认值为 content-box , 此时的width和height 表示的是去除掉 边框和内边距后剩余的空间。

如上图,一个盒子 默认情况下, 它留给子元素的空间就是 宽300像素,高200像素的可用面积。即 width 和 height属性的区域。

box-sizing: border-box

如果添加了 如上的属性后,此时留给子元素的可用空间只有 宽270px 、高170px了。可用面积 面积 = (width - pading * 2 - border * 2) * (height - pading * 2 - border* 2) 。

也就是 width和height 就是 盒子的全部高度和宽度

<!--小属性demo, 此时留给孩子的实际可用面积是 宽270px = (300px-(10px*2)-(5px*2)) 高 170px = (200px-(10px*2)-(5px*2)) 了-->
<style>

    .box1 {
        width: 300px;
        height: 200px;
        padding: 10px;
        border: 5px solid red;
        margin: auto;
        box-sizing: border-box;
    }
</style>
<div class="box1">
</div>

display 属性

块级元素

  • 独占一行,并且有宽高的区域。
  • 特点:如果不设置宽高,会被内容元素自动撑满。
  • 例如:div、section等。

行内元素

  • 可以和其他的行内元素并排显示。
  • 特点:无法设置宽高。
  • 例如 span 等。

行内块

img 是特殊的行内块,他们既能设置宽度和高度,也能并排显示。

行内元素和块级元素的相互转换

元素 规则
display:block 将元素转为块级元素
display:inline 将元素转为行内元素,转为行内元素的情况并不多见
display:inline-block 将元素转为行内块
display:none 隐藏元素,元素会把位置也放弃

将行内元素转块级元素

<!--一个将行内元素转为块级元素的例子-->
.clickA {
    display: block;
    width:200px;
    height: 200px;
    background-color: red;
}

<a href="#" class="clickA">我是点击</a>

隐藏元素的两种写法

<!--一个隐藏元素的例子 display:none-->

<style>

  .clickA {
      display: none;
      width:200px;
      height: 200px;
      background-color: blue;
  }
</style>

<a href="#" class="clickA">我是点击</a>

<!--一个隐藏元素的例子,隐藏但不放弃自己的位置-->

<style>

  .clickA {
      visibility: hidden;
      width:200px;
      height: 200px;
      background-color: blue;
  }
</style>

<a href="#" class="clickA">我是点击</a>

标签:盒子,模型,元素,基础,height,padding,width,margin,CSS
From: https://www.cnblogs.com/haloujava/p/17639149.html

相关文章

  • 黑魂224 更改导演动画轴模型
    在TesterDirector脚本里添加两个变量: 在上方添加一个 usingUnityEngine.Timeline;在Update函数添加新的代码。可以在TesterDirector脚本里实现随意切换模型进行导演动作。 ......
  • 基于开源模型的实时人脸识别系统
    目录背景效果实现功能系列预计写得一些内容整体框架代码结构软件使用说明注册人员打开输入源打开视频文件打开USB摄像头打开IP摄像头(rtsp)输出说明数据说明背景人脸识别已经发展了很多年,随着深度学习发展,开源的模型也有很不错的效果了。我们可以在不需要深入各种算法细节的情况下......
  • Matlab灰狼算法(GWO)优化双向长短期记忆神经网络的数据分类预测,GWO-BiLSTM分类预测,多
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • CSS3
    CSS31.CSS导入方式优先级:就近原则<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>css导入方式</title><!--2.内部样式--><style>h2{color:aqua;......
  • CSS如何使文本溢出部分显示省略号?多行超出
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>CSS如何使文本溢出部分显示省略号?多行超出</title><style>*{margin:0px;padding:0px;}.box{w......
  • 高频SQL 50题(基础版): 员工奖金 | 2023-08-17
    问题表:Activity+----------------+---------+|ColumnName|Type|+----------------+---------+|machine_id|int||process_id|int||activity_type|enum||timestamp|float|+----------------+---------+该表展示......
  • MySQL-基础篇 ( 多表查询:相关 + 内连接 + 外连接 + 自链接 + 联合查询 + 子查询 )
    MySQL-基础篇(多表查询)目录MySQL-基础篇(多表查询)多表查询分类多表关系概述一对多(多对一)多对多一对一多表查询概述笛卡尔积内连接隐式内连接显式内连接外连接左外连接右外连接自连接联合查询-union,unionall子查询标量子查询列子查询行子查询表子查询多表查询案......
  • MySQL-基础篇 ( 函数 + 约束 )
    MySQL-基础篇(函数+约束)目录MySQL-基础篇(函数+约束)函数字符串函数数值函数日期函数流程函数约束概述约束演示外键约束外键的删除/更新行为函数是指一段可以直接被另一段程序调用的程序或代码解决情况:表内存储的是入职日期,通过函数快速计算出入职天数表内存......
  • MySQL-基础篇 ( 事务:相关 + 操作 + ACID + 并发问题 + 隔离级别 )
    MySQL-基础篇(事务)目录MySQL-基础篇(事务)事务简介事务操作方式一方式二事务四大特性(ACID)并发事务问题事务隔离级别事务简介事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要......
  • MySQL-基础篇 ( 相关了解 + SQL-DDL )
    MySQL-基础篇(相关了解+SQL-DDL)目录MySQL-基础篇(相关了解+SQL-DDL)认知了解MySQL数据库SQL通用语法分类数据类型数值类型字符串类型日期时间类型DDL数据库操作查询创建删除使用表操作查询创建修改删除数据库图形化界面工具认知了解数据库,DataBase简称DB,是有组......