CSS盒子模型及浮动

CSS的三大特性

a.层叠性
  • 就近原则,哪个样式离结构近,就执行哪个样式
  • 样式不冲突不会层叠
b.继承性

例如:给div这个样式的同时会给p这个样式

<div>
    <p>2345</p>
</div>
  • 子元素可以继承父元素的样式(text-, font-, line-这些元素开头的可以继承,以及color属性)
  • 简化代码

行高的继承性

body {
   font:12px/1.5 'Mircrosoft YaHei'
子元素继承了父元素body的行高的1.5倍
}

<body>
    <div> 1234 </div>
    <p>   1234 </p>
</body>
c.优先级

当同一个元素指定多个选择器,就有优先级的产生

  • 选择器相同,则执行层叠性
  • 选择器不同,则根据选择器权重执行
选择器选择器权重
继承或者*0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
ID选择器0,1,0,0
行内样式style=""1,0,0,0
!important无穷大

1.CSS盒子模型

1.1边框(border)

border可以设置元素的边框

border: border-width || border-style || border-color
属性作用
border-width定义边框粗细,单位是px
border-style边框的样式,solid实线边框,dashed虚线边框,dotted点线
border-color边框颜色

边框简写:

border: 1px solid red; 没有顺序
1.2表格的细线边框

边框会影响盒子实际大小

border-collapse属性控制浏览器绘制表格边框的方式,它控制相邻单元格的边框

border-collapse:collapse;
  • collapse单词是合并的意思
  • border-collapse: collapse;表示相邻边框合在一起
1.3内边距(padding)

内边距也会影响盒子实际大小

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

简写:

值的个数表达意思
padding: 5px上下左右
padding: 5px 10px上下5px 左右10px
padding: 5px 10px 20px上5px 左右10px 下5px
padding: 5px 10px 20px 30px上5px 右10px 下20px 左30px 顺时针

如果盒子本身没有指定width/height属性,则此时padding不会撑开盒子大小

(写了width: 100%可撑开)

1.4外边距(margin)

margin属性用于设置外边距,即控制盒子与盒子之间的距离

margin简写方式代表的意义跟padding完全一致

外边距可以让块级盒子水平居中,但需符合两个条件:

1)盒子必须制定了宽度(width)

2)盒子左右的外边距都设置为auto

.header { width:960px; margin:0 auto;}

行内元素或者行内块元素水平居中,给父元素添加text-align: center即可

父元素和子元素都用margin,会出现嵌套块元素塌陷的情况

解决方案:

  • 为父元素定义上边框/上内边距
  • 为父元素添加overflow: hidden
1.5内外边距的清除

网页元素很多都带有默认的内外边距,不同1浏览器不同,在布局前要清楚网页元素的内外边距

* {
    margin: 0;
    padding: 0;
}

行内元素为了照顾兼容性,尽量只设置左右的内外边距

去掉li前面项目符号的小圆点

list-style:none;
圆角边框
border-radius:length;  //length为数值或百分比(圆的半径)

radius半径(圆的半径)原理:(椭)圆与边框的交集形成圆角效果

圆角矩形设为高度的一半,也可以设置不同的圆角,四个值按顺时针显示出效果

盒子阴影

使用box-shadow属性添加阴影。语法:

box-shadow: h-shadow v-shadow blur spread color inset
描述
h-shadow必需。水平阴影的位置,允许负值
v-shadow必需。垂直阴影的位置,允许负责制
blur可选,模糊距离
spread可选,阴影的尺寸
color可选,阴影的颜色
inset可选,将外部阴影(outset)改为内部阴影
文字阴影

使用text-shadow属性


2.CSS浮动float

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

语法:

选择器 {float: 属性值(left/right/none[默认]);}
2.1标准流(普通流/文档流)

标签按照规定好的默认方式排列,最基本的布局方式

1.块级元素,从上向下排列

常用元素:div,hr,p,h1~h6,ul,ol,dl,form,table

2.行内元素,从左到右排列,碰到父元素边缘则自动换行

常用元素:span,a,i,em

  • 如果要把几个div排成一行,则要用display: inline-block;
  • 浮动可以改变元素标签默认的排列方式(可以让多个块级元素在一行内排列显示)

多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

2.2浮动特性

a.脱标

  • 脱离标准普通流的控制(浮)移动到指定位置(动),(俗称脱标)
  • 浮动的盒子不再保留原先的位置

b.浮动一行显示

  • 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列
  • 浮动的元素是互相贴靠在一起的

c.浮动元素具有行内块元素特性

  • 任何元素都可以浮动,不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性

  • 如果行内元素有了浮动,则不需要转换就可以直接给高度和宽度

  • 如果块级元素没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定

2.3浮动元素和标准流父级搭配使用

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置

3.常见网络布局模式

3.1常见网络布局

header -> banner -> main(left/right) -> footer

浮动布局注意点

浮动的盒子只会影响浮动盒子后面的标准流(一般都设置为浮动)

3.2清除浮动

浮动盒子不占用位置,最后给父级盒子高度为0时。会影响下面的标准流盒子,因此要清除浮动。清除浮动后,父级就会根据浮动的子盒子自动检测高度,父级有了高度,就不会影响下面的标准流了。

语法:

选择器{clear:属性值(both);}

方法:闭合浮动

a.父级添加overflow属性

添加overflow属性,将其属性值设置为hidden,auto或scroll

overflow: hidden(缺点:溢出隐藏)

b.父级添加 :after伪元素

代码实现:

.clearfix:after{
    content: "";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.clearfix {
    /*IE6、7 专有*/
    *zoom: 1;
}

c.父级添加双伪元素

代码实现:(前后插盒子,闭合浮动)

.clearfix: before,cleardix:after {
    content: "";
    display: table;
}
.clearfix: after {
    clear: both;
}
.clearfix {
    *zoom: 1;
}

d.额外标签法(clear: both) //必须是块级元素

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值