Blogger Information
Blog 8
fans 0
comment 0
visits 5435
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
盒模型常用属性、元素的重新计算及元素的垂直对齐技术(前端第六课)
不加糖的浓咖啡
Original
695 people have browsed it

盒模型常用属性

属性简介

css样式将一个元素以矩形框的形式生成出来,显示在页面上。这个矩形框必须有中心内容区(content),四周有内边距(padding)、边框(border)、外边距(margin),由里向外,里面一层总被外层包围,这就是盒模型的主要构成。
盒模型的几个常用属性:
1.content:中心内容区,四周区域可选。
2.padding:内边局,透明的,只可设置宽度,不能设置背景色。但默认情况下,内容区的背景色会延伸到padding区域。所以不做处理,我们不易看到内边距部分,影响盒子的大小。
3.border:边框线,可设置框线颜色、类型、大小,如果边框是虚线,从虚线的间隔出可以看到内容区元素的背景色。
4.margin:外边距。背景透明,只能设置宽度。影响盒子的位置。
5.outline:位于边框(border)和外边距(margin)之间,不占用空间,多用于布局开发。

通过创建一个盒模型进行属性举例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
  6. <title>盒子模型</title>
  7. <style>
  8. .box{
  9. width:200px;
  10. height:180px;
  11. }
  12. .box.box1{
  13. /* 设置内边距宽度 */
  14. padding:15px;
  15. /* 设置边框宽度 */
  16. border:2px solid red;color:brown;
  17. /* 裁剪出内容区背景色,显示出内边距。因为内容区背景色默认会延伸到内边距,所以这样做便于看出内边距在哪里 */
  18. background-color:brown;
  19. background-clip:content-box;
  20. }
  21. .box.box2{
  22. /* 设置外边距 */
  23. margin:20px;
  24. /* 设置内边距宽度 */
  25. padding:15px;
  26. /* 设置边框宽度 */
  27. border:2px solid red;
  28. /* 裁剪出内容区背景色,显示出内边距。因为内容区背景色默认会延伸到内边距,所以这样做便于看出内边距在哪里 */
  29. background-color:brown;
  30. background-clip:content-box;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="box box1"></div>
  36. <div class="box box2"></div>
  37. </body>
  38. </html>

元素大小的重新计算:box-sizing的用法

  • 元素的大小的计算方式,在css样式中可以给元素添加一个box-sizing属性来进行改变,默认属性值为box-sizing:conntent-box。当使用默认值时,元素的默认大小会跟随padding、border大小的改变而改变(这里不考虑margin),属性值改为box-sizing:border-box,无论padding、border的大小怎么改变,元素的整体大小不变。
  • 也就是属性为box-sizing:content-box时,css样式的width属性、height属性值落在盒子的内容区上。属性为box-sizing:border-box,元素的width、height属性值有效范围到盒子的边框(包含边框),这样会使页面元素的计算非常简单,一般用到页面的初始化。
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>用户自定义元素大小的计算方式</title>
  7. <style>
  8. /* 样式初始化举例 */
  9. *{
  10. margin:0px;
  11. padding:0px;
  12. /* 设置元素的计算方式,这里为了突出两种使用情况的区别,就不在页面初始化中使用了 */
  13. /*box-sizing:border-box;*/
  14. }
  15. .box{
  16. width:100px;
  17. height:100px;
  18. }
  19. .box.one{
  20. padding:20px;
  21. border:3px solid black;
  22. background-color:coral;
  23. background-clip:content-box;
  24. }
  25. .box.two{
  26. padding:30px;
  27. border:3px solid black;
  28. background-color:coral;
  29. background-clip:content-box;
  30. }
  31. .box.three{
  32. padding:20px;
  33. border:3px solid black;
  34. background-color:coral;
  35. background-clip:content-box;
  36. box-sizing:border-box;
  37. }
  38. .box.four{
  39. padding:30px;
  40. border:3px solid black;
  41. background-color:coral;
  42. background-clip:content-box;
  43. box-sizing:border-box;
  44. }
  45. </style>
  46. </head>
  47. <body>
  48. <!-- box-sizing默认值为content-box -->
  49. <div class="box one"></div>
  50. <!-- 改变padding后的box -->
  51. <div class="box two"></div>
  52. <!-- box-sizing默认值为border-box -->
  53. <div class="box three"></div>
  54. <!-- 改变padding后的box -->
  55. <div class="box four"></div>
  56. </body>
  57. </html>

定位元素的水平与垂直对齐技术

css样式中利用position属性(用于将元素转化为定位元素,常用的有绝对定位、相对定位、固定定位)及margin属性的auto(让浏览器自动计算外边距,它会让浏览器尽可能把边距分配给你设置的方向部分)值来实现元素的对齐。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>定位元素的水平和垂直对齐方式</title>
  7. </head>
  8. <style>
  9. /* margin:auto 实现元素的水平垂直居中 */
  10. .box{
  11. width:300px;
  12. height:300px;
  13. background-color: blueviolet;
  14. position:relative;
  15. }
  16. .box1{
  17. width: 100px;
  18. height:100px;
  19. background-color:red;
  20. /* 水平居中,在它的父容器中居中 ,auto会使浏览器自动计算元素的外边距,这样做就做到左右外边距平均分配了。不能用设置固定值来计算,如果父容器的宽度大小发生改变,你自己计算出然后设置的固定值就不在是居中位置所需的值。在日常中,我们设备宽度的改变就是一个宽度经常改变的例子*/
  21. margin-left:auto;
  22. margin-right:auto;
  23. }
  24. .continer{
  25. width:300px;
  26. height:300px;
  27. background-color: blueviolet;
  28. position:relative;
  29. }
  30. .box2{
  31. width: 100px;
  32. height:100px;
  33. background-color:red;
  34. /* 垂直居中,通过观察我们发现,设备屏幕的高度处于无限的状态。所以在高度不确定(不受限)的情况下,我们很难垂直居中,margin-top/bottom的值默认为0,不能通过这种设置来实现垂直居中*/
  35. /* 通过绝对定位的方式实现垂直居中,我们将元素的父容器转化为一个定位元素 ,让当前元素的上下文充满整个父级*/
  36. position:absolute;
  37. /* 左上角开始 */
  38. top:0;
  39. left:0;
  40. /* 右下角结束 */
  41. right:0;
  42. bottom:0;
  43. /* 因为需要设置margin四个方向的属性,margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;这里我们可以简化写成下面这种形式。 */
  44. margin:auto;
  45. }
  46. </style>
  47. <body>
  48. <div class="box">
  49. <div class="box1"></div>
  50. </div>
  51. <hr/>
  52. <div class="continer">
  53. <div class="box2"></div>
  54. </div>
  55. </body>
  56. </html>


以上主要运用了元素定位的知识,及css样式中的margin属性的特性来实现。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:不错, 图很直观
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post