网站首页 > 基础教程 正文
网页布局的本质:使用CSS将盒子摆到对应位置。
三种传统布局方式
1. 标准流(普通流):标签按照默认情况排列。最基本的布局方式。
如块元素独占一行、行内元素一行可以排列多个等排列方式。
2. 浮动
作用:可以更改标签默认的排列方式。
应用:可以让多个块级元素横向一行内排列显示。
3.定位
今天学习浮动的语法、特性和清除浮动。
浮动
语法:
float:none | left | right;
代码使用
div {
width: 150px;
height: 150px;
border: 1px solid red;
}
.dfFloat {
width: 800px;
height: 200px;
border: 1px solid black;
}
.dFl {
float: left;
}
.dFr {
float: right;
}
<div class="dfFloat">
<div class="dFl">左浮动</div>
<div class="dFr">右浮动</div>
</div>
浮动的特性
① 浮动元素会脱离标准流,不再保留原来的位置。
在该元素下方的标准流元素会跟着上一个标准流元素继续向下排列,且浮动元素会覆盖下方标准流元素,形成重叠显示的效果。
② 浮动元素会一行内从左向右排列显示并且元素顶部对齐。
③ 任何元素都可以添加浮动,添加浮动的元素就具有行内块元素的特性。
浮动元素经常与标准流父元素搭配使用。
div {
width: 150px;
height: 150px;
border: 1px solid red;
}
/* 标准流盒子 */
.divBOne {
height: 456px;
}
.dBOne {
background-color:antiquewhite;
}
.dBTwo {
background-color:aqua;
}
.dBThree {
background-color:blanchedalmond;
}
/* 添加浮动后的三个盒子 */
.divFOne {
/*
添加浮动时,必须添加父元素的宽度;
当父元素宽度大于且等于所有子元素的宽度之和时,子元素会在一行内从左向右排列。
如果父元素的宽度小于子元素宽度之和,那么就会有子元素被挤到下一行重新从左侧排列。
*/
width: 456px;
}
.dFl {
float: left;
}
<h3>标准流下的三个盒子</h3>
<div class="divBOne">
<div class="dBOne">1</div>
<div class="dBTwo">2</div>
<div class="dBThree">3</div>
</div>
<h3>添加浮动后父元素宽度大于且等于所有子元素宽度之和</h3>
<div class="divFOne">
<div class="dBOne dFl">1</div>
<div class="dBTwo dFl">2</div>
<div class="dBThree dFl">3</div>
</div>
div {
width: 150px;
height: 150px;
border: 1px solid red;
}
/* 标准流盒子 */
.divBOne {
height: 456px;
}
.dBOne {
background-color:antiquewhite;
}
.dBTwo {
background-color:aqua;
}
.dBThree {
background-color:blanchedalmond;
}
.divFTwo {
width: 400px;
height: 300px;
}
.dFl {
float: left;
}
<h3>添加浮动后父元素宽度小于所有子元素宽度之和</h3>
<div class="divFTwo">
<div class="dBOne dFl">1</div>
<div class="dBTwo dFl">2</div>
<div class="dBThree dFl">3</div>
</div>
网页布局第一准则:多个块级元素纵向排列找标准流、多个块级元素横向排列找浮动。
网页布局第二准则:先确定盒子大小,再确定盒子位置
ul {
width: 830px;
height: 200px;
background-color: pink;
}
ul li {
width: 200px;
height: 200px;
background-color: purple;
list-style: none;
float: left;
margin-right: 10px;
}
.last {
margin-right: 0;
}
<h3>浮动元素搭配标准流父元素ul布局</h3>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li class="last">4</li>
</ul>
清除浮动
清除浮动的本质:清除浮动元素脱标造成的影响。
清除浮动的策略:闭合浮动。
语法:
clear:left |right |both
当父元素盒子本身具有高度,一般不会影响到下面元素排列,则不需要清除浮动。
当父元素盒子没有高度时,而子元素浮动后脱标,继而影响到后续盒子的排列。这个时候就需要清除浮动。
清除浮动的方法:
没有清除浮动时
.box {
width: 800px;
border:1px solid blue;
margin: 0 auto;
}
.boxLeft {
width: 300px;
height: 200px;
background-color: purple;
float: left;
}
.boxRight {
width: 200px;
height: 200px;
background-color: pink;
float: left;
}
.footer {
height:50px;
background-color: antiquewhite;
}
<h4>没有清除浮动时的状态</h4>
<div class="box">
<div class="boxLeft"></div>
<div class="boxRight"></div>
</div>
<div class="footer"></div>
- 额外标签法,又称隔墙法。
在最后一个浮动元素的后面添加一个带有清除浮动样式的额外标签。且该标签只能是块元素。
代码示例:
/* 在没有清除浮动的css代码基础上添加clear清除浮动选择器 */
.clear {
clear:both;
}
<div class="box">
<div class="boxLeft"></div>
<div class="boxRight"></div>
<!--在最后一个浮动子元素的后面添加带有清除浮动属性的空标签 -->
<div class="clear"></div>
</div>
<div class="footer"></div>
- 给浮动子元素的父级元素添加overflow属性;
overflow:hidden | auto | scroll;
代码示例:
/* 在没有清除浮动的css代码基础上添加overflow属性清除浮动*/
.boxFater {
overflow: hidden;
}
<div class="box boxFater">
<div class="boxLeft"></div>
<div class="boxRight"></div>
</div>
<div class="footer"></div>
- 父级元素添加after伪元素;
/* 在没有清除浮动的css代码基础上添加:after伪元素清除浮动*/
.clearfix:after {
content:"";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
/* IE6、7专用 */
*zoom:1;
}
<div class="box clearfix">
<div class="boxLeft"></div>
<div class="boxRight"></div>
</div>
<div class="footer"></div>
- 父级元素添加双伪元素。
/* 在没有清除浮动的css代码基础上添加双伪元素清除浮动*/
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
/* IE6、7专用 */
*zoom:1;
}
<div class="box clearfix">
<div class="boxLeft"></div>
<div class="boxRight"></div>
</div>
<div class="footer"></div>
明天了解一下常见的几种网页布局。
猜你喜欢
- 2024-11-09 css布局方案汇总(28个实例图文并茂)
- 2024-11-09 css清除浮动 css清除浮动的代码
- 2024-11-09 布局升级秘籍:掌握CSS Grid网格布局,打造响应式网页设计
- 2024-11-09 浅谈CSS布局之圣杯布局和栅格布局
- 2024-11-09 通栏导航栏的制作,综合使用CSS属性,代码不超过30行
- 2024-11-09 CSS网格布局(Grid)与实例 css 网格布局
- 2024-11-09 CSS——解决元素浮动导致的父元素高度塌陷的问题
- 2024-11-09 浅谈css中浮动和清除浮动带来的影响
- 2024-11-09 CSS清除浮动4种方法 css清除浮动4种方法有哪些
- 2024-11-09 css解析——清除浮动实战 css清除浮动是什么意思
- 05-14CSS基础知识(一) CSS入门
- 05-14CSS是什么? CSS和HTML有什么关系?
- 05-14什么是CSS3?
- 05-14CSS如何画一个三角形?
- 05-14初识CSS——CSS三角制作
- 05-14Wordpress建站教程:给图片添加CSS样式
- 05-14HTML和HTML5,css和css3的区别有哪些?
- 05-14Html中Css样式Ⅱ
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- mysql教程 (60)
- pythonif (86)
- location.href (69)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)