块级元素和行内元素,行内块元素

块级元素和行内元素,行内块元素在学习 CSS 的时候发现 发现有些标签会独占一行 典型的例如 div 标签 而某些不会独占一行 典型如 span 标签 其实这是因为 CSS 的标签是有区分元素类型的 元素分类行内元素又称为内联元素 行内元素的大小是靠本身内容的大小 宽高都设置无效 常见的特点如下 与其他行内元素并排设置宽高无效默认的宽度就是文本内容的宽度水平方向的 paddin span div

在学习 CSS 的时候发现,发现有些标签会独占一行,典型的例如

标签。而某些不会独占一行,典型如
标签。其实这是因为 CSS 的标签是有区分元素类型的。

元素分类

行内元素

又称为内联元素,行内元素的大小是靠本身内容的大小,宽高都设置无效。

常见的特点如下:

  • 与其他行内元素并排
  • 设置宽高无效
  • 默认的宽度就是文本内容的宽度
  • 水平方向的 padding 和 margin 属性可以使用。
  • 只能容纳文本级元素和内联元素
  • 注意
    • a 标签可以放块级元素,但是连接里面不能再放连接

常见的行内元素:

标签 作用
标签定义超链接
表示一缩写形式
定义只取首字母缩写
定义字体缩写
可覆盖默认的文本方向
定义大号字体加粗
定义换行
定义计算机代码文本
标签
创建单选或多选菜单
组合文档中的行内元素
定义小号字体

等等…

除了 p 之外,所有的文本级标签都是行内元素,p 是块级元素

块级元素

块元素通常会独占一行,或者多行,它的宽高,边距等都可以设置。

通常有这几个特点

  • 独占一行
  • 可以设置宽度,高度,margin,padding
  • 宽度默认所在容器的宽度
  • 可以容纳内联元素和块级元素
  • 注意
    • 一些文字级标签不能放块元素。例如:

      ~

常见的块级元素:

标签 作用
定义表格标题
定义地址
定义列表中定义条目
定义文档中的分区或节
定义列表
定义列表中的项目
定义一个框架集
创建 HTML 表单

~

定义标题

