html&CSS-----浮动

这篇具有很好参考价值的文章主要介绍了html&CSS-----浮动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 目录

前言:

 浮动

1.浮动的效果 

2.浮动的特点

 3.浮动的写法

4.浮动的原理

5.浮动的作用

 6.案例

7.浮动的缺陷与解决方式

浮动问题 

解决方式

 8.补充说明


前言:

        浮动是html里面重要的一部分,前面我们学习了三种元素的类型(块级元素,行内元素和行内块元素),今天我们就学习浮动元素,通过浮动元素我们可以更好的去对页面进行设置和操作,以达到我们想要的效果。

 浮动

1.浮动的效果 

html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 以上是浮动的样式效果,我们平时在网页上看到的一边图片一边文字等组合的一般都是通过浮动来实现的。

2.浮动的特点

 特点

                1. 半脱离文档流(不在页面占空间 ,图文环绕)

                2. 浮动边界是父元素决定

                3. 可以设置w,h ,m,p

                4. 没有设置w,h  w,h 内容决定

                5. margin:0 auto( 多余空白区域处理   )   不会生效

                6. 浮动元素无法覆盖内联元素

文档流说明:平时我们都是用普通文档流的,而浮动是半脱离文档流,其特点是不会占用空间,我们可以理解为这个盒子浮起来了,其下面是有空间的可以接着放东西。

        

 普通文档流

浏览器在默认情况下规定一个块元素在父元素内的排列规则:

  • 从上往下排列

  • 从左开始排列

  • 一个块元素占一行

 3.浮动的写法

浮动分为左浮和右浮,分别是left和right,其样式写法是很直接的:

左浮动  float: left;

右浮动  float: right;

两边都浮动  float: both;

4.浮动的原理

浮动之前盒子样式如下:html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 浮动之后盒子样式如下:

html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 

