Python HTML和CSS 8:浮动布局

简介: Python HTML和CSS 8:浮动布局

总体内容


1、浮动

2、使用浮动优化上一篇博客列表制作表单

3、清除浮动


一、浮动



  • 1.1、浮动特性
  • <1>、浮动元素有左浮动(float:left)和右浮动(float:right)两种


image.png


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>两端对齐浮动</title>
    <style type="text/css">
        .box1{
           width: 200px;
           height: 100px;
           background-color: yellow;
        }
        .box1 .a1{
           background-color: red;
           float: left;
        }
        .box1 .a2{
           background-color: brown;
           float: right;
        }
     </style>
</head>
<body>
   <div class="box1">
      <a class="a1">左浮动</a>
      <a class="a2">右浮动</a>
   </div>
</body>
</html>
  • <2>、浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来
  • <3>、相邻浮动的块元素可以并在一行,超出父级宽度就换行
  • <4>、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)
  • <5>、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
  • <6>、父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动
  • <7>、浮动元素之间没有垂直margin的合并


二、用列表制作表单


  • 2.1、思路分析:上篇博客我们采用的是div套a标签的方式,这样的做法有点不正规,这里采用 ul套li,li套a标签的方式,这样是比较规范的一种方式
  • 2.2、具体的效果以及代码如下


image.png



<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>用列表制作表单</title>
   <style type="text/css">
       .menu{
          width: 694px;
          height: 50px;
          /*background-color: aqua;*/
          /* 去除小圆点 */
          list-style: none;
          /* 自定义 margin */
          margin: 50px auto;
          /* 去掉padding */
          padding: 0px;
        }
        .menu li{
           width: 98px;
           height: 48px;
           border: 1px solid gold;
           /* 去除子标签之间的间隙 */
           float: left;
           /* 合并 1px的距离 */
           margin-left: -1px;
        }
        .menu li a{
           background-color: white;
           display: block;
           line-height: 48px;
           /* 控件居中显示 */
           text-align: center;
           color: pink;
           /* 去除下划线 */
           text-decoration: none;
           font-size: 16px;
           font-family: "Microsoft YaHei";
         }
        .menu li a:hover{
            background-color: gold;
            color: white;
        }
        </style>
</head>
<body> 
     <ul class="menu">
         <li><a href="">首页</a></li>
         <li><a href="">公司简介</a></li>
         <li><a href="">解决方案</a></li>
         <li><a href="">公司新闻</a></li>
         <li><a href="">行业动态</a></li>
         <li><a href="">招贤纳才</a></li>
         <li><a href="">联系我们</a></li>
     </ul>
</body>
</html>


三、清除浮动


  • 3.1、我们先看一个问题:父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动,如下


image.png


提示出现这种情况是:子元素给了浮动,父视图没有给 height, 这种情况会出现父视图撑不开的现象,这样的情况下父视图需要清除浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style type="text/css">
       .list{
           width: 210px;
           border: 1px solid #000000;
           margin: 50px auto;
           list-style: none;
           padding: 0px;
       }
       .list li{
           width: 50px;
           height: 50px;
           background-color: gold;
           margin: 10px;
           float: left;
       }
     </style>
</head>
<body>
     <ul class="list">
         <li>1</li>
         <li>2</li>
         <li>3</li>
         <li>4</li>
         <li>5</li>
         <li>6</li>
         <li>7</li>
         <li>8</li>
     </ul>
</body>
</html>


  • 正常的情况是:父级盒子不给高度,子集盒子浮动,父级盒子需要清除浮动


image.png


  • 3.2、清除浮动的解决办法


  • 解决办法一:父级上增加属性overflow:hidden


.list{
    width: 210px;
    border: 1px solid #000000;
    margin: 50px auto;
    list-style: none;
    padding: 0px;
    /* 父级上增加属性overflow:hidden */
    overflow: hidden;
}
  • 解决办法二:在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)


<ul class="list">
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
   <li>5</li>
   <li>6</li>
   <li>7</li>
   <li>8</li>
   <!--第 2 种解决办法: 在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)-->
   <div style="clear: both"></div>
</ul>
  • 解决办法三:使用成熟的清浮动样式类,clearfix


.clearfix:after,.clearfix:before{
     content: "";display: table;
}
.clearfix:after{
     clear:both;
}
/* 用来兼容IE */
.clearfix{
     /* zoom:缩放网页 1:不放大,也不缩小 解决IE浮动的问题 */
    zoom:1;
}



目录
相关文章
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
619 1
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
791 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
642 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
917 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
291 34
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
610 33
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
267 24
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
306 2
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
427 5

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    441
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    344
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    329
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    219
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    443
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    619
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    900
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    232
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    732
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    409
  • 推荐镜像

    更多