返回顶部
首页 > 资讯 > 前端开发 > VUE >CSS文档流技巧是什么
  • 407
分享到

CSS文档流技巧是什么

2024-04-02 19:04:59 407人浏览 独家记忆
摘要

这篇文章主要介绍“CSS文档流技巧是什么”,在日常操作中,相信很多人在CSS文档流技巧是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS文档流技巧是什么”的疑惑有所帮

这篇文章主要介绍“CSS文档流技巧是什么”,在日常操作中,相信很多人在CSS文档流技巧是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS文档流技巧是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

看文章之前,先来看两个例子。这是我们在项目中最常见的项目布局方式。

案例一:多个容器按照相同间距水平排列。

CSS文档流技巧是什么

案例二:常见的菜单导航

CSS文档流技巧是什么

看到这两个案例时,你可以先短暂的想想平时都是如何实现的,很多同学的答案应该是这样的。

// 案例一
<div class="demo">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>
.demo {
  padding: 1em 0;
  width: 470px;
  background-color: #e5e5e5;
  overflow: hidden;
}
.item {
  float: left;
  margin-left: 10px;
  width: 150px;
  height: 100px;
  background-color: #fff;
  border: 1px solid #999999;
  box-sizing: border-box;
}
.item:first-child {
  margin-left: 0;
}
//案例二
<div class="demo2">
    <a href="" class="nav">导航1</a>
    <a href="" class="nav">导航2</a>
    <a href="" class="nav">导航3</a>
</div>
.demo2 {
  width: 200px;
  background-color: cadetblue;
}
.nav {
  display: block;
  width: 100%;
  border-bottom: 1px solid #000;
  color: #fff;
}

效果我们是做到了,但是这里所有像素都是你自己固定计算的。

比如第一个例子中,父容器的宽度为 470 = 3*150 + 20。如果在不使用 flex 布局的情况下,你想让三个元素自适应屏幕宽度有什么好办法?

或者你想把三个元素扩展成四个,这个时候你就需要手动计算每个元素的宽度。这样好像很是麻烦。

那今天就来说说,如何利用「流」的特性,解决平时在项目中遇到的一些布局问题。

在刚开始学习 CSS 时我们都会经常听到这么一个概念叫「文档流」,很多人并没有深究文档流是为何物。

那什么是「文档流」呢?

如果你依然在编程的世界里迷茫,不知道自己的未来规划,可以加入web前端学习交流秋秋圈:767273102 里面可以与大神一起交流并走出迷茫。新手可免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行不停更新最新的教程和学习方法(详细的前端项目实战教学视频),有想学习WEB前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入

文档流

文档流:是引导网页中的元素排列和布局的,它默认的方向是从左向右,从上而下。

而「流」具有最大的一个特点就是自适应性。你可以把它想象成像水流一样,当水流倒入一个容器时,它会自动充满整个容器。而 CSS 中的文档流,其表现是一致的,有异曲同工之妙。

不仅如此,你也经常会听到「脱离文档流」,比如浮动,绝对定位等都可以脱离文档流,而脱离文档流不是本文要说的重点,所以就不展开多说,今天主要是聊一聊「流的自适应性」。

文档流中有两个比较重要的概念:块级元素(block)、内联元素(inline),对应到最具代表性的元素就是<div><span>

块级元素默认会充满整个屏幕,具有自适应性,而内联元素默认则是水平排列。

你可以想象为块级元素就想是水流一样充满容器,而内联元素就是漂浮在水里按照从左到右排列的物体。

在项目中会经常碰到 display:block 这个属性。但注意,它与块级元素不是同一个东西。display:table,也属于块级元素。

失去流动性

到这里你应该明确了流的特性,其实很多人都知道「文档流」这个概念,但却没有好好的去利用,从而给自己增加了一些不必要的麻烦。

比如以前我会写出这样的 CSS:

span {
    display: block;
    width: 100%;
}

如果明白流的特性的话,其实 width: 100%; 这个属性是多余的,因为块级元素在流布局中默认是自动充满容器的。

你是否也中枪写过这种 CSS ?欢迎在评论区说出你的问题。

但如果仅仅只是多了一条属性,其实也就是增加了一行代码显得不那么简洁而已,可事情总是没有那么简单。

