当前位置: 首页 > news >正文

CSS知识复习2

文章目录

  • 盒子模型
    • CSS长度单位
    • 元素的显示模式
    • 修改元素的显示模式
    • 盒子模型的组成
    • 关于默认高度
    • 盒子内边距(padding)
    • 盒子边框(border)
    • 盒子外边距(margin)
      • 注意事项
      • margin塌陷
      • margin合并
    • 处理内容溢出
    • 隐藏元素方式
    • 样式继承
    • 默认样式
    • 布局小技巧
  • 浮动
    • 浮动特点
    • 浮动影响以及解决方法
    • 浮动相关属性
  • 定位
    • 相对定位
    • 绝对定位
    • 固定定位
    • 粘性定位
    • 定位层级
  • 布局
    • 版心
    • 常用布局名词
    • 重置默认样式

盒子模型

CSS长度单位

px :像素。
em :相对元素 font-size 的倍数。
rem :相对根字体大小,html标签就是根。
% :相对父元素计算。
注意: CSS 中设置长度,必须加单位,否则样式无效!

元素的显示模式

在这里插入图片描述
块元素和行内块元素可以通过CSS设置宽高,行内元素不行

修改元素的显示模式

display

盒子模型的组成

CSS 会把所有的 HTML 元素都看成一个盒子,所有的样式也都是基于这个盒子。
margin(外边距): 盒子与外界的距离。
border(边框): 盒子的边框。
padding(内边距): 紧贴内容的补白区域。
content(内容):元素中的文本或后代元素都是它的内容。
在这里插入图片描述
盒子的大小 = content + 左右 padding + 左右 border 。
注意:外边距 margin 不会影响盒子的大小,但会影响盒子的位置。

关于默认高度

所谓的默认宽度,就是不设置 width 属性时,元素所呈现出来的宽度。
总宽度 = 父的 content — 自身的左右 margin 。
内容区的宽度 = 父的 content — 自身的左右 margin — 自身的左右 border — 自身的左右padding 。

盒子内边距(padding)

padding 复合属性的使用规则:

  • padding: 10px; 四个方向内边距都是 10px 。
  • padding: 10px 20px; 上 10px ,左右 20px 。(上下、左右)
  • padding: 10px 20px 30px; 上 10px ,左右 20px ,下 30px 。(上、左右、下)
  • padding: 10px 20px 30px 40px; 上 10px ,右 20px ,下 30px ,左 40px 。(上、右、下、左)

注意点:

  • padding 的值不能为负数。
  • 行内元素 的 左右内边距是没问题的,上下内边距不能完美的设置。
  • 块级元素、行内块元素,四个方向内边距都可以完美设置。

盒子边框(border)

在这里插入图片描述

border-style 、 border-width 、 border-color 也是复合属性。

盒子外边距(margin)

注意事项

块级元素、行内块元素,均可以完美地设置四个方向的 margin ;但行内元素,左右margin 可以完美设置,上下 margin 设置无效。
margin 的值也可以是 auto ,如果给一个块级元素设置左右 margin 都为 auto ,该块级
元素会在父元素中水平居中。
margin 的值可以是负值。

margin塌陷

什么是 margin 塌陷?
第一个子元素的上 margin 会作用在父元素上,最后一个子元素的下 margin 会作用在父元素上。
如何解决 margin 塌陷?
方案一: 给父元素设置不为 0 的 padding 。
方案二: 给父元素设置宽度不为 0 的 border 。
方案三:给父元素设置 css 样式 overflow:hidden。

margin合并

什么是 margin 合并?
上面兄弟元素的下外边距和下面兄弟元素的上外边距会合并,取一个最大的值,而不是相加。
如何解决 margin 塌陷?
无需解决,布局的时候上下的兄弟元素,只给一个设置上下外边距就可以了。

处理内容溢出

在这里插入图片描述
overflow 常用的值是 hidden 和 auto

隐藏元素方式

方式一:visibility 属性
visibility 属性默认值是 show ,如果设置为 hidden ,元素会隐藏。
元素看不见了,还占有原来的位置(元素的大小依然保持)。
方式二: display 属性
设置 display:none ,就可以让元素隐藏。
彻底地隐藏,不但看不见,也不占用任何位置,没有大小宽高。

样式继承

有些样式会继承,元素如果本身设置了某个样式,就使用本身设置的样式;但如果本身没有设置某个样
式,会从父元素开始一级一级继承(优先继承离得近的祖先元素)。
会继承的属性
字体属性、文本属性(除了vertical-align)、文字颜色 等。
不会继承的属性
边框、背景、内边距、外边距、宽高、溢出方式 等。
一个规律:能继承的属性,都是不影响布局的,简单说:都是和盒子模型没关系的。

默认样式

优先级:元素的默认样式 > 继承的样式,所以如果要重置元素的默认样式,选择器一定要直接选择器
到该元素。

