首页 > 其他分享 >前端学习-CSS-08-盒子模型

前端学习-CSS-08-盒子模型

时间:2022-12-18 20:12:16浏览次数:38  
标签:盒子 margin 08 边框 padding div border CSS

学习时间:2022.11.13

目录

盒子模型

盒子模型的介绍

  • 每个标签都可以看做是一个盒子
  • 盒子模型分为:
    • 内容区域(content),内边距区域(padding),边框区域(border),外边距区域(margin)
<!-- 01-盒子模型的介绍体验.html -->
<!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>盒子模型的介绍和体验</title>
    <style>
        div{
            width: 300px;
            height: 200px;
            background-color: pink;
            border: 3px solid #000;
            padding: 20px;
            margin: 50px;
        }
    </style>
</head>
<body>
    <div>这是一个div标签,大小是300*200,背景颜色粉色,内边距20px,边框3px黑色,外边距50px</div>
    <div>这是第二个div标签,大小是300*200,背景颜色粉色,内边距20px,边框3px黑色,外边距50px</div>
</body>
</html>

01-盒子模型的介绍体验.html在浏览器的显示效果

内容的宽高

  • width和height属性用于设置盒子的宽高

边框(border)

连写形式

  • 格式:
    • border:边框粗细 线条样式 线条颜色
    • 三个取值没有先后顺序
    • 其中线条样式有实线(solid),虚线(dashed),点线(dotted)等
<!-- 02-边框-1.html -->
<!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>边框-1</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
            margin: 15px;
        }
        .a{
            border: 3px solid green;
        }
        .b{
            border: 3px dashed green;
        }
        .c{
            border: 3px dotted green;
        }
    </style>
</head>
<body>
    <div class="a">这是一个div标签,大小是200*200,背景颜色粉色,边框3px绿色,边框实线(solid),外边距15px</div>
    <div class="b">这是一个div标签,大小是200*200,背景颜色粉色,边框3px绿色,边框虚线(dashed),外边距15px</div>
    <div class="c">这是一个div标签,大小是200*200,背景颜色粉色,边框3px绿色,边框点线(dotted),外边距15px</div>
</body>
</html>

02-边框-1.html在浏览器的显示效果

单方向设置

  • 格式:
    • border-方位名词
<!-- 03-边框-2.html -->
<!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>边框-2</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
            border-right: 3px green solid;
        }
    </style>
</head>
<body>
    <div>这是一个div标签,大小是200*200,背景颜色粉色,边框3px绿色,边框实线(solid),只有右侧边框</div>
</body>
</html>

03-边框-2.html在浏览器的显示效果

单个属性

  • 用于设置边框粗细,样式,颜色:
    • 边框粗细:border-width
    • 边框样式:border-style
    • 边框颜色:border-color
  • 因为连写会更方便,因此这三个单独属性很少使用

简单案例

  • 使用pxcook测量盒子尺寸
  • 打出相应代码

盒子尺寸图

<!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>普通盒子</title>
    <style>
        div{
            width: 351px;
            height: 351px;
            background-color:  #ffc0cb;
            border: 12px solid #00f;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

内边距(padding)

  • 格式
    • padding:数字px
    • padding后最少跟1个值,最多跟4个
    • 4值:按照顺时针顺序,上右下左依次赋值
    • 3值:同样顺时针顺序,赋给上右下,左和右相同
    • 2值:赋给上右,上下相同,左右相同
    • 1值:上下左右均相同
  • 同样也可以使用padding-left, padding-right, paddin-top, padding-bottom来设置相应值
<!-- 04-内边距.html -->
<!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>内边距</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
            padding: 20px 30px 40px 50px;
            /* padding: 20px 30px 40px;
            padding: 20px 30px;
            padding: 20px; */
        }
    </style>
</head>
<body>
    <div>这是一个div标签</div>
</body>
</html>

内减模式

  • border和padding会将盒子撑大,有2种方法解决
    • 手动内减:手动减去多余大小
    • 自动内减:给盒子设置属性box-sizing:border-box即可
  • 自动内减属性可以让盒子变为CSS3的的盒子模型
<!-- 05-内减模式.html -->
<!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>内减模式</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
            padding: 20px;
            border: 10px solid green;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

