CSS 布局
时间:2022-07-28
本文章向大家介绍CSS 布局,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
盒模型
#组成
盒模型主要包含四部分:
- margin
- border
- padding
- content
#两种盒模型
- W3C 标准盒模型:context = width
- IE 盒模型:border + padding = width
#切换盒模型
- box-sizing: content-box; # W3C 盒模型
- box-sizing: border-box; # IE 盒模型
#什么是 BFC?如何形成的?特点是什么?有哪些应用场景?
#什么是 BFC
- Box:Box 是 CSS 布局的对象和基本单位,你可以理解一个页面就是由很多的 Box 组成的
- Formatting Context:即格式化上下文,它是存在页面中的一块独立的渲染区域。
- BFC:全称是 Box formatting Context 翻译过来就是“块级格式化范围”。它是存在于页面中的一块独立渲染的区域,有一套单独的渲染规则。这里的元素不会在布局上影响到外面的元素(比如浮动/定位的元素等等)。 通俗一点讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论怎样翻江倒海,都不会影响到外部。
#如何形成的
- 根元素(
<body>
) - 浮动元素(float 的值不为 none)
- 绝对定位元素(元素的 position 为 absolute 或 fixed)
- 行内块元素(元素的 display 是 inline-block)
- 表格单元格(元素的 display 为 table-cell,HTML 表格单元格默认为该值)
- 表格标题(元素的 display 为 table-caption,HTML 表格标题默认为该值)
- 匿名表格单元格元素(元素的 display 为 table、table-row、 table-row-group、table-header-group、table-footer-group(分别是 HTML table、row、tbody、thead、tfoot 的默认属性)或 inline-table)
- overflow 值不为 visible 的块元素 -弹性元素(display 为 flex 或 inline-flex 元素的直接子元素)
- 网格元素(display 为 grid 或 inline-grid 元素的直接子元素) 等等。
#BFC 特点
- BFC 垂直方向边距(margin)重叠
- BFC 是一个独立的容器,外面的元素不会影响到里面的元素
- BFC 的区域与会与浮动元素的 box 重叠
- 计算 BFC 高度的时候浮动元素也会参与计算
#应用场景
- 防止浮动后导致的父元素高度塌陷
也就是清楚浮动,就是将父元素变为一个 BFC 就可以解决。如设置:overflow:hidden;
- 避免外边距折叠
两个块同在一个 BFC 会造成垂直方向的外边距折叠,但如果对这两个块分别设置 BFC,那么边距重叠的问题就不存在了。
- 不和浮动元素重叠
在一个BFC中使用两个BFC可以做两列布局时使用
#水平居中布局
#空间居中布局
- Grid 布局
.container {
display: grid;
place-items: center;
}
#文字超出显示省略号
- 单行
<style>
p{
/* 控制显示文字的长度 */
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
/*禁止换行显示*/
white-space: nowrap;
background-color: #ffe51a;
}
<style>
<body>
<p>哈哈哈哈哈哈哈,哈哈哈哈哈,哈哈哈哈哈哈哈</p>
</body>
- 多行
<style>
p {
width: 100px;
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
/*控制在3行*/
-webkit-line-clamp:3;
-webkit-box-orient:vertical;
background-color:#ffe51a;
}
<style>
<body>
<p>哈哈哈哈哈哈哈,哈哈哈哈哈,哈哈哈哈哈哈哈</p>
</body>
- 易企秀前端压缩源码分析与还原
- 关于 JS 拖拽功能的冲突问题及解决方法
- 使用 SVG 和 JS 创建一个由星形变心形的动画
- 如何使用 Bootstrap 搭建更合理的 HTML 结构
- Java遍历Map对象的四种方式
- java 线程public void run()中值如何返回
- Jackson与spring框架整合的坑
- spring shiro整合时自动注入的问题
- mybatis获取update的id
- 点击!AWD攻防解题技巧在此!
- Docker 基础技术之 Linux namespace 详解
- Centos6下使用yum安装MariaDB
- Linux下部署Samba服务环境的操作记录
- SCP和Rsync远程拷贝的几个技巧
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Git技术干货!工作中Git的使用实践和常用命令合集!
- gremlin-both()与bothE().bothV()的区别
- C# Time.deltaTime 增量时间
- Docker--docker ps 命令与结果解析
- Junit5系列-Junit5中@DisplayName自定义名称
- Junit5系列-Junit5中Assertions断言类
- 使用libev监视文件夹下文件(夹)属性变动的方案和实现
- C++拾取——stl标准库中集合交集、并集、差集、对称差方法
- netty结合Protostuff传输对象案例,单机压测秒级接收35万个对象
- Kubernates之Deployment滚动升级和回滚
- 简记特定容器list和forward_list算法
- Games101--Assignment2
- 快速学习-如何使用sentinel
- springboot-mybatis-demo遇到的坑
- 快速学习-Sentinel 工作主流程