这里我给你们看个例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            background-color:  yellow;
            width: 200px;
            height: 200px;
            /* 设置为左浮动 */
            float: left;
        }
        .box2{
            background-color: green;
            height: 200px;
            width: 300px;
        }
        .box3{
            background-color:cornflowerblue;
            height: 200px;
            width: 400px;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body> 
</html>

效果如下: 

html&CSS-----浮动,html和css框架,html,css,前端,职场和发展 这里的第一个黄色的盒子已经浮起来了,所以会把下面第二个绿色的盒子部分给覆盖掉,而网页的“观察视角是俯视的”,所以效果如上所示。

5.浮动的作用

浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距。从而实现让块元素可以通过浮动来左右相邻。说白了就是让不同的盒子在同一行进行显示。

 6.案例

下面我来通过浮动元素来进行一个界面的操作

html代码: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./demo.css">
</head>
<body style="background-color: bisque;">
    <div class="boqi">
        <div class="kun">
            <img src="../image/b80011126e6d48a55f8b2eb9adca0689-2.gif" alt="显示失败">
        </div>
        游彩虚村
        <br>
        [唐] 淳禄仁
        <br>
      寂寥苏山荔枝肥,泥坠毫湿不晚耕。
    <br>
    苔痕梅幽争霞头,梅景树枝高菜生。
    </div>
</body>
</html>

 CSS代码:

.boqi{
    width: 800px;
    height: 1000px;
    border: 2px solid rebeccapurple;
    margin: 0 auto;
    background-image: url(../image/11月29日.jpg);
    background-repeat: no-repeat;
    font-family: 华文行楷;
    font-size: 25px;
    color:  black;
    text-align: center;
}
.kun
{
    /*设置为左边浮动*/
    float: left;
}

效果:html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 这个就是我通过浮动元素的特点来首先图文环绕的效果,一边是图片一边是文字。

7.浮动的缺陷与解决方式

浮动问题 

 当父级元素没有设置高度时,高度会由文档流内容撑开。

而当子元素浮动之后,脱离了文档流,所以父级高度不会被撑开,这对我们后续的布局结构会造成很多困扰。

 先看个没有设置高度的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul li{
            border: 2px solid red;
            height: 100px;
            width: 100px;
            /* 删除掉小圆点 */
            list-style: none;
            /* 设置为左浮 */
            float: left;
        }
        .box{
            /* 盒子居中放置 */
            margin: 0 auto;
            background-color: blueviolet;
            width: 300px;
        }
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
</body> 
</html>

html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 这里就出现了一个问题,我没有去设置盒子的高度时,浮动元素不会撑起盒子,这就导致了盒子没有显示出来,并不是我们想要的效果

解决方式

解决高度塌陷方法:

  • 方法1 -- 子元素加clear

    在浮动元素后面加一个空的子元素,并给其CSS属性clear

    <div style="clear:both"></div

    clear取值: left 清除左浮动 | right 清除右浮动 | both 清除所有浮动

  • 方法2 -- 父元素加宽高

    直接规定父元素的宽高,就不存在塌陷问题了。缺点是,得手动计算合适的宽高,并且扩展性不好。

  • 方法3 -- 父元素BFC(Block formatting context)化

    父元素满足下列条件之一即可:

    • 根元素

    • float属性不为none

    • position不为static和relative

    • overflow不为visible(较常用,通常设置overflow : hidden来解决高度塌陷

    • display为inline-block / table-cell / table-caption / flex / inline-flex

  • 方法4 -- 父元素利用伪类after

    当前最主流的方式,利用伪元素,相当于给父级多加了一个子元素,同时我们可以将样式公用,所有需要清除浮动的父元素加上一个相同的class名clear就可以解决

 所以我们只需要在style中或者CSS代码里面加上以下这一段代码就行了。

    /* 浮动的解决方式 */
        ul::after{
            display: block;
            content: '';
            /* 设置为两边都进行清除 */
            clear: both;
        }

解决之后的效果:html&CSS-----浮动,html和css框架,html,css,前端,职场和发展

 8.补充说明

  • 注意:元素浮动之后,不再支持margin:auto,只支持margin确切的值。

  • 遇到父元素时浮动元素会停止不动。

  • 设置浮动元素的上一个元素是普通文档流中的元素,元素相对于水平垂直位置不动。

  • 推荐使用浮动来做横向布局而不是inline-block

    line-block布局的基线对齐处理较为麻烦,浮动不用担心这个问题;

    line-block布局空格会被解析显示在页面中,浮动不用担心这个问题。

  • list-style:none;清除ul或ol的默认项目符号。

  • min-width max-width

好了以上就是今天的全部内容了,我们下一期再见! 

分享一张壁纸: html&CSS-----浮动,html和css框架,html,css,前端,职场和发展文章来源地址https://www.toymoban.com/news/detail-604328.html

到了这里,关于html&CSS-----浮动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端|CSS系列第3篇】CSS盒模型、浮动及定位

    在前端开发中,CSS是一项重要的技术,用于控制网页的样式和布局。在本系列的第三篇文章中,我们将学习CSS的盒模型、浮动以及定位,这些概念和技术在页面布局中起着至关重要的作用。通过本文的学习,希望能够帮助大家更好地理解和运用这些关键概念。 CSS盒模型是用来

    2024年02月11日
    浏览(54)
  • CSS笔记(黑马程序员pink老师前端)浮动,清除浮动

    浮动可以改变标签的默认排列方式。浮动元素常与标准流的父元素搭配使用. 网页布局第一准则 :多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。 float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。 1.浮动元素

    2024年02月09日
    浏览(52)
  • 前端学习笔记:CSS中浮动的原理,定位

    这是本人学习的总结,主要学习资料如下 马士兵教育 float设计的初衷是为了有文字环绕图片的效果,比如下图。 所以有浮动效果的元素一定不会遮挡其他元素的文字。比如有两个 div ,两个 div 都有文字,正常文字在 div 左上角。 我们设置一个浮动一个不浮动,我们会看到浮

    2024年02月03日
    浏览(53)
  • 3-web前端 css 网页样式语言,基础语言、盒子模型、浮动

    html和css的关系:   HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的标准标记语言。它负责定义网页的结构和内容。HTML使用各种标签来包含文本、链接、图 片、视频等元素,并可以与如JavaScript等其他技术结合使用,实现网页的动态功能。   CSS (Cascading S

    2024年02月08日
    浏览(65)
  • 40个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,html_css【附视频+源码】

    当下前端开发可以说是一个比较火的职业,所以学习的人比较多,不管是培训还是自学都是希望通过前端可以找到一份好的工作,但是很多自学的朋友在自学过程中有些盲目,不仅大大降低了学习的效率,而且也会打击自己的学习热情。 那么当我们学习了前端的一部分知识之

    2023年04月09日
    浏览(65)
  • 前端基础HTML、CSS--6(CSS-3)

    1.CSS的三大特性 CSS有三个非常重要的三个特性:层叠性、继承性、优先级。 1.1层叠性 相同选择器给设置相同的样式 ,此时一个样式就会 覆盖(层叠) 另一个冲突的样式。层叠性主要解决样式冲突的问题。 层叠性原则: ·样式冲突,遵循的是 就近原则 ,哪个样式离结构近

    2023年04月08日
    浏览(47)
  • web前端——HTML+CSS

    HTML CSS CSS进阶 CSS盒子模型 定位装饰 CSS精灵图 目录 基础认识  HTML  一、HTML概念 二、HTML页面固定结构  三、HTML标签的结构   四、标签学习 1、排版标签 1)标题标签  2)段落标签  3)换行标签 4)水平线标签  2、文本格式化标签  3、媒体标签 1)图片标签 2)路径  3)音

    2024年01月16日
    浏览(56)
  • 前端(HTML + CSS + JS)

    HTML是超文本标记语言,超文本是指文本、声音、图片、视频、表格、链接等等。标记表示由许许多多的标签组成。HTML页面是运行到浏览器上的。 (1)HTML 文件基本结构 html 标签是整个 html 文件的根标签(最顶层标签) head 标签中写页面的属性 body 标签中写的是页面上显示的内

    2024年02月05日
    浏览(49)
  • CSS样式前端HTML页面常用CSS效果实现及其相关配置信息------前端入门基础教程

    !DOCTYPE html !-- 这是HTML的注释 -- html lang=\\\"en\\\" id=\\\"myHtml\\\"     head         !-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 --         meta charset=\\\"UTF-8\\\"         meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"         titleHtmlAll/title         

    2024年02月05日
    浏览(59)
  • 前端基础:HTML和CSS简介

    目录 1、HTML 简介 (1)在 HTML 中引入外部 CSS (2)在 HTML 中引入外部 JavaScript 2、CSS 简介 (1)CSS 的基本语法 (2)三种使用 CSS 的方法 2.1 - 外部 CSS 的使用 2.2 - 内部 CSS 的使用 2.3 - 行内 CSS 的使用         HTML 指的是超文本标记语言 ( H yper  T ext  M arkup  L anguage), 标记语

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包