布局小技巧

  • 行内元素、行内块元素,可以被父元素当做文本处理。
    即:可以像处理文本对齐一样,去处理:行内、行内块在父元素中的对齐。
    例如: text-align 、 line-height 、 text-indent 等。
  • 如何让子元素,在父亲中 水平居中:
    若子元素为块元素,给父元素加上: margin:0 auto; 。
    若子元素为行内元素、行内块元素,给父元素加上: text-align:center 。
  • 如何让子元素,在父亲中 垂直居中:
    若子元素为块元素,给子元素加上: margin-top ,值为:(父元素 content -子元素盒子总高) / 2。
    若子元素为行内元素、行内块元素:
    让父元素的 height = line-height ,每个子元素都加上: vertical-align:middle。
    补充:若想绝对垂直居中,父元素 font-size 设置为 0

浮动

最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。

浮动特点

脱离文档流。
不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开(尽可能小),而且可以设置宽、高。
不会独占一行,可以与其他元素共用一行。
不会 margin 合并,也不会 margin 塌陷,能够完美的设置四个方向的 margin 和 padding 。
不会像行内块一样被当做文本处理(没有行内块的空白问题)。

浮动影响以及解决方法

对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟
无影响。
对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元
素。
如何解决?清除浮动
方案一: 给父元素指定高度。
方案二: 给父元素也设置浮动,带来其他影响。
方案三: 给父元素设置 overflow:hidden 。
方案四: 在所有浮动元素的最后面,添加一个块级元素,并给该块级元素设置 clear:both 。
方案五: 给浮动元素的父元素,设置伪元素,通过伪元素清除浮动,原理与方案四相同。===> 推荐使用

.parent::after {content: "";display: block;clear:both;
}

布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。

浮动相关属性

在这里插入图片描述

定位

相对定位

给元素设置 position:relative 即可实现相对定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。
参考点是相对自己原来的位置
特点:
不会脱离文档流,元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。
定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
默认规则是:

  • 定位的元素会盖在普通元素之上。
  • 都发生定位的两个元素,后写的元素会盖在先写的元素之上。

left 不能和 right 一起设置, top 和 bottom 不能一起设置。
相对定位的元素,也能继续浮动,但不推荐这样做。
相对行为的元素,也能通过 margin 调整位置,但不推荐这样做。
注意:绝大多数情况下,相对定位,会与绝对定位配合使用。

绝对定位

给元素设置 position: absolute 即可实现绝对定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。
参考点是包含块。
什么是包含块?
对于没有脱离文档流的元素:包含块就是父元素;
对于脱离文档流的元素:包含块是第一个拥有定位属性的祖先元素(如果所有祖先都
没定位,那包含块就是整个页面)。

固定定位

position: fixed
参考点是视口

粘性定位

position:sticky
参考点:离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先。
特点:
不会脱离文档流,它是一种专门用于窗口滚动时的新的定位方式。
最常用的值是 top 值。

定位层级

定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
如果位置发生重叠,默认情况是:后面的元素,会显示在前面元素之上。
可以通过 css 属性 z-index 调整元素的显示层级。
z-index 的属性值是数字,没有单位,值越大显示层级越高。
只有定位的元素设置 z-index 才有效。
如果 z-index 值大的元素,依然没有覆盖掉 z-index 值小的元素,那么请检查其包含块的层级。

布局

版心

在 PC 端网页中,一般都会有一个固定宽度且水平居中的盒子,来显示网页的主要内容,这是网页
的版心。
版心的宽度一般是 960 ~ 1200 像素之间。
版心可以是一个,也可以是多个。

常用布局名词

在这里插入图片描述

重置默认样式

方案一:使用全局选择器
方案二:reset.css
方案三:Normalize.css

http://www.dtcms.com/a/266983.html

相关文章:

  • 3-1 PID算法改进(积分部分)
  • Softhub软件下载站实战开发(十二):软件管理编辑页面实现
  • 科学的第五范式:人工智能如何重塑发现之疆
  • 力扣打卡第二十一天 中后遍历+中前遍历 构造二叉树
  • 【Qt】QxORM无法删除和更改主键值为0的行,否则报错:invalid primary key
  • Docker学习笔记:Docker网络
  • DotNetBrowser 2.27.14 版本发布啦!
  • Python 制作 pyd(Windows 平台的动态链接库)
  • 力扣:70. 爬楼梯
  • [Terence Tao访谈] 无限 | 关注模型 | 矢量场 | 策略性“作弊” | Lean
  • 【Prometheus 】通过 Pushgateway 上报指标数据
  • 408第三季part1 - 操作系统 - 输入输出管理
  • pyproject.toml 有什么作用呢?
  • Java对象哈希值深度解析
  • vue/微信小程序/h5 实现react的boundary
  • 汽车功能安全概念阶段开发【相关项定义HARA】2
  • 【Mysql系列】Mysql 多级隔离级别揭秘
  • 使用Python绘制图片拆分工具
  • 风平浪静、无事发生
  • 论文解读:《DeepGray:基于灰度图像和深度学习的恶意软件分类方法》
  • OneCode 智能化UI布局与定位:注解驱动的视觉编排艺术
  • 图灵完备之路(数电学习三分钟)----数据选择器与总线
  • 使用alist+RaiDrive+webdav将百度夸克网盘变为本地电脑磁盘方法教程
  • 《人生顶层设计》读书笔记7
  • J20250704 算法题5道
  • css-多条记录,自动换行与自动并行布局及gap兼容
  • 智能私域运营中枢:从客户视角看 SCRM 的体验革新与价值重构
  • $route
  • Dash 安装使用教程
  • 浅层神经网络:原理与Python实现