HTML基础-03

盒子模型css


 

盒子模型(框模型 box model)浏览器

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

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

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

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

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

边框(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>

相关文章
相关标签/搜索