外边距(margin)

  • 外边距与内边距的使用完全相同

外边距折叠现象1-合并现象

  • 垂直布局的块级元素,上下的margin会合并,取最大值
  • 解决办法:
    • 只给其中一个元素设置margin即可

外边距折叠现象2-塌陷现象

  • 相互嵌套的块级元素,子女元素的margin-top会作用在父母元素上,导致父母元素一起向下移动
  • 解决办法:
    • 给父母元素设置border-top或者padding-top,分隔父母子女元素的margin-top
    • 给父母元素设置overflow: hidden(最高级的办法)
    • 将某个元素转换成行内块元素(因为塌陷现象仅对块级元素生效)
    • 设置浮动:使用.clearfix::before解决塌陷问题,具体代码如下
    <!-- 下面的代码同时解决塌陷问题和浮动带来的问题 -->
    <!-- 这里使用display: table,父母子女标签不再是块级元素,解决塌陷 -->
    .clearfix::before,
    .clearfix::after{
      content: '';
      display: table;
    }
    <!-- 这里使用clear:both清除浮动 -->
    .clearfix::after{
      clear:both;
    }
    

行内标签的内外边距问题

  • 无法通过margin或者padding改变行内标签的垂直位置,只能改变水平位置
  • 即margin-top, margin-bottom, padding-top, padding-bottom并不会对行内标签生效
  • 垂直位置使用line-height来改变

标签:盒子,margin,08,边框,padding,div,border,CSS
From: https://www.cnblogs.com/ayubene/p/16990838.html

相关文章

  • 前端学习-CSS-09-浮动
    学习时间:2022.11.14目录浮动结构伪类选择器伪元素浮动浮动的作用浮动的特点清除浮动浮动带来的影响清除浮动的方法方法1:给父母元素加一个高度方法2:额外标签法方法3:单伪元......
  • 前端学习-CSS-10-CSS定位装饰
    学习时间:2022.11.30目录CSS定位装饰定位定位的基本介绍定位的基本方式staticrelativeabsolutefixed不同元素之间的层级关系装饰垂直对齐光标类型边框圆角overflow溢出部分......
  • 实用HTML,CSS和JavaScript速查表--转载
    速查表是帮你记住东西的有效工具。Web设计师和开发者经常使用的快捷键简表会使他们在网上的工作效率大大提高。事实上,速查表就是来帮助我们把日常中最常用到的信息聚集起来......
  • CSS动画
    动画:transfprmm2D变形设置网页元素样式transition制作过度动画:property过度或动态模拟css属性duration:过度需要的时间timing-function过度函数delay过度......
  • S1 - Lesson 107 - 108
    Wordsmadam aswellalsotooeitheraswell Theshopsellsfoodforthebabiestoo.Theshopalsosellsfoodforbabies.Theshopsellsfoodforthebabi......
  • CSS
    CSScss是什么css怎么用(快速入门)css选择器(重点+难点)美化网页(文字、阴影、超链接、列表、渐变.....)盒子模型浮动定位网页动画(特效效果)1.1、什么......
  • 现代 CSS 高阶技巧,不规则边框解决方案
    本文是CSSHoudini之CSSPaintingAPI系列第四篇。现代CSS之高阶图片渐隐消失术现代CSS高阶技巧,像Canvas一样自由绘图构建样式!现代CSS高阶技巧,完美的波浪......
  • C++学习---cstdio的源码学习分析08-重新打开文件流函数freopen
    cstdio中的文件访问函数stdio.h中定义了一系列文件访问函数(fopen,fclose,fflush,freopen,setbuf,setvbuf),接下来我们一起来分析一下freopen对应的源码实现。-fopen:打开文件-......
  • js 和 css 是如何影响DOM树构建的?
    大家好,我是coderBinjs和css是如何影响DOM树构建的?先做个总结,然后再进行具体的分析:CSS不会阻塞DOM的解析,但是会影响JAVAScript的运行,javaSscript会阻止DOM树的解析,最终......
  • css2
    用了次html写笔记很让我emo我还是用回md吧有出错的「地方」,我会即使改正的emmetCSS的复合选择器CSS的元素显示模式CSS的背景1.Emmet语法简介Emmet插......