标签分为两种等级:

  1,行内元素。2,块级元素。

行内元素和块级元素的区别: 

行内元素:  

  • 与其他行内元素并排
  • 不能设置宽高,默认的宽度就是文字的宽度

块级元素:

  • 霸占一行,不能与其他任何元素并列。
  • 能接受宽高,如果不设置宽度,那么宽度将默认变为父级的100%。

块级元素和行内元素的分类:

  在HTML的角度来讲,标签分为:

    文本级标签:p , span , a , b , i , u , em

    容器级标签:div , h系列 , li , dt ,dd

    p:里面只能放文字和图片和表单元素,p里面不能放h和ul,也不能放p。

  从CSS的角度讲,CSS的分类和上面的很像,就p不一样:

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

    块级元素:所有的容器级标签,都是块级元素,以及p标签。

块级元素和行内元素的相互转换:

  我们可以通过display属性将块级元素(比如div)和行内元素进行相互转换。

  display:inline;

  那么这个标签将变为行内元素,即:

    1,此时这个div将不能设置宽度和高度了。

    2,此时这个div可以和其他行内元素并排了。

  同样的到了我们也可以用display将行内元素(比如span)转行成块级元素。

  display:block;

  那么这个span标签将变为块级标签,即:

    1,此时这个span能够设置宽度,高度。

    2,此时这个span必须独占一行,其他元素无法与之并排。

    3,如果不设置宽度,将占满父级。

标准流里面的限制非常多,导致很多页面效果无法实现,如果我们现在就要并排,并且就要设置宽度,就hi有:脱离标准流。

CSS一共有三种手段,是一个元素脱离标准流文档:

  • 浮动

  • 绝对定位

  • 固定定位

浮动:

  浮动是CSS里面布局最多的一个属性。

  float:表示浮动的意思。

属性:

  • none:表示不浮动,默认。
  • left:表示左浮动。
  • rigth:表示右浮动。

我们会发现,三个元素并排显示,.box1和span因为是左浮动,所有紧挨在一起,这种现象是贴边现象。

.box2盒子因为是右浮动,所以紧靠着右边。

浮动的四大特性:

  1,浮动的的元素脱标,

  2,浮动的元素互相贴靠。

  3,浮动的元素由"子围"效果。

  4,收缩的效果。

浮动元素的脱标:

  脱标:就是脱离了标准文档流。

效果:红色的盒子盖住了黄色的盒子,一个行内的span标签,竟然能够设置宽高了。

原因1:小红设置了浮动,而小黄并没有设置浮动,小红脱离了标准文档流,其实就是他不在页面中占据位置了,此时浏览器认为小黄是标准文档流的第一个盒子,所以就渲染到了页面中的第一个位置上,这种现象,也有一种叫法:浮动元素"飘起来了"。

原因2:所有的标签一旦设置浮动,就能够并排且不区分块元素或行内元素,换言之,能够设置宽高了。

浮动元素互相贴靠:

效果发现:如果父元素有足够的空间,那么小绿就会紧靠小黄,小黄紧靠小红,小红靠着边。

如果没有足够的空间,小绿那么就会靠着小红,若没有足够的空间靠着小红,就会自己靠边。

浮动元素字围效果:

效果发现:所谓的字围效果,当div浮动,p不浮动,div遮盖了p,div的层级提高,但是p中的文字不会被遮盖,此时就形成了字围效果。

浮动元素紧凑效果:

  收缩:一个浮动元素,如果没有设置width,那么就自动收缩为文字的宽度。(和行内元素很像)

谨记:关于浮动,一定要遵循一个原则,永远不是一个盒子单独浮动,要浮动就要一起浮动。另外,有浮动,一定要清楚浮动。

为什么要清楚浮动:

  在页面布局的时候,每个结构中的父元素的高度,我们一般不会设置。

  大家想,如果我第一版的页面的写完了,感觉非常爽,突然隔了一个月,老板说页面某一块的区域,我要加点内容,或者我觉得图片要缩小一下。这样的需求在工作中非常常见的。真想打他啊。那么此时作为一个前端小白,肯定是去每个地方加内容,改图片,然后修改父盒子的高度。那问题来了,这样不影响开发效率吗?答案是肯定的。

效果发现:如果不给.father一个高度,那么浮动子元素是不会填充父盒子的高度,那么.father2的盒子就会占据第一个位置,影响页面布局。

那么我们知道,浮动元素确实能实现我们页面元素并排的效果,这是它的好处,同时它还带来了页面布局极大的错乱!!!所以我们要清除浮动!

清除浮动的方法:

  1,给父盒子设置高度。

  2,clear:both;

  3,伪元素清除法

  4,overflow:hidden;

给父盒子设置高度:

  使用不灵活,会固定父盒子的高度。

clear:both;

  clear:意思就是清楚的意思。

  有三个值:

  left:当前元素左边不允许有浮动元素,

  rigtht:当前元素右边不允许有浮动元素。

  both:当前元素的左右两边都不允许有浮动元素。

  给浮动元素后面加一个空的div,并且该元素不浮动,然后设置clear:both。

