盒子模型


盒子模型(框模型 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. 食用Win系统自带的PowerShell登录服务器

    运行powershell输入ssh root@你的服务器ip -p你的端口 切换rm ~/.ssh/known_hosts cmd 运行 ping 你的ip -t一直ping ctrl+c停止 tra ...

  2. luoguP1036 选数 暴力AC题解

    luoguP1036 选数 暴力AC题解(非正解) 俗话说得好:暴力出奇迹,打表拿省一. 对于一些暴力就能拿分的题,暴力就好啦QWQ 题目描述   输入格式 输出格式 输入输出样例 定义变量 我们令输 ...

  3. android 官方教程地址和一个中文教程

    https://developer.android.google.cn/guide/components/fundamentals http://www.runoob.com/w3cnote/andr ...

  4. 记一次svg反爬学习

    网址:http://www.porters.vip/confusion/food.html 打开开发者工具后 页面源码并不是真实的数字,随便点一个d标签查看其样式 我们需要找到两个文件,food.cs ...

  5. Day15_用户中心接口说明

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 用户中心 ...

  6. Seaborn实现回归分析

    import numpy as np import pandas as pd from scipy import stats,integrate import matplotlib.pyplot as ...

  7. Ubuntu chmod 命令修改文件chmod读写权限

    Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限 chmod 命令有两种使用方式 一. chmod [u/g/o/a] [+/-/=] [r/w/x] filename [ ]里都代表 ...

  8. 7.12 NOI模拟赛 探险队 期望 博弈 dp 最坏情况下最优策略 可并堆

    LINK:探险队 非常难的题目 考试的时候爆零了 完全没有想到到到底怎么做 (当时去刚一道数论题了. 首先考虑清楚一件事情 就是当前是知道整张地图的样子 但是不清楚到底哪条边断了. 所以我们要做的其实 ...

  9. 6.10 省选模拟赛 小C的利是 高斯消元 矩阵行列式

    LINK:小C的利是 想起来把这道题的题解写了 .一个常识:利是在广东那边叫做红包. 关于行列式的题目 不过我不太会23333..口胡还是可以的. 容易想到10分的状压.不过没什么意思. 仔细观察要求 ...

  10. samba服务及配置

    samba 目录 samba 1. samba简介 2. samba访问 配置示例 3.搭建用户认证共享服务器 4.搭建匿名用户共享服务器 1. samba简介 Samba是在Linux和UNIX系统 ...