一旦你给元素添加了宽度(width)属性,它就会失去流动性,即便是它的值为 100%,也是会失去。

对,你没有看错,只要有了宽度属性,它就会失去了它最牛逼的流动性。这样就变的毫无价值。

比如开头中导航案例,如果给导航加入一些边距。就会出现不好的效果。

CSS文档流技巧是什么

.nav {
  display: block;
  padding: 10px; //添加的边距
  width: 100%;
  border-bottom: 1px solid #000;
  color: #fff;
}

而如果我们把宽度属性去掉,就会得到完美的展示效果。

CSS文档流技巧是什么

.nav {
  display: block;
  padding: 10px;
  border-bottom: 1px solid #000;
  color: #fff;
}

可能你之前并没有意识到,加入宽度属性带来的危害。

但当你看到这篇文章之后,你应该警惕宽度给流动性带来的危害,尽量少用宽度,甚至是「无宽度」。

在此之前我相信很多伙伴在项目汇总遇到过超出宽度的情况,但很少有人去探究,所以很多人都会发挥他特有的计算能力,然后写出如下代码。

.nav {
  display: block;
  padding: 10px;
  width: 180px; // 200px - 10px*2
  border-bottom: 1px solid #000;
  color: #fff;
}

貌似也实现了该有的功能,不过这种缺点我们显而易见,就是太过固定,任何一点的改动都需要你重新计算。

可能有人会说,兄die,我的计算能力很惊人,你管的着吗,好吧这,波算我输。

那为什么加了宽度属性会超出,而不加宽度属性就可以了呢?

原来是因为,当元素不设置宽度属性时或者是 width:auto ,元素的margin、border、padding 可以自动分配空间。

一旦,我们设置了固定的宽度属性,就算是100%,它就会根据 CSS 的盒模型进行计算。从而失去了自动分配空间的流动性。

至于如何计算的细节,因为盒模型的不同,所以宽度的作用就不同,它包含的东西也就不一样。具体不在多说。

兄die,这时候知道「无宽度」有多牛逼了吧。

因为这里我提到了盒模型,你会想到把上面的案例,改变下盒模型不就行了吗?比如我们这么做:

.nav {
  display: block;
  padding: 10px;
  width: 100%;
  border-bottom: 1px solid #000;
  box-sizing: border-box; //改变盒模型
  color: #fff;
}

确实在这个案例中是可以这么用的,但是如果想实现案例一的水平有间距排列问题,就有点力不从心了。

由于 CSS 盒模型,是不计算 margin 的,水平排列可以很容易实现,但是想要有相同间距,就比较难以实现。

这个时候你就可以尝试利用流的特性,来很好的实现这个方案。

宽度分离

这时候我们可以利用流的特性,进行宽度分离。

CSS文档流技巧是什么

<div class="demo">
    <div class="item">
        <div class="child">内容</div>
    </div>
    <div class="item">
        <div class="child">内容</div>
    </div>
    <div class="item">
        <div class="child">内容</div>
    </div>
    <div class="item">
        <div class="child">内容</div>
    </div>
</div>
.demo {
  padding: 1em;
  background-color: #e9e9e9;
  overflow: hidden;
}
.item {
  float: left;
  width: 25%;
}
.child {
  margin: 0 10px;
  padding: 10px;
  border: 1px solid #ccc;
}

你会发现,无论你如何改变它的 margin、padding、border 它都会自动填充分配空间,再也不会出现布局错乱,超出等等一系列的情况。

到此,关于“CSS文档流技巧是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: CSS文档流技巧是什么

