本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(5)

CSS个人学习笔记(day 6)

发布于2022-05-31 22:05     阅读(807)     评论(0)     点赞(2)     收藏(5)


十、盒子模型

     10.1.1 盒子模型的介绍

       盒子的概念

                           1. 页面中的每一个标签,都可看做是一个 “盒子” ,通过盒子的视角更方便的进行布局

                           2. 浏览器在渲染(显示) 网页时,会将网页中的元素看做是一个个的矩形区域,我们也形象的称之为盒子

       盒子模型:CSS中规定每个盒子分别由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin) 构成,这就是盒子模型

  1. <style>
  2. /* 纸箱子,填充泡沫 */
  3. div {
  4. width: 300px;
  5. height: 300px;
  6. background-color: pink;
  7. /* 边框线 == 纸箱子 */
  8. border: 1px solid #000;
  9. /* 内边距 == 填充泡沫: 出现在内容和盒子直接边缘 */
  10. padding: 20px;
  11. /* 外边距:出现在两个盒子之间,出现在盒子的外面 */
  12. margin: 50px;
  13. }
  14. </style>

       10.1.2 盒子模型的浏览器效果

         浏览器效果介绍:用谷歌浏览器检查 蓝色正方形是宽高,绿色是内边距,黄色是外边距

         10.1.3 盒子模型区域的宽度和高度

           作用:利用width 和 height属性默认设置是盒子内容区域的大小

           属性:width/height

           常见取值:数字 + px

         10.1.4 盒子模型- border使用方法

           边框(border)- 连写形式

           属性名:border

           属性值:单个取值的连写,取值直接可以空格隔开

                如:border: 10px solid red;

           快捷键:bd + tab  

           边框(border)- 单方向设置

           场景:只给盒子的某个方向单独设置边框

           属性名:border - 方位名词

           属性值:连写的取值 

           边框(border)- 单个属性

           作用:给设置边框粗细、边框样式、边框颜色效果

           单个属性:

                              作用                      属性名                             属性值

                           边框粗细             border-width                         数字+px

                           边框样式             border-style       实线solid、虚线dashed、点线dotted

                           边框颜色             border-color                         颜色取值

  1. <style>
  2. div {
  3. width: 200px;
  4. height: 200px;
  5. background-color:pink;
  6. /* solid:实线 */
  7. /* border: 5px solid #000; */
  8. /* dashed:虚线 */
  9. /* border: 5px dashed #000; */
  10. /* dotted:点线 */
  11. /* border: 5px dotted #000; */
  12. /* 边框(border)-单方向设置 */
  13. border-top: 5px dotted #000;
  14. border-bottom: 5px dotted #000;
  15. }
  16. </style>

        10.1.5 盒子模型- border尺寸计算

          盒子实际大小初级计算公式 = width / height +边框线 

  1. <style>
  2. /* border 会撑大盒子的大小 */
  3. /* 盒子尺寸= width / height +边框线 */
  4. /* 如果要盒子大小为 400 *400 尺寸 */
  5. div {
  6. width: 380px;
  7. height: 380px;
  8. background-color: green;
  9. border: 10px solid #000;
  10. }
  11. </style>

        10.1.6 盒子模型- 内边距

          内边距: 边框于内容之间的距离

          CSS 内边距属性:

                                         属性                                             作用

                                      padding           作用是在一个声明中设置元素的所内边距属性

                                 padding-bottom                      设置元素的下内边距

                                   padding-left                          设置元素的左内边距

                                  padding-right                         设置元素的右内边距

                                   padding-top                          设置元素的上内边距

  1. <style>
  2. div {
  3. width: 300px;
  4. height: 300px;
  5. background-color: pink;
  6. /* padding添加了4个方向的内边距 */
  7. padding: 50px;
  8. /* padding 属性可以当做复合属性使用,表示单独设置某个方向的内边距 */
  9. /* padding 最多只能取4个值 */
  10. /* 四值:上 右 下 左 */
  11. /* padding: 10px 20px 40px 80px */
  12. /* 三值:上 左右 下 */
  13. /* padding:10px 40px 80px */
  14. /* 两值:上下 左右 */
  15. /* padding:10px 80px */
  16. }
  17. /* 多值写法:永远都是从上开始顺时针转一圈,如果数不够, 看对面多少就是多少*/
  18. </style>

        10.1.7 盒子模型- 内减模式

          需求:盒子尺寸300*300,背景粉色,边框10px实线黑色,上下左右20px的内边框,如何完成?

          解决方法一:手动内减

          操作:自己计算多余大小,手动在内容中减去

          缺点:项目中计算量大小,很麻烦

          解决方法二:自动内减

          操作:给盒子设置属性 box-sizing:border-box;即可

          优点:浏览器会自动计算多余大小,自动在内容中减去

        10.1.8 盒子模型- 外边距  

          外边距:边框于边框之间的距离

          CSS 外边距属性:

                                          属性                                           作用

                                         margin                      在一个声明中设置所有外边距属性

                                     margin-bottom                     设置元素的下外边距

                                      margin-left                          设置元素的左外边距

                                      margin-right                        设置元素的右外边距

                                      margin-top                          设置元素的上外边距

  1. <style>
  2. div {
  3. display: inline-block;
  4. width: 100px;
  5. height: 100px;
  6. background-color: pink;
  7. margin: 50px;
  8. }
  9. </style>

         10.1.9 盒子模型- 版心居中  

           版心:版心(可视区)指网页中的主体内容区域。

  1. <style>
  2. div {
  3. width: 1000px;
  4. height: 300px;
  5. background-color: pink;
  6. margin: 0 auto;
  7. }
  8. </style>

          10.1.10 盒子模型- 外边距合并问题

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

            场景:垂直布局 的 块级元素, 上下的margin会合并

            结果:最终两者距离选取margin的最大值

            解决方法:避免就好

                              只给其中一个合作设置margin即可

  1. <style>
  2. div {
  3. width: 100px;
  4. height: 100px;
  5. background-color: pink;
  6. }
  7. .one {
  8. /* margin-bottom: 50px; */
  9. margin-bottom: 60px;
  10. }
  11. .two {
  12. margin-top: 50px;
  13. }
  14. </style>

          10.1.11 盒子模型- 外边距塌陷问题

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

            场景:互相嵌套 的 块级元素,子元素的 margin-top 会作用在父元素上

            结果:导致父元素一起往下移动

            解决方法:1. 给父元素设置border-top 或者 padding-top (分隔父子元素的margin-top)

                              2. 给父元素设置overflow:hidden

                              3. 转换成行内块元素

                              4. 设置浮动

        

  1. <style>
  2. .father {
  3. width: 300px;
  4. height: 300px;
  5. background-color: pink;
  6. /* padding-top: 50px; */
  7. /* 如果设计稿没有border,不能使用这个解决方法*/
  8. /* border: 1px solid #000; */
  9. /* 给父元素设置overflow:hidden */
  10. /* overflow:hidden; */
  11. /*3. 转换成行内块元素 */
  12. /* display: inline-block; */
  13. /*4. 设置浮动 */
  14. float: left;
  15. }
  16. .son {
  17. width: 100px;
  18. height: 100px;
  19. background-color: skyblue;
  20. margin-top: 50px;
  21. }
  22. </style>


 

           10.1.12 盒子模型- 行内元素的垂直内外边距问题

             场景:行内元素使用内外边距来改变位置

             结果:行内元素垂直位置无法改变,只生效水平位置的改变

             解决方法:1. 转换为别的显示模式

                               2. 设置行高来改变垂直位置

        

  1. <style>
  2. body {
  3. background-color: skyblue;
  4. }
  5. span {
  6. /* margin: 100px;
  7. padding: 100px; */
  8. /* 不转显示模式,加行高就能使它垂直方向变动 */
  9. line-height: 100px;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <!-- 行内元素 内外边距 margin padding -->
  15. <!-- 行内元素如果想要通过marginpadding改变行内标签的垂直位置,无法生效,只生效水平位置 -->
  16. <!-- 行内标签的margin-topbottom 不生效 -->
  17. <!-- 行内标签的padding-topbottom 不生效 -->

        

 ​​​​​​​


the end!

原文链接:https://blog.csdn.net/loney_k/article/details/124476925




所属网站分类: 技术文章 > 博客

作者:大师兄

链接:http://www.qianduanheidong.com/blog/article/361092/67763df944b4870a0a17/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)