定义一条水平线
定义段落
定义表格
  • 标签定义列表项目
      定义无序列表
        定义有序列表

        等等…

        行内块元素

        行内块元素从文字上看像块级元素和行内元素结合似的,其实比较特殊,比如, 可以设置宽高属性,这种就称为行内块元素。

        通常有这几个特点。

        • 默认宽度是内容宽度
        • 宽度,高度,行高,margin,padding 都可以设置
        • 和行内元素同一行,之间会留白

        块级元素和行内元素的转换

        display 属性

        通过 display 属性转换,其中 display 有三个值:

        • inline:
          • 值为 inline 将变成行内元素,比如 div
          • 不能设置宽高,和行内元素并排
        • block:
          • 值为 block 的,比如 span
          • 能设置宽高(填充父级),独占一行。
        • inline-block
          • 值为 inline-block 也就是变成行内块元素

        示例代码:

         
           
            
            
           
        div1
        div2
        span1
        div3

        效果
        image
        正如效果图显示,值为 inline 的时候,div1 的宽高无效,仅仅为内容的宽度和高度。div2 为 inline-block 则生效了,而原本 span 是行内元素,设置宽高无效,而且不独占一行,现在设置的值为 block 便都有用了。




        浮动 float 属性

        浮动的目的。最初时,浮动只能用于图像(某些浏览器还支持表的浮动),目的就是为了允许其他内容(如文本)“围绕”该图像。而后来的CSS允许浮动任何元素。

        float 一共有三个值:

        • left
          • 表示左浮动
        • right
          • 表示右浮动
        • none
          • 表示不浮动,默认

        示例代码:

         
           
            
            
           

        效果图:
        image

        如图所示,三个 div ,其中 div1(红色) 左浮动,div2(蓝色) 右浮动,所以 div 1 仅靠在左边,div 2 仅靠在右边,而 div3 没有。

        如果是浮动,将会和其他不同,脱离标准文档流,也就是相当于不占用位置了,漂浮起来。浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

        由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

        浮动的特点

        浮动有几个特点,大概是脱离标准流文档,浮动之间元素相互靠近,收缩。

        • 脱离标准流文档

        示例代码:

         
           
            
            
           

        对 div1 进行浮动时,会脱离文档流,若向右浮动,直到它的右边缘碰到框的右边缘,若向左浮动,脱离文档流并向左移动,直到它的左边缘碰到包含框的左边缘。因为这样,就会导致原有的 div2 被浮动的 div1 覆盖。

        这里还有一种情况:

        示例代码:

         
           
            
            
          

        这是因为标签一旦设置浮动,就没有分块状元素和行内元素,所以原本的行内元素也能设置宽高。

        • 浮动之间元素相互贴近

        在浏览器父级的宽度足够,那么浮动元素紧挨。

        示例代码:

         
           
            
           

        如果宽度不够,就有收缩情况,会根据包含的父级元素,如果太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”,如下情况:

        • 浮动收缩

        示例代码:

         
           
            
            
           
        div1
        div2
        div3

        这里父容器 div 4 的宽度不够,div 3 也就自动下滑了。

        如果不设置宽高,那么宽高也就是文本内容高度和宽度。

        示例代码:

         
           
            
            
           
        特性
        浮动的覆盖规则

        这里并不是任何情况下浮动的元素向左或向右移动直至左右两边碰到包含框的两边才停止。如果某个浮动的元素在移动的过程中,碰到了包含内容的框时,也会停止。

        也就是浮动元素在移动的过程中,除非碰到框没有内容,否则框内的内容会自我调整位置以防止被覆盖。比如

        标签中的文本遇到浮动的框例如图像框,就自我调整位置,使得文字围绕着图像避免被覆盖。还有 包含文字,等等

        这里块级元素即使被覆盖,文字也会围绕在浮动元素旁,因为浮动本身就是为了让文字围绕在图像旁边。

        记住,永远不是一个盒子单独浮动,要浮动就要一起浮动。另外,有浮动,一定要清楚浮动。

        如下 标签包含文字,不会被覆盖

        示例代码:

         
           
            
            
           
        div1
        我是 span
        清除浮动
        • clean
          • left
            • 当前元素左边不能有浮动元素
          • right
            • 当前元素右边不能有浮动元素
          • both
            • 当前元素两边不能有浮动元素
        • overflow
          • 规定当内容溢出元素框的时候会怎样。
          • visible
            • 默认值,内容会呈现在元素之外。
          • hidden
            • 内容会被修剪,其余隐藏不见
          • scroll
            • 内容会被修剪,显示滚动条显示其余内容
          • auto
            • 如果内容会被修剪,自动 显示滚动条显示其余内容
          • inherit
            • 继承父级的 overflow 属性的值
        版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

        发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223490.html原文链接:https://javaforall.net

        (0)
        上一篇 2026年3月17日 下午2:05
        下一篇 2026年3月17日 下午2:05


        相关推荐

        • 什么是信息熵?香农利用信息熵回答了什么问题_香农定律

          什么是信息熵?香农利用信息熵回答了什么问题_香农定律第九个知识点:香农(Shannon)定义的熵和信息是什么这是计算机理论的最后一篇.我们讨论信息理论的基础概念,什么是香农定义的熵和信息.信息论在1948年被ClaudeE.Shannon建立.信

          2022年8月4日
          8
        • Flutter实现微信支付和iOS IAP支付

          Flutter实现微信支付和iOS IAP支付Flutter 支付微信支付 iOSIAP 应用内支付测试 IAP 中断购买的测试公司近期将收费的功能排期了 由于项目做的是线上教育 提供的服务属于虚拟物品 根据 iOS 官方的规定 虚拟物品交易只能使用 iOS 应用内支付 其他类似微信 支付宝官方都是明文规定不允许存在的 注 虚拟物品才有此规定 且 iOS 官方收税 30 而有实体物品交易的 官方允许在提供应用内支付的前提下 提供其他支付方式供用户选择 结合相关平台规定 我们最终确定支付方式为 Android 端使用微信支付 iOS 使用 IAP 应用内支付 微信支付

          2026年3月17日
          2
        • Netty 实战

          Netty 实战内容简介本书是为想要或者正在使用 Java 从事高性能网络编程的人而写的 循序渐进地介绍了 Netty 各个方面的内容 全书共分为 4 个部分 第一部分详细地介绍 Netty 的相关概念以及核心组件 第二部分介绍自定义协议经常用到的编解码器 第三部分介绍 Netty 对于应用层高级协议的支持 会覆盖常见的协议及其在实践中的应用 第四部分是几个案例研究 此外 附录部分会还简单地介绍 Maven

          2026年3月16日
          2
        • linux 进程监控和自动重启的简单实现(转)

          linux 进程监控和自动重启的简单实现(转)

          2021年9月8日
          63
        • Laravel5性能优化技巧

          Laravel5性能优化技巧

          2022年3月8日
          44
        • 给力者基于51单片机的C语言教程,给力者单片机开发教程

          给力者基于51单片机的C语言教程,给力者单片机开发教程资源介绍给力者单片机开发教程给力者51单片机视频教程01:51单片机学前的准备工作1.mp4给力者51单片机视频教程01:51单片机学前的准备工作2.mp4给力者51单片机视频教程02:51单片机的C语言程序框架.mp4给力者51单片机视频教程03:51单片机的数字量输出1.mp4给力者51单片机视频教程03:51单片机的数字量输出2.mp4给力者51单片机视频教程04:51单片机的查表操作1.m…

          2022年6月7日
          32

        发表回复

        您的邮箱地址不会被公开。 必填项已用 * 标注

        关注全栈程序员社区公众号