• 页面布局要学习三大核心,盒子模型、浮动和定位。学好盒子模型能非常好的帮助我们布局。

1.看透网页布局的本质

  • 网页布局过程

    • 先准备好相关的网页元素,网页元素基本都是盒子Box;
    • 利用CSS设置好盒子样式,然后摆放到相应的位置
    • 往盒子里面装内容;
  • 网页布局的核心本质:就是利用CSS摆放盒子!!!

2.盒子模型(Box Model)组成

  • 盒子模型:就是把HTML页面中的布局元素看成是一个矩形的盒子,也就是一个装着内容的容器。
  • CSS盒子模型的本质是一个盒子,封装周围的HTML元素,它包括:边框、外边距、内边距、实际的内容

3.边框border

  • border可以设置元素的边框,边框有三部分组成:边框宽度(粗细)、边框样式、边框颜色
  • 语法格式:
    border: border-width || border-style || border-color
    

4.边框的复合写法

  • CSS边框属性允许你指定一个元素边框的样式和颜色
  • 边框的复合写法:
    border: 1px solid red;  /* 三个参数是没有顺序的! */
    
  • 边框分开写法:
    border-top: 1px solid red;   /*  只设定上边框,其余方向同理  */
    

5.表格的细线边框

  • border-collapse属性控制浏览器绘制表格边框的方式它控制了相邻两个单元格之间的边框。
  • 语法格式:
    border-collapse: collapse;
    
  • collapse单词是合并的意思,border-collapse: collapse;表示相邻的边框合并在一起。

6.边框会影响盒子实际的大小

  • 边框会额外增加盒子的实际大小,因此有两种方法来解决:

    • 测量盒子大小的时候,不测量边框;
    • 如果测量的时候包含了边框,则需要width/height减去边框宽度

7.内边距padding

  • padding属性用于设置内边距,即边框与内容之间的距离。

8.padding的复合写法

  • padding属性(简写属性)可以有1到4个值

9.padding会影响盒子的实际大小

  • 当我们给盒子设置padding值之后,发生了两件事情:

    • 内容和边距有了距离,添加了内边距;
    • padding会影响盒子实际的大小;
  • 注意:如果盒子已经有了宽度和高度,此时再指定内边距,就会撑大盒子。解决方法:如果保证了盒子与效果图大小保持一致,则让width/height减去多出来的内边距大小即可
  • 如果盒子本身没有指定width/height属性,则此时padding不会撑开盒子大小。

10.外边距margin

  • margin属性用于设置外边距,即控制盒子与盒子之间的距离。
  • margin简写方式代表的意义与padding完全一致!

11.外边距的典型应用之块级盒子水平居中对齐

  • 外边距可以让块级盒子水平居中,但是必须满足两个条件:

    • 盒子必须指定了宽度width
    • 盒子左右的外边距都设置为auto
  • 语法格式:
    .header {width: 960px;margin: 0 auto;
    }
    
  • 常见写法用下面的三种:
    • margin-left: auto; margin-right: auto;
    • margin: auto;
    • margin: 0 auto;
  • 注意:上面的方法是让块元素水平居中对齐,如果想让行内元素或行内块元素水平居中,只需要给它的父元素添加text-align: center即可

12.外边距合并

  • 使用margin定义块元素的垂直外边距(即margin-top和margin-bottom)时,可能会出现外边距的合并。主要有下面的两种情况:

    • 相邻元素垂直外边距的合并
    • 嵌套元素垂直外边距的塌陷
1.相邻块元素垂直外边距的合并
  • 当上下相邻的两个块元素(兄弟关系的块元素)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top时,它们之间的垂直间距不是margin-bottom与margin-top之和。取两个值中的较大者这种现象被称为相邻块元素垂直外边距的合并
  • 解决方法:尽量只给一个盒子添加margin值!
2.嵌套元素垂直外边距的塌陷
  • 对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值
  • 解决方法
    • 可以为父元素定义上边框;
    • 可以为父元素定义上内边距;
    • 可以为父元素添加overflow: hidden;

13.清除内外边距

  • 网页元素很多都带有默认的内外边距,而且不同的浏览器默认的值也不一致。因此,我们在布局前,首先要清除网页元素的内外边距。
  • 语法格式:
    * {padding: 0;  /* 清除内边距 */margin: 0;   /* 清除外边距 */
    }
    
  • 注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是,将它转换为块级元素和行内块元素就可以设置上下内外边距了

