当前位置: 首页 > news >正文

莒县网站设计设计师培训机构有哪些

莒县网站设计,设计师培训机构有哪些,杭州seo整站优化,关于做网站的论文文章目录 CSS和文档流如何证明这个流的存在呢?流和display番外:inline-block 碎碎念 CSS和文档流 首先什么叫流呢? 通常来说,我们最终看到的网页是HTML文档中定义的各个元素挨个输出的结果,这种一个接一个输出的方式…

文章目录

  • CSS和文档流
    • 如何证明这个流的存在呢?
    • 流和display
      • 番外:inline-block
  • 碎碎念

CSS和文档流

首先什么叫流呢?

通常来说,我们最终看到的网页是HTML文档中定义的各个元素挨个输出的结果,这种一个接一个输出的方式,就是HTML的默认文档流



如何证明这个流的存在呢?

其实当你第一次使用 float 这个属性的时候,你就已经接触到这个东西了,来看这个例子:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="A" class="float-container"><div id="C" class="box" style="background: red"></div><div id="D" class="box" style="background: green"></div>
</div>
<div id="B">我是B
</div>
</body>
</html><style>.float-container > * {float: left;}.box {padding: 2em;}
</style>

在这里插入图片描述


我们给作为A子元素的C和D赋予padding和颜色,让我们看到他,接着输出了B

看似很正常,其实很诡异


B是一个块状元素啊,为什么看起来他跟A处在同一行呢?他为什么不换行?

我不打算卖关子,其实B已经换行了,只不过A的高度此时=0

那你会说不对啊,明明A的内部有C和D,高度怎么可能等于0?


这就是流在起作用,A和B都属于HTML的文档流;而C和D由于float的作用,他们已经不属于文档流了,他们属于浮动流(这也是我们把元素设定成float的时候他会无视原有的元素的display值横向展示的原理)。所以在我们计算A的高度时他会=0。这一点你用F12可以证明,也可以通过消除浮动让这个例子恢复正常,你只需要加上这段代码就可以:

#A::after{display: block;content: "";clear: both;
}

在这里插入图片描述

这是清除元素浮动对元素的宽高值影响的标准写法



流和display

如果上面的例子改成这样,又会发生神奇的事情:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="A" class="float-container">我是A<div id="C" class="box" style="background: red">我是C</div><div id="D" class="box" style="background: green">我是D</div>
</div>
<div id="B"><span>我是B</span>
</div>
</body>
</html><style>.float-container > * {float: left;}.box {padding: 2em;}#A, #B {display: inline-block;vertical-align: bottom; /*如果不加这句你会发现A跟B对不齐*/}
</style>

在这里插入图片描述


这下B是真不换行了

先解释一下为什么会先输出C和D,然后才输出 我是A 这句话

你知道float这个属性本来是用来干嘛的吗?

这个属性最开始不是用来布局的,他是用来实现那种类似报纸杂志上那种图片放在一侧,旁边围绕文字的效果的。只不过他用来做布局太合适了,所以才会被大量使用于布局。而且在那个没有流式布局、网格布局的年代,浮动布局还真就是你最好的解决方案

但不是唯一的解决方案,还有一些做法可以把元素用表格的方式显示。你可以说是网格布局的雏形,但他其实是一种取巧的做法。在网格布局已经成熟的今天,请抛弃这种写法

如果考虑到这个,那就好理解了。我们float C和D,那么他们肯定会被优先输出到文档流的最左侧,然后输出A中的文档流,也就是 我是A 这句话

接着,B没有换行,直接在后面输出了

没错,这就是 display:inline-block 在起作用,而不同的display是如何影响元素的,那就要从CSS的盒模型说起了

番外:inline-block

其实设定 float:left 跟 display:inlin-block 是一样的,都是把元素从正常的文档流中写入到浮动流中。而且我们知道块状元素和行内元素他们是通过display这个属性来区分和获取对应的样式的(display:block/inline)。设定 display:inline-block 后,相当于你无法使用这两种元素的样式,所以最后你会得到一个 宽度由元素决定,且不换行的块状元素,而且他是处于浮动流的




碎碎念

  • HTML页面在输出元素的时候,遵循一种被称之为 标准流 的顺序,你可以修改display这个属性的值,把元素从标准流中取出来
  • 设定float属性的时候,其实他也是把display属性给修改了。所以设定了float的元素,已经不在标准流中了,因此标准流的元素在计算尺寸时不会考虑浮动子元素
  • 你可以通过 clear 属性来强制清除浮动流带来的影响
  • inline-block 可以手动把元素写入浮动流,最后你会得到一个宽度由元素决定,且不换行的块状元素





万分感谢您看完这篇文章,如果您喜欢这篇文章,欢迎点赞、收藏。还可以通过专栏,查看更多与【CSS笔记】有关的内容

http://www.yayakq.cn/news/96435/

相关文章:

  • 广东企业网站建设推荐济南seo网站建站
  • 顺德网站建设市场如何做微信个人网站
  • 电子商务网站建设的实训心得为什么选择做游戏网站
  • 织梦网站如何做301跳转做物流用哪个网站好
  • 代刷网站app制作教程出口网站有哪些
  • 邵阳县做网站公司简介模板免费word简易
  • 网站建设外包工作房地产最新消息三个不低于
  • 产品设计作品网站重庆网站seo方法
  • 湖南省网站备案响应式网站怎么做才实用
  • 如何给自己建设的网站设置登陆用户名和密码新加坡二手手机网站大全
  • 宝安网站建设信科免费带管理后台的网站
  • 东莞建设网站推广公司地址潍坊企业免费建站
  • p2p 金融网站开发造一个官方网站
  • 金坛市建设银行网站中国建筑证书查询平台
  • 西安论坛网站制作维护佛山网站建设公司哪家性价比高
  • 网页制作网站建设没有数据库的网站
  • 网站做优化有什么好处酒店网页设计模板图片
  • 昆山网站制作哪家好哪些网站可以做邀请函
  • 360免费建站为什么注册不了怎么推广一个平台
  • 常州建设网站平台中国it外包公司排名前50
  • 打电话问网站建设推广豫建设标去哪个网站
  • 网站建设中 即将上线html5源代码免费学软件的自学网站
  • 合肥建设网络网站网站asp网站检查
  • 做空包网站专业制作网站 上海
  • 地产网站怎么做网址大全最新排行榜
  • iis2008如何做网站北京网站建设制作开发公司
  • 丽水 网站建设网站建设销售客户开发
  • 电子商务网站设计的三大原则网站建设卖花网站的目的
  • wordpress 开启注册seo公司优化排名
  • 网站基础三要素四川建设门户网站