伪元素清除法(常用):

  给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置:

overflow:hidden(常用):

  overflow属性规定当内容溢出元素框时,发生的事情。

  属性值:

  visible:默认值,内容不会被修剪,会呈现在元素框之外。

  hidden:内容会被修剪,并且其余内容是不可见的。

  scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

  auto:如果内容被修剪,则浏览器会显示滚动条以便利查看其余内容。

  inherit:规定应该从父元素继承overflow属性的值。

CSS-块级元素和行内元素相关推荐

  1. CSS里常见的块级元素和行内元素

    根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为"block&q ...

  2. [HTML/CSS]盒子模型,块级元素和行内元素

    目录 概述 盒子模型 块级元素 行内元素 可变元素 总结 概述 在div+css中,了解块级元素和行内元素还是非常有必要的,比如:对行内元素使用width属性就会失效.虽然自己不是做前端的,但是,在项 ...

  3. CSS块级元素和行内元素

    1. 宽高 width:数值; height:数值; 也可用百分比! 长高的设置不会被后代继承 2. 背景 (1)背景颜色 background-color:颜色值; 元素的背景颜色默认为transp ...

  4. css块元素与行内元素特点,CSS区分块级元素和行内元素

    块级元素(块级元素一般当做容器使用,既可以容纳内联元素也可以容纳块级元素) 特点: 1.每个块级元素都是独自占一行,其后的元素也只能另起一行,并不能两个元素共用一行. 2.元素的高度.宽度.行高和顶底 ...

  5. CSS块级元素与行内元素的区别和联系

    块元素(block element)一般是其他元素的容器元素,能容纳其他块元素或内联元素.块元素就好比一个四方块,可以放其他的四方块,并可以呈现在页面上任何地方. 默认情况下块元素,是独占一行的 常见 ...

  6. CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景

    全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ...

  7. CSS中的块级元素、行内元素和行内块元素

    元素是文档结构的基础,在css里面,每个元素生成了包含内容的框(box),大家都叫"盒子".但是不同的元素显示方式是不同的,有占据一整行的,有水平一个挨着一个的.比如:div 与s ...

  8. html 盒子模型添加图片,[HTML/CSS]盒子模型,块级元素和行内元素

    目录 概述 在div+css中,了解块级元素和行内元素还是非常有必要的,比如:对行内元素使用width属性就会失效.虽然自己不是做前端的,但是,在项目中,曾经也弄过从前端布局,也吃过这方面的亏.今天, ...

  9. CSS中块级元素,行内块元素,行内元素的特点

    CSS自学笔记 目录 一.什么是元素显示模式 二.CSS的元素显示模式 1.块元素 2.行内元素 3.行内块元素 前言 网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我 ...

  10. Web前端,CSS中关于块级元素、行内元素、行内块元素、元素显示模式转换、CSS特性继承性和层叠性、普通导航和五彩导航的制作

    前言 持续总结输出中,今天分享的是Web前端,CSS中关于块级元素.行内元素.行内块元素.元素显示模式转换.CSS特性继承性和层叠性 1.块级元素 特点: 独占一行(一行只能显示一个) 宽度默认是父元 ...

最新文章

  1. 为何你叫妹子笑,却拍出无数黑照?
  2. html5杂记(1)
  3. Web前端技术分享:img标签与background插入图片的区别
  4. Redis源码剖析(三)字典结构的设计与实现
  5. PowerDesigner15对SQLSERVER2008S数据库进行反向工程出错
  6. 【自用】 TensorFlow merge_all_summaries SummaryWriter 报错问题
  7. html5 背景拼贴,AI创建漂亮的无缝拼贴图案背景样式
  8. Java 比较两个版本号的大小 (通用)
  9. 基于springboot框架的博客系统
  10. java动态代理原理
  11. python multiprocessing.Process 应用
  12. 如何用R来定制个性化PPT
  13. 软件从“出生”到“消亡”的过程称为_软件测试面试最常问到的101个面试问题,你中枪了吗?(一)...
  14. Unity3d 2019室内光照贴图lightmap快速烘焙(转载)
  15. 基于MATLAB的运动车辆跟踪检测系统
  16. 介绍常用的无线通信技术
  17. 阿里、华为和微软等多家国内外厂商组团搞OpenJDK,Oracle为啥不参加?
  18. LeetCode知识点总结 - 347
  19. PDF分割成两页怎么弄?来看看这3个工具
  20. 几款截图软件分析,拷屏,切图和粘贴

热门文章

  1. MySQL 删除表的几种情况:
  2. Demo_C#_Winform 压缩、解压缩
  3. 算法-哈希算法(上)
  4. 全球都在下GTA5,我却从中参透了TCP协议
  5. 禁用百度, 从我做起
  6. linux 如何重启oracle,Linux重启oracle数据库的三大技巧
  7. springcloud+zipkin实现链路监控搭建zipkin-server(五)
  8. 全球电梯和自动扶梯行业收入预计2028年达到823.6亿美元
  9. 对比java_对比Java和C++的不同
  10. STL神器之传说中的字符串——string