14.PS的基本操作

  • 因为网页美工大部分效果图都是利用PS软件来做的,所以以后我们大部分切图工作都是在PS中完成。
  • 具体操作如下:
    • 1.文件→打开:打开我们要测量的图片;
    • 2.Ctrl+R:可以打开标尺,或者视图→标尺;
    • 3.右击标尺,把里面的单位改成像素;
    • 4.Ctrl+加号(+)可以放大视图,Ctrl+减号(-)可以缩小视图;
    • 5.按住空格键,鼠标箭头变成小手,拖到PS视图;
    • 6.用选区拖动,可以测量大小;
    • 7.Ctrl+D可以取消选区,或者在旁边空白处点击一下也可以取消选区;

15.综合案例之产品模块

  • 网页布局分析如下:
  • 具体代码流程:
    • box布局
    * {margin: 0;padding: 0;
    }body {background-color: #f5f5f5;
    }.box {width: 298px;height: 415px;background-color: #ffffff;/* 让块级盒子水平居中对齐 */margin: 100px auto;
    }
    <div class="box"></div>
    
    • 图片和段落制作
    .box img {
    /* 图片的宽度和父亲一样宽 */width: 100%;
    }.review {height: 70px;font-size: 14px;/* 因为这个段落标签p没有width属性, 所以padding不会撑开盒子的宽度*/padding: 0 28px;margin-top: 30px;
    }<div class="box"><img src="data:images/img.jpg"><p class="review">快递牛,整体不错蓝牙可以说秒连,红米给力</p>
    </div>
    
    • 评价和详情制作
    .appraise {font-size: 12px;color: #b0b0b0;margin-top: 20px;padding: 0 28px;
    }.info {font-size: 14px;margin-top: 15px;padding: 0 28px;
    }.info h4 {display: inline-block;font-weight: 400;
    }.info span {color: #ff6700;
    }<div class="appraise">来自89757的评价</div>
    <div class="info"><h4>Redmi AirDots真无线蓝...</h4> |<span>99.9元</span>
    </div>
    
    • 竖线细节制作
    a {color: #333;text-decoration: none;
    }.info em {font-style: normal;color: #ebe4e0;margin: 0 6px 0 15px;
    }<div class="info"><h4><a href="#">Redmi AirDots真无线蓝...</a></h4><em>|</em><span>99.9元</span>
    </div>
    
  • 相关问题:
    • 1.布局为什么用不同的盒子,能否只用div

      • 答:标签都是有语义的,合理的地方用合理的标签。例如:产品的标题就用h标签,大量的文字就用p标签。
    • 2.为什么用那么多类名
      • 答:类名就是给盒子起了一个名字,可以更好的找到这个盒子,选取盒子更容易,后期维护也更方便。
    • 3.到底用padding还是margin
      • 答:大部分情况下两个可以混用,两者各有优缺点,但是根据实际情况,总是有更简单的方法实现。

16.综合案例之快报模板

  • 网页布局分析如下:

  • 具体代码流程:

    • 快报模块头部制作
    * {padding: 0;margin: 0;
    }.box {width: 248px;height: 163px;border: 1px solid #ccc;margin: 100px auto;
    }.box h3 {height: 32px;border: 1px dotted #ccc;font-size: 14px;font-weight: 400;line-height: 32px;/* 由于h3标签没有设定width属性,因此padding-left不会撑开盒子 */padding-left: 15px;
    }<div class="box"><h3>品优购快报</h3>
    </div>
    
  • 去掉li标签前的项目符号(小圆点)

    list-style: none;
    
    • 快报模块列表制作
    li {
    /* 去掉li前面的小圆点 */list-style: none;
    }.box ul li a {font-size: 12px;color: #666;text-decoration: none;
    }.box ul li a:hover {text-decoration: underline;
    }.box ul li {height: 23px;line-height: 23px;padding-left: 20px;
    }.box ul {margin-top: 7px;
    }<ul><li><a href="#">【特惠】爆款耳机5折秒!</a></li><li><a href="#">【特惠】母亲节,健康好礼低至5折!</a></li><li><a href="#">【特惠】爆款耳机5折秒!</a></li><li><a href="#">【特惠】9.9元洗100张照片!</a></li><li><a href="#">【特惠】长虹智能空调立省1000元</a></li>
    </ul>
    

16.圆角边框[重点]

  • 在CSS3中,新增加了圆角边框样式,这样盒子模型就可以变成圆角了。
  • radius半径(圆的半径)原理:椭圆与边框的交集形成的圆角效果。

  • 语法格式:
    border-radius: 参数值;
    
  • 参数值可以是具体数值或百分比的形式;
  • 如果是正方形,想要设置为一个圆,把数值修改为高度或宽度的一半即可,或者直接写为50%;
  • 如果是矩形,设置为高度为一半就可以了
  • 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角
  • 分开写:border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius;

