CSS的浮动(float)布局效果

发布时间:2024年01月22日

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8" />

? ? <title>浮动(float)布局效果</title>

? ? <style>

? ? ? ? ?*{

? ? ? ? ? ? margin: 0;

? ? ? ? ? ? padding: 0;

? ? ? ? ? ? box-sizing: border-box;

? ? ? ? }

? ? ? ? /*.box1{

? ? ? ? ? ? width: 300px;

? ? ? ? ? ? height: 300px;

? ? ? ? ? ? background-color: red;

? ? ? ? ? ? float: left;

? ? ? ? }

? ? ? ? .box2{

? ? ? ? ? ? width: 100px;

? ? ? ? ? ? height: 100px;

? ? ? ? ? ? background-color: aqua;

? ? ? ? ? ? float: left;

? ? ? ? ? ? float:right;

? ? ? ? } */

? ? ? ? .product{

? ? ? ? ? ? margin: 0 auto;

? ? ? ? ? ? width: 1226px;

? ? ? ? ? ? height: 628px;

? ? ? ? ? ? background-color: pink;

? ? ? ? }

? ? ? ? li{

? ? ? ? ? ? list-style: none; ?

? ? ? ? }

? ? ? ? /* 两个盒子一左一右 */

? ? ? ? .left{

? ? ? ? ? ? width:234px;

? ? ? ? ? ? height: 628px;

? ? ? ? ? ? background-color: skyblue;

? ? ? ? ? ? float: left;

? ? ? ? }

? ? ? ? .right{

? ? ? ? ? ? width: 978px;

? ? ? ? ? ? height: 628px;

? ? ? ? ? ? background-color: brown;

? ? ? ? ? ? float: right;

? ? ? ? }

? ? ? ? .right li {

? ? ? ? ? ? width: 234px;

? ? ? ? ? ? height: 300px;

? ? ? ? ? ? background-color: orange;

? ? ? ? ? ? float: left;

? ? ? ? ? ? margin-bottom: 14px;

? ? ? ? ? ? margin-right: 14px;

? ? ? ? }

? ? ? ? /* 找到第四个li和第八个li去掉右侧的margin */

? ? ? ? .right li:nth-child(4n){

? ? ? ? ? ? margin-right:0px;

? ? ? ? }

? ? </style>

</head>

<body>

? ? <!-- 浮动本质的作用是实习图文混排的效果 -->

? ?

? ? <!-- 标准流

? ? 标准流也叫文档流,指的是标签在页面默认的排布规则,例如:块级元素独占一行,行内元素可以一行显示多个

? ? -->

? ? <!-- 浮动

? ? 作用:让块级元素水平排列

? ? 特点:顶对齐,具备行内块显示模式特点

? ? 属性名:float

? ? 属性值:

? ? left:左对齐

? ? right:右对齐

? ? 注意:加了浮动属性的盒子,会脱标(不会占有标准流的位置)

? ? -->

? ? <!-- <div class="box1">box1</div>

? ? <div class="box2">box2</div> -->

? ? <!-- 产品布局

? ? 版心:左右,右面:8个产品相当于 8个li标签

? ? 细节:如果父级宽度不够,浮动的盒子会掉出父级区域

? ? -->

? ? <!-- 清除浮动

? ? 场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能会导致页面布局混乱)

? ? 解决方法:清除浮动(清除浮动带来的影响)

? ? 1.额外标签法:在父级元素内容的最后添加一个块级元素,设置css属性clear:both(清除两侧浮动的影响)

? ? 注意:得加一个空标签并设置css属性

? ? 2.单伪元素法:直接在div加clearfix类

? ? .clearfix::after{

? ? ? ? content:'';

? ? ? ? display:block;

? ? ? ? clear:both;

? ? }

? ? 注意:同一个div用两个类,只需用空格隔开

? ? 如<div class='box1 box2'></div>

? ? 3.双伪元素(推荐):直接在div加clearfix类

? ? .clearfix::before,

? ? .clearfix:after{

? ? ? ? content:'';

? ? ? ? display:table;(一个大格子,里面有行,行里面是一个一个的单元格)

? ? }

? ? .clearfix::after{

? ? ? ? clear:both;

? ? }

? ? before是用来解决外边距塌陷问题的,after是解决浮动问题

? ? 4.overflow:父元素添加css属性overflow:hidden

? ? 原理:有问题的原因是父级无法被子级撑开高度范围,overflow:hidden会检查父级的范围,这样高度就检查到了

? ? -->

? ? <div class="product">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="right">

? ? ? ? ? ? <ul>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? ? ? <li></li>

? ? ? ? </ul>

? ? ? ? </div>

? ? </div>

</body>

</html>

文章来源:https://blog.csdn.net/m0_59745705/article/details/135753489
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。