前端自学 - CSS总结篇(二)

一、文章概述

本篇文章的大概内容是:

  • 对齐方式 (内联元素的对齐 & 块级元素的居中)
  • 盒子模型(标准盒子模型 & 怪异盒子模型)
  • display 的一些用法(行、块元素的使用 & 物体的显示与隐藏)
  • float 浮动 以及 float 的清除(清除浮动的方法)

二、对齐方式

在web网页开发中,内联元素,默认的对齐方式是为基线对齐

在这里插入图片描述
划分:粉色为顶线,蓝色为中线,绿色为基线,红色为底线

  • 顶线:中文汉字的的上端沿;
  • 中线:横过英文字母x的中间的线;
  • 基线:基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿;
  • 底线:中文汉字的下端沿;
  • 内容区:是指底线和顶线包裹的区域(行内元素display:inline可以通过background-color属性显示出来),实际中不一定看得到,但确实存在。内容区的大小依据font-size的值和字数进行变化。
  • 在行块元素中,基线是 margin 的边缘
     

参考文章:https://www.cnblogs.com/lsm-boke/p/14532718.html

三、盒子模型

(一) 概念

CSS 中非常常用的 思维模型,可以把每一个标签(元素)看作是一个矩形的盒子,而我们的网页 页面就是由各个盒子通过不同的排列方式进行堆叠组成的,盒子之间彼此影响。

(二) 分类

标准盒子模型(W3C标准规定后所出现的盒子模型)
怪异盒子模型(IE盒子模型)

(三) 标准盒子模型

标准盒子模型

content (内容):展示内容的区域

  • 大小 widht 与 height 决定

padding (内填充):介于内容与边框之间 padding的颜色与内容的颜色一致
border (边框):单独设置
margin (外填充):透明的区域
 

重点:盒子实际大小
宽度 = width + padding * 2 + borde * 2 +margin * 2
高度 = height + padding * 2 + borde * 2 +margin * 2

(四) 怪异盒子模型

也是由 content + padding + border + margin 组成
 在这里插入图片描述
 
通过观察上方 gif 图片 可以感受到 怪异盒子模型与标准盒子模型的区别在于:
怪异盒子的 宽度 = width + padding + border
实际宽度 = width + margin * 2
使用方法:设置属性 box-sizing,属性值:border-box;

(五) padding 的写法

padding:5px;
padding-left:5px;
padding-right
padding-top
padding-bottom
padding:10px 20px ; 上下padding 为10px, 左右为20px
padding:10px 20px 30px; 上为10px, 左右为 20px, 下为30px;
padding:10px 20px 30px 40px;上右下左分别为 10px 20px 30px 40px

(六) margin 的问题

margin 重叠的问题
 

  • 如果两个元素在垂直方向上有 margin ,则两个元素之间的距离取 margin 较大值。
  • 父子嵌套时,子元素设置 margin-top ,并且父子元素之间没有其他的元素,浏览器会把子元素的 margin-top 作用与父元素。
     

解决方法:

  • 父元素设置浮动;
  • 父元素设置 padding-top: 1px;
  • 父元素设置 boder-top:透明线条
  • 父元素设置 display: inline-block; 同时拥有块级元素和内联元素的特性
  • 父元素设置 overflow:hidden; 为 非 visible(默认值); (推荐)

margin 双倍边距
 

  • 在IE6 下,如果设置了左浮动,并且也设置了 margin-left ,那么实现margin 效果是 两倍 margin-left方法
     

解决方法: 设置display: inline;

四、display 的一些用法

(一) 作用

修改元素本身表现的一个特性

(二) 属性值

inline: 当前元素表现为内联标签的特性

  • 无法设置宽高,大小有内容决定。
  • 可以设置水平方向margin、padding、border;
  • 垂直给方向 padding、boder 会遮挡其他元素;
     

block:当前元素表现为块级标签的特性

  • 父元素宽度的 100%,独占一行
     

table-cell: 单元格特性
 

inline-block:具有内联元素的特性 同时具有块级元素的特性

  • 不会独占一行;
  • 可以设置宽高, margin、padding、boder

(三) 显示与隐藏

display: none;可以隐藏某个元素

  • 文档中元素隐藏
  • 占用空间被收回,处于被隐藏元素下方的元素,会占用被隐藏元素的空间
     

display: block;将被隐藏元素显示出来,并占有元素自身大小的空间
 

注意:该方法不适合用于隐藏然后出现的动画特效,会导致动画失效

五、float 浮动

(一) 浮动定义

浮动可以设置元素在水平方向上,向左或者向右排列,直到遇到外边缘或碰到父级边框,浮动就会停止

(二) 浮动语法

float: left | right;

(三) 浮动的影响

  • 浮动会 改变块级元素 独占一行的特性;
  • 浮动元素 不会 影响前面的元素,但是 会 影响到后面的元素
  • 浮动元素会 脱离 文档流,所占据的文档空间将被浏览器回收,并分配给后面的元素,从而导致浮动元素 在继承了浮动元素位置的元素上方;
  • 父元素中,的所有元素都浮动,会导致父元素高度崩塌;
  • 如果当前块级元素 没有设置宽度 ,设置浮动后,会将宽度压缩到,内容的大小;
  • 内联元素浮动之后,可以设置宽高。

(四) 清除浮动

clear:left | right | both;

(五) 清除浮动对父元素的影响

  • 添加一个空标签,设置 clear; (不够完善)
  • 给父元素直接设置高度;(知道子元素高度时,使用)
  • 父元素也浮动 (可以解决父元素高度问题,但是会影响后面的元素);
  • 父元素设置 overflow:hidden | auto;(ie9以下不支持 为完美方案)
伪元素清除浮动方法:
.clear::before,
.clear::after {
	content: '';
	display: table;
}
.clear::after {
	clear: both;
}

相关文章


在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只 小网虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值