本文链接: https://lsjlt.com/news/85540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS文档流技巧是什么
    这篇文章主要介绍“CSS文档流技巧是什么”,在日常操作中,相信很多人在CSS文档流技巧是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS文档流技巧是什么”的疑惑有所帮...
    99+
    2024-04-02
  • 什么是CSS文档流
    本篇内容介绍了“什么是CSS文档流”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!纯文本的排列,文档流就像我...
    99+
    2024-04-02
  • css文档流的特性是什么
    这篇文章主要介绍“css文档流的特性是什么”,在日常操作中,相信很多人在css文档流的特性是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css文档流的特性是什么”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • CSS浮动布局及文档流是什么
    这篇文章主要介绍“CSS浮动布局及文档流是什么”,在日常操作中,相信很多人在CSS浮动布局及文档流是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS浮动布局及文档流是...
    99+
    2024-04-02
  • zoho writer在线文档编辑小技巧是什么
    zoho writer在线文档编辑小技巧是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 过去一年中,用户们在论坛里积极发言,推动了在线文档编辑工具Zoho Wr...
    99+
    2023-06-05
  • CSS标准文档流的基本原理是什么
    本文小编为大家详细介绍“CSS标准文档流的基本原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS标准文档流的基本原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • css常用技巧是什么
    小编给大家分享一下css常用技巧是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、三角形列表项目符号ul  {&...
    99+
    2024-04-02
  • css伪元素的实用技巧是什么
    本篇内容介绍了“css伪元素的实用技巧是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.定义:伪元素用于创建一些不在文档树中的元素,并...
    99+
    2023-06-03
  • 阅读PHP文档的10个技巧
    PHP是一种非常流行的开源服务器端脚本语言,广泛应用于Web开发中。要成为一名优秀的PHP程序员,阅读官方文档是必不可少的。无论你是初学者还是资深开发者,下面这些技巧都将有助于你更有效地阅读PHP文档。了解文档结构PHP官方文档分为多个部分...
    99+
    2023-05-24
    PHP基础 文档阅读 技巧提示
  • html5文档申明是什么文档模式?
    ...
    99+
    2024-04-02
  • css技术是什么
    这篇文章给大家分享的是有关css技术是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   CSS是CascadingStyleSheets(层叠样式表)的缩写。   可以...
    99+
    2024-04-02
  • Ado Connection技巧是什么
    这篇文章主要讲解了“Ado Connection技巧是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ado Connection技巧是什么”吧!我们首先知道  activex ...
    99+
    2023-06-17
  • CSS网页布局中文字排版的九大技巧分别是什么
    本篇文章为大家展示了CSS网页布局中文字排版的九大技巧分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。和大家重点讨论一下CSS网页布局中文字排版九大技巧,主...
    99+
    2024-04-02
  • 十个不为人知的CSS技巧分别是什么
    本篇文章为大家展示了十个不为人知的CSS技巧分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。向大家描述一下10个你未必知道的CSS技巧,比如CSS用于文档打...
    99+
    2024-04-02
  • Win7搜索海量PDF文档技巧解读
    PDF文档应该是最常见的一种文件格式了,许多电子书、产品说明、公司文稿都开始使用PDF格式的文档,所以,大家的电脑中也一定保存了海量的PDF文档。这样一来,如果自己查找某篇仅仅记得大体内容的文章究竟在哪个文档中,那就非常...
    99+
    2023-05-31
    Win7 PDF文档 海量 搜索 技巧
  • 进阶 ASP Swagger 文档技巧:让你的 API 文档更上一层楼
    Swagger 是一个强大的 RESTful API 文档框架,广泛应用于 API 设计和开发中。ASP Swagger 是 Microsoft 提供的 Swagger 实现,用于生成交互式 API 文档,帮助开发人员快速了解和使用您的 ...
    99+
    2024-02-05
    ASP Swagger 文档 RESTful API 多版本 请求示例 响应代码 安全方案
  • 什么是CSS Hack技术
    这篇文章主要介绍“什么是CSS Hack技术”,在日常操作中,相信很多人在什么是CSS Hack技术问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是CSS Hack技术”...
    99+
    2024-04-02
  • JavaScript开发技巧是什么
    本篇内容介绍了“JavaScript开发技巧是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 有条...
    99+
    2024-04-02
  • Python闭包技巧是什么
    这篇文章主要讲解了“Python闭包技巧是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python闭包技巧是什么”吧!1.闭包:用函数代替类有时我们会定义只有一个方法(除了__init...
    99+
    2023-06-21
  • ADO.NET编程技巧是什么
    本篇内容主要讲解“ADO.NET编程技巧是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET编程技巧是什么”吧!让我先提一个问题好吗我的软件环境是:windows xp,offic...
    99+
    2023-06-17
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作