盒子模型


盒子模型(框模型 box model)

  - 浏览器在渲染页面时,它会将页面中的每一个元素都想象成是一个矩形的盒子。

  - 想象成盒子以后,对于页面的布局就变成了如何摆放盒子

  - 每一个盒子从内到外都有以下几个部分组成

内容区(content):内容区决定这个盒子能装多少东西(子元素)

内边距(padding):内容区和边框之间的距离

边框(border):盒子的边框,边框,是盒子的边界,出了边框就是盒子外部的

外边距(margin):盒子距离其他盒子的距离

边框(border

边框相关的三个样式

  border-color 边框的颜色    border-color:#00ffcc;

  border-style 边框的样式     border-style:dashed;

  border-width 边框的宽度    border-width:30px;

边框会影响到盒子的可见框大小

border-width表示边框的宽度

  - 可以通过该属性分别制定边框四个方向的宽度

  border-width: 10px 20px 30px 40px;

  如果指定了四个宽度,则会分别设置上右下左四个方向的边框的宽度

  border-width: 10px 20px 30px;

  三个值:上 左右 下

  border-width: 10px 20px;

  两个值:上下 左右

  border-width: 10px;

  一个值:上下左右

border-color边框的颜色,可以分别指定四个边的颜色,规则和border-width一样。

  border-color: red orange blue aqua; ----顺时针旋转

  border-color: silver;

border-style 指定边框的样式

  solid 实线

  dotted 点状虚线

  dashed 虚线

  double 双线

  border-style: solid dotted dashed double;------顺时针旋转

  border-style: solid dotted dashed ;--------------左右

  border-style: solid dotted;------------------------上下左右

  border-right: yellow solid ;

边框(border

  不指定宽度,默认宽度 一般3px

  不指定颜色,默认使用字体颜色-随字体颜色变

  边框可同时设置四个方向边框的宽度、颜色、样式,并且没有顺序要求

border:red 10px solid

  除了border还有四个

  border-top 上   border-right 右  border-bottom 下  border-left 左

内边距(padding边框和内容区之间的距离叫做内边距

  盒子的可见框大小由内容区,内边距和边框共同决定

  四个方向的内边距

  padding-top 上  padding-right 右  padding-bottom下  padding-left 左

   通过padding来同时设置四个方向的内边距,规则和border-width一样

  padding: 10px 20px 30px 40px;

  padding: 10px 20px 30px ;

  padding: 10px 20px  ;

  padding: 10px   ;

外边框(margin

  当前盒子和其他盒子之间的距离,外边距不会影响盒子的可见框的大小,但是外边距会影响到盒子实际占地的大小,影响盒子的位置

  四个方向的外边距:

    margin-top  margin-right  margin-bottom  margin-left

  由于在浏览器中默认情况下,元素是靠左靠上排列的,所以设置上左外边距时,会移动元素自身,而设置下和右外边距时,会移动其他元素

  外边距可以是负值,如果是负值则元素会向相反方向移动    margin-top: -50px;

  同时设置四个方向的外边距margin: 10px 20px 30px 40px;

水平方向布局

  子元素在父元素的位置是父元素的内容区

  子元素在父元素中的水平方向的布局,必须满足如下等式

  margin-left + border-left + padding-left + width + padding-right + border-right + margin-right = 父元素的width7个值和[自动补全]=父元素的宽度)

  在水平方向,有三个值可以设置auto

    分别是 margin-left width margin-right

  设置为auto以后,浏览器会自动计算该属性的值

    - 若七个值和相加不等于父元素宽度,则属于过度约束,则浏览器会自动调整右外边距的值

    - 如果将margin-left 或 margin-right 的一侧设置为auto,则另一侧会设置尽量大的值

    - 若left和right都设置auto,则会将两侧外边距设置相等的值,导致子元素在父元素中水平居中

垂直方向布局:(简单)

  margin-top+border-top+padding-top+height+margin-bottom+border-bottom+padding-bottom=父元素高度

  box1>box2:

  width设置auto时,子元素会占满父元素

  height设置auto时,父元素的高度由子元素内容决定

1. 当父元素写死时,子元素的高度高于父元素时,会溢出,溢出的子元素不会影响页面布局。

  使用 overflow 来设置溢出内容的处理方式:

    可选值:

    visible,默认值 溢出内容不会被裁剪直接在父元素外部显示

    hidden,溢出的内容会被裁剪超过父元素的不会显示

    scroll,生成滚动条,可以通过滚动条查看完整内容,滚动条一直在

    auto,根据需要生成滚动条

2. 兄弟元素的外边距的折叠(margin

.box1{

height:100px;

Width:100px;

Margin-bottom:100px;

}

.box2{

height:100px;

Width:100px;

Margin-top:100px;

}

  外边距的折叠,垂直方向相邻的外边距,会发生外边距折叠现象。

  兄弟元素间的相邻外边距,会去两个外边距间的最大值(正值);如果是负值,取绝对值较大的。

  两个外边距:相邻的外边距,谁大用谁的距离

  一正一负:取两个值的和

3. 父子元素的外边距折叠

  父子元素的相邻垂直外边距,子元素的外边距会传递给父元素

.box1{

width:200px;

heigth:300px;

background-color:#bfa;

border-top:1px red solid;

}

.box2{

width:200px;

heigth:300px;

background-color:orange;

margin-top:100px;

}

4. 文档流(常规流、标准流)

  -文档流是网页中的一个位置,默认情况下页面中的所有元素都在文档流中排列

  -块元素在文档流中的特点

  1. 自上向下进行排列(独占一行)
  2. 默认宽度和元素一样
  3. 默认高度被内容撑开

    <div>   </div>

  -行内元素在文档流中的特点

  1. 自左向右水平排列,如果一行中不足以容纳所有元素则切换到下一行继续自左向右水平排列
  2. 默认高度和宽度都会被内容撑开

    <span>   </span>

5. 行内元素的盒模型

  内联元素不支持设置宽度和高度<span>   </span>

  内联元素可以设置padding(border),但垂直方向padding(border)不会影响页面的布局

  内联元素支持水平方向的外边距,不支持垂直方向的

6. display

  -指定元素所产生的框的类型

  -可选值:

    inline行内元素

    block块元素

    inline-block行内块元素

      -既有行内元素的特点,不会独占一行;又有块元素的特点,可设置宽高

    none元素不在页面中显示

      内联元素无法改变宽度和高度,将超链接变成块元素,就可以改变大小

    display:block;

a{

width:200px;

height:200px;

background:#ofd;

dispaly:none;

}

.box1:hover a {   ////鼠标碰到连接时出现

display:block;///////////inline

}

7. visibility设置元素的显示状态

  可选值:visible:默认值,元素正常显示

  hidden不显示元素,但元素依旧占据位置

  display:none :不显示元素,而且不占据位置

8. 二级菜单

  当鼠标移动到xxx时,显示二级菜单

  .outer>xxx:hover .inner{祖先与后代关系

    display:block;}

9. 默认样式

为了确保网页在没有样式的情况下,也可以浏览,所以浏览器都会为网页设置一些默认样式,对开发者来说没有任何作用,并且不同的浏览器所设置的默认样式不同,开发中第一件事就是去除浏览器的默认样式。

*{margin:0;

padding:0;   去掉所有边框,外边界}

重点:CSS权威指南---利用reset.css直接引入,可以去除所有默认样式推荐

normalize.css--统一

10. 块元素和行内元素一般情况下,只会在块中放内联元素,不会向内联元素放块元素

块元素:用于页面的布局            p:不能放任何块元素

行内元素:主要用于页面中选中文字  a:什么都能放,除了自己

11. .img-list

{height:190px;

width:470px;

background-color:#33ffss;

margin:auto;     //居中

list-style:none;   //去掉列表前面的样式}

.img-list img{

height:100%;

width:100%;}

<ul class=’img-list’>

<li><a href=”#”><img src=”img/1.jpg”></a></li>

<li><a href=”#”><img src=”img/2.jpg”></a></li>

<li><a href=”#”><img src=”img/3.jpg”></a></li>

</ul>

12. 文本修饰text-decoration:none: 去除下划线

<style>

.nav {width:190px;

height:450px;

padding:10px 0;

margin:0 auto;

list-style:none;

background-color:white;}

.nav li {height:25px;

padding-left:18px;}

.nav li:hover{

background-color:gray;}

.nav li a{

font-size:18px;

text-decoration:none;

color:#333;}

.nav li a:hover{

color:red;}

</style>

<ul class=’nav’>

<li><a href=”#”>xxx</a></li>

<li><a href=”#”>xxx</a><a href=”#”>xxx</a><a href=”#”>xxx</a></li>

<li><a href=”#”>xxx</a><a href=”#”>xxx</a><a href=”#”>xxx</a></li>

</ul>

HTML基础-03的更多相关文章

  1. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  2. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

  3. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  4. day33-线程基础03

    线程基础03 6.用户线程和守护线程 用户线程:也叫工作线程,当线程的任务执行完或者通知方法结束.平时用到的普通线程均是用户线程,当在Java程序中创建一个线程,它就被称为用户线程 守护线程(Daem ...

  5. ADO.NET基础03

    数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础      它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...

  6. php基础03:数据类型

    <?php // day01:数据类型 //01.字符串 $x = "hello world"; echo $x; echo "<br>"; ...

  7. MYSQL基础03(日期函数)

    工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期 select NOW() -- 结果:2015-10-28 22:41:11 ),NOW() -- 结果 2015- ...

  8. CSS基础(03)

    1.简单了解浏览器是如何渲染页面和加载页面            浏览器就是通过HTTP 协议与服务器进行通信,取到数据之后进行渲染的过程,如图:    这图是园友的看着挺符合我思路就直接拿来用了,从 ...

  9. PHP语言基础03 By ACReaper

    03.01逻辑运算符 &&,and ||,or xor 这里只强调一点用and或者or的话,记得加上括号,不然可能出错,至于原因我也不是很清楚,反正尽量直接用&&,|| ...

  10. [UnityShader基础]03.透明度混合

    如果要渲染半透明物体,那么就需要用到透明度混合. 需要注意的有这几点: 1.设置标签:Tags { "Queue"="Transparent" "Ig ...

随机推荐

  1. 浏览器如何执行JS

    作为JS系列的第一篇,内容当然是浏览器如何执行一段JS啦. 首先通过浏览器篇我们可以得知,JS是在渲染进程里的JS引擎线程执行的.在此之后还要了解几个概念,编译器(Compiler).解释器(Inte ...

  2. 使用PowerShell自动编译部署前端

    前言 最近在开发一套管理系统,做了前后端分离. 后台使用的是Asp.Net Core 3.1 前端使用的是Vue+Ant Design 自己搞了一台云服务器,打算把系统部署到云服务器上.以供外网访问. ...

  3. 【JVM之内存与垃圾回收篇】方法区

    方法区 前言 这次所讲述的是运行时数据区的最后一个部分 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理 栈.堆.方法区 ...

  4. WPF 有缩放时显示线条的问题

    公司项目已经开发好几年了,用的WPF开发的,期间遇到好多问题,都是些小细节.很久没有写博客了,以后有时间还是需要写写博客啊!作为分享也好.记录也好,利人利己嘛. 今天主要说一下显示线条的问题,因为我们 ...

  5. P4547 [THUWC2017]随机二分图(状压,期望DP)

    期望好题. 发现 \(n\) 非常小,应该要想到状压的. 我们可以先只考虑 0 操作. 最难的还是状态: 我们用 \(S\) 表示左部点有哪些点已经有对应点, \(T\) 表示右部点有哪些点已经有对应 ...

  6. 题解 洛谷 P3247 【[HNOI2016]最小公倍数】

    题意可以转化为是否能找一条从\(u\)到\(v\)的路径,经过的边的\(a\)和\(b\)的最大值恰好都是询问所给定的值. 若只有\(a\)的限制,可以将询问离线,对边和询问都从小到大排序,然后双指针 ...

  7. django-模板之标签

    目录 模板 模版是纯文本文件,可以生成任何基于文本的文件格式,比如HTML,XML,CSV等.Django模版语言致力于在性能和简单性上取得平衡.Django的模版系统并不是简单的将Python嵌入到 ...

  8. jmeter接口测试 -- 上传文件(multipart/form-data数据请求)

    一.环境 jmeter5.2.1 二.具体步骤 1.抓取接口的请求数据 2.填写jmeter的数据 1) 信息头管理器 2) 填写 “参数” 3) 填写 “文件上传” 三.检验接口. 1.响应数据 - ...

  9. Qt-操作xml文件

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7AB?p=12 xml简介:可扩展标记语言,标准通用标记语言的子集,简称XML.是一种用于标记电 ...

  10. Python编程无师自通PDF高清完整版免费下载|百度网盘

    百度网盘:Python编程无师自通PDF高清完整版免费下载 提取码:cx73 内容介绍 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 作者从文科毕业,通过自学编程转行为专业程 ...