CSS补充

简介: CSS补充

文档流(定位流,普通流,浮动流)

1、普通流定位 static(默认方式)

普通流定位,又称为文档流定位,是页面元素的默认定位方式

页面中的块级元素:按照从上到下的方式逐个排列

页面中的行内元素:按照从左到右的方式逐个排列

但是如何让多个块级元素在一行内显示?

这里就引出了浮动定位

2、浮动定位 float

float属性 取值为 left/right

脱离文档流

3、相对定位 relative

元素会相对于它原来的位置偏移某个距离,改变元素位置后,元素原本的空间依然会被保留

语法

属性:position

取值:relative

配合着 偏移属性(top/right/bottom/left)实现位置的改变

4、绝对定位 absolute

如果元素被设置为绝对定位的话,将具备以下几个特征

1、脱离文档流-不占据页面空间

2、通过偏移属性固定元素位置

3、相对于 最近的已定位的祖先元素实现位置固定

4、如果没有已定位祖先元素,那么就相对于最初的包含块(body,html)去实现位置的固定

语法

属性:position

取值:absolute

配合着 偏移属性(top/right/bottom/left)实现位置的固定

5、固定定位 fixed

将元素固定在页面的某个位置处,不会随着滚动条而发生位置移动

语法

属性:position

取值:fixed

配合着 偏移属性(top/right/bottom/left)实现位置的固定

高度塌陷问题

在文档流中,父元素的大小会被子元素撑开。

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<styletype="text/css">
.a{
border: 5px solid blue;
	}
.b{
width: 200px;
height: 200px;
background-color: pink;
	}
</style>
<body>
<divclass="a">
<divclass="b"></div>
</div>
</body>

如图:

如果给子元素设置浮动,就会脱离文档流,导致高度塌陷。

因此下面的元素也会随之上移。

解决高度塌陷问题

  1. 元素浮动
  2. 设置父元素固定高度
  3. 触发BFC

BFC 定义

BFC(Block formatting context)直译为”块级格式化上下文”。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。通俗一点讲,可以把 BFC 理解为一个封闭的大箱子,容器里面的子元素不会影响到外面的元素,反之也如此。

  1. 当元素出发BFC后会具有如下特点:
  1. 开启BFC后,元素不会被浮动元素覆盖。
  2. 元素垂直外边距不会传递给父元素。

    HTML
1
2
3
4
5
6
7
8
9
10
11
12
<styletype="text/css">
.cube{
width: 100px;
height:100px;
background-color: black;
margin: 100px;
	}
</style>
<body>
<divclass="cube"></div>
<divclass="cube"></div>
</body>
  1. margin理应有200px,实际上只有100px。
    块的上外边距margin-top和下外边距margin-bottom会合并为单个边距,大小为单个边距的最大值

    HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<styletype="text/css">
.cube{
width: 100px;
height:100px;
background-color: black;
margin: 100px;
	}
.container{
overflow: hidden;
	}
</style>
<body>
<divclass="container">
<divclass="cube"></div></div>
<divclass="cube"></div>
  1. 用overflow:hidden出发BFC即可解决。
  2. 开启BFC后,元素可以包含浮动的子元素

如何触发BFC

  • 设置元素浮动:使用这种方式开启,虽然可以撑开父元素,但是会导致父元素的宽度丢失,而且使用这种方式也会导致下边的元素上移,不能解决问题
  • 设置元素绝对定位
  • 设置元素为inline-block:可以解决问题,但是会导致宽度丢失,不推荐使用这种方式
  • 将元素的overflow设置为一个非visible的值
  • display:flex;display:flow-root;

推荐方式:将overflow设置为hidden是副作用最小的开启BFC的方式。 display:flow-root;副作用较小,但是不兼容IE,看情况使用。

最好的解决高度塌陷clearfix

CSS

1
2
3
4
5
6
.clearfix::before,.clearfix::after{
content:'';
display:table;
clear:both;
}

此方法既能解决高度塌陷,又能解决子元素的margin传递给父元素的问题。

目录
相关文章
|
Web App开发 前端开发 JavaScript
CSS补充之--页面布局、js补充,dom补充
CSS补充之--页面布局 主站一:(下面是一个大致的模板) 这里的内容会自动居中 这样是把网站分为了上中下三部分,最上面是头部,中间是主要内容,下面是底部的信息 后台管理...
875 0
|
JavaScript 前端开发
css补充、JavaScript、Dom
css补充: position: fixed:可以将标签固定在页面的某个位置 absolute+relative:通过两者的结合可以让标签在一个相对的位置 代码例子:(通过fixed标签将某些内容固定在某个位置) Title .
1142 0
|
前端开发
Bootstrap3.0学习第九轮(CSS补充)
详情请查看http://aehyok.com/Blog/Detail/15.html   个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:http://www.cnblogs.com/aehyok/p/3981965.html 感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,那不妨点个推荐吧,谢谢支持:-O。
557 0
|
2天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
13 0
HTML5/CSS3粒子效果进度条代码
|
5天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
21 1
|
10天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
10天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
10天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。