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;
}



目录
相关文章
|
1月前
|
前端开发
HTML布局
HTML布局
46 0
|
28天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
15天前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
|
23天前
|
前端开发
HTML 布局1
网页布局对网站外观至关重要。推荐使用 `&lt;div&gt;` 元素进行布局,尽管 `&lt;table&gt;` 也可行但不建议使用。示例代码展示了如何用 `&lt;div&gt;` 创建多列布局,包括头部、菜单、内容和底部区域。
|
1月前
|
人工智能
|
21天前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
WK
|
1月前
|
开发者 Python
Python代码布局规范有哪些
这段内容介绍了Python代码布局的规范,涵盖缩进、空行、行宽、空格使用、注释及顶级定义间的空行等方面,强调使用空格缩进、限制行宽、操作符两侧加空格、简洁注释等实践,旨在提升代码可读性和一致性,便于维护与理解。遵循这些规范能帮助开发者编写更清晰、整洁且易读的Python代码。
WK
45 2
|
23天前
|
前端开发 搜索推荐
HTML 布局3
HTML 布局技巧:使用外部 CSS 样式表可提高站点维护效率,只需编辑一个文件即可更改所有页面布局。创建高级布局耗时,使用模板是快速选项,可通过搜索引擎找到许多免费模板。常用布局标签:`&lt;div&gt;` 定义块级区域,`&lt;span&gt;` 组合行内元素。
|
23天前
|
前端开发
HTML 布局2
使用 HTML `&lt;table&gt;` 标签是一种简单的布局方式,适用于创建多列结构。尽管可以使用表格来设计美观的布局,但其初衷是展示表格化数据,而非作为布局工具。以下示例展示了如何使用三行两列的表格布局,第一行和最后一行使用 `colspan` 属性横跨两列。
下一篇
无影云桌面