17.盒子阴影[重点]

  • 在CSS3中,新增加了盒子阴影,可以使用box-shadow属性为盒子增加阴影。
  • 语法格式:
    box-shadow: h-shadow v-shadow blur spread color inset;
    

  • 默认的是外阴影outset,但是不可以写这个单词,否则会导致阴影无效
  • 盒子阴影不占用空间,不会影响其他盒子排列

18.文字阴影

  • 在CSS3中,我们可以使用text-shadow属性将阴影应用于文本。
  • 语法格式:
    text-shadow: h-shadow v-shadow blur color;
    

19.资料下载

  • 笔记及代码,欢迎star,follow,fork…

12CSS中的盒子模型相关推荐

  1. CSS样式中选择器+盒子模型+定位+浮动

    CSS样式中选择器+盒子模型+定位+浮动 一.选择器 选择器,选择你所需要修饰的HTML元素 1.通配符选择器 <!DOCTYPE html> <html><head&g ...

  2. JAVA web中的盒子模型

    JAVA web中的盒子模型 1.认识盒子模型:所谓盒子模型,就是把HTML页面中的元素,看作是一个个矩形的盒子,也就是一个个盛装内容的容器.每个矩形都由元素的内容.内边距.边框.外边距组成. 例: ...

  3. HTML中的盒子模型

    盒子模型主要由四个部分组成 content(内容):对应盒内内容 border(边框):对应包装盒的外壳,有厚度 margin(外边距):位于边框外部,是边框与外部的间隙 padding(内边距):位 ...

  4. html中怎么让盒子模型居中,通过box盒子模型给元素内容设置居中

    老版本语法 div{ display: -webkit-box; -webkit-box-align:center; //垂直居中 -webkit-box-pack:center;//水平居中 } 新 ...

  5. css中盒子模型的布局

    目录 一 水平布局 二 垂直布局 css中的盒子模型布局分为两种:水平布局和垂直布局 一 水平布局 盒子模型中水平方向影响因素有7个,分别是:margin-left border-left  padd ...

  6. CSS中的标准盒子模型和怪异盒子模型

    一.什么是盒子模型(Box Model) 盒子想必大家都是知道的吧! 生活中我们的快递有盒子包装着,买的蛋糕也是有盒子包装着,我们的礼品也是被盒子包装着. 模型是什么呢? 它是主观意识借助实体或者虚拟 ...

  7. css盒子模型、文档流、相对与绝对定位、浮动与清除模型

    一.CSS中的盒子模型 标准模式和混杂模式(IE).在标准模式下浏览器按照规范呈现页面:在混杂模式下,页面以一种比较宽松的向后兼容的方式显示.混杂模式通常模拟老式浏览器的行为以防止老站点无法工作. h ...

  8. php盒子模型,CSS盒子模型介绍

    什么是CSS盒子模型?CSS盒子模型是为了让我们充分理解p+css模型的定位功能,盒子模型在学习p+css布局方式中必须要学习的一个模型 一.什么是CSS? CSS(Cascading Style S ...

  9. 转HTML+CSS总结/深入理解CSS盒子模型

    原文地址:http://www.chinaz.com/design/2010/1229/151993.shtml 前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverf ...

最新文章

  1. c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化
  2. Dockerfile多阶段构建
  3. 全球变暖java_全球变暖 蓝桥杯
  4. Centos7更换阿里云yum源
  5. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录
  6. React-Native-lesson
  7. 广州市科目三电子路考--大观路通过经验
  8. hashmap 扩容是元素还是数组_曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位?...
  9. 用了自定义Banner后,SpringBoot瞬间变的高大上了...
  10. django xadmin 默认密码_Django的认证系统
  11. COS中访问文件的三种方式
  12. [洛谷P4183][USACO18JAN]Cow at Large P
  13. 现代浏览器(HTML5)缓存接口文档收集
  14. 什么是传感器?不同类型的传感器及其应用
  15. 北斗心脏——高精度时间频率系统
  16. 【插值】插值方法原理详解
  17. 数据结构——图的基本操作
  18. 史上最详细的 Win10系统重装教程(纯净版)
  19. Python中英文翻译工具
  20. video JS实现多视频循环播放

热门文章

  1. 【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现
  2. Visual Studio 2010在简洁中强调团队合作
  3. 如何在Ubuntu/CentOS上安装Linux内核4.0
  4. .NET Reflector反编译的方法
  5. JAVA学习笔记--4.多线程编程 part5.这些年的那些坑
  6. Java基础篇:网络编程
  7. 极客新闻——01、管理之善,在于让员工有机会试错
  8. 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)
  9. 一个技术总监的忠告:精通那么多技术有毛用啊,你还不是不被重用?
  10. 我有点不喜欢分布式中的TCC模式了