zoukankan      html  css  js  c++  java
  • 前端小白学web常见的问题,CSS定位的教程

    此文转载自:https://blog.csdn.net/weixin_52755935/article/details/110295919#commentBox

    今天跟大家分享的是小白学web常见的问题。希望本篇文章能够对小伙伴们有所帮助。

    1、Vue.js是什么?

    渐进式框架

    自底向上增量开发的设计

    易学习

    易整合

    Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。

    2、vue.js到底适合做哪种类型的界面?

    a、表单项繁多

    b、内容需要根据用户的操作进行修改

    Vue.jshttp://daduchang.net/445472.html就是一个用于搭建类似于网页版知乎这种表单项繁多,且内容需要根据用户的操作进行修改的网页版应用。

    3、单页应用程序(SPA)是什么?

    一个页面就是应用(子应用)

    顾名思义,单页应用一般指的就是一个页面就是应用,当然也可以是一个子应用,比如说知乎的一个页面就可以视为一个子应用。单页应用程序中一般交互处理非常多,而且页面中的内容需要根据用户的操作动态变化。

    4、 前面说的网页版知乎我也可以用JQuery写啊,为什么要用Vue.js呢?

    a、产品是绝对需要反复修改的

    b、修改可能会导致DOM的关联与嵌套层次要发生改变从而使jquery结构相关代码变的异常复杂

    c、vue.js可以解决这个问题

    你是否还记得你当初写JQuery的时候,有写过(’#xxx’).parent().parent().parent()这种代码呢?当你第一次写的时候,你觉得页面元素不多,不就是找这个元素的爸爸的爸爸的爸爸吗,我大不了在注释里面写清楚这个元素的爸爸的爸爸的爸爸不就好了。但是万一过几天之后你的项目组长或者你的产品经理突然对你做的网页提出修改要求,这个修改要求将会影响页面的结构,也就是DOM的关联与嵌套层次要发生改变,那么(‘#xxx’).parent().parent().parent(http://daduchang.net/445471.html)可能就会变成$(‘#xxx’).parent().parent().parent().parent().parent()了。

    这还不算什么,等以后产品迭代越来越快,修改越来越多,而且页面中类似的关联和嵌套DOM元素不止一个,那么修改起来将非常费劲。而且JQuery选择器查找页面元素以及DOM操作本身也是有性能损失的,可能到时候打开这个页面,会变得越来越卡,而你却无从下手。

    这个时候如果你学过Vue.js,那么这些抱怨将不复存在。

    5、前端里面常说的视图层是什么?

    我们把HTML中的DOM就可以与其他的部分独立开来划分出一个层次,这个层次就叫做视图层。

    Vue 的核心库只关注视图层

    6、使用jquery开发完整页面的流程?

    a、html写构架

    b、css装饰

    c、js交互

    讲到JQuery,就不得不说到JavaScript的DOM操作了。如果你用JQuery来开发一个知乎,那么你就需要用JQuery中的各种DOM操作方法去操作HTML的DOM结构了。

    现在我们把一个网页应用抽象一下,那么HTMLhttp://daduchang.net/445470.html中的DOM其实就是视图,一个网页就是通过DOM的组合与嵌套,形成了最基本的视图结构,再通过CSS的修饰,在基本的视图结构上“化妆”让他们看起来更加美观。最后涉及到交互部分,就需要用到JavaScript来接受用户的交互请求,并且通过事件机制来响应用户的交互操作,并且在事件的处理函数中进行各种数据的修改,比如说修改某个DOM中的innerHTML或者innerText部分。

    7、Vue.js为什么能让基于网页的前端应用程序开发起来这么方便?

    a、有声明式

    b、响应式的数据绑定

    c、组件化的开发

    d、Virtual DOM

    因为Vue.js有声明式,响应式的数据绑定,与组件化的开发,并且还使用了Virtual DOM这个看名字就觉得高大上的技术。

    8、vue.js中常说的数据动态绑定是什么?

    就是vue.js会自动响应数据的变化情况,并且根据用户在代码中预先写好的绑定关系,对所有绑定在一起的数据和视图内容都进行修改。而这种绑定关系,在图上是以input http://daduchang.net/445469.html标签的v-model属性来声明的,因此你在别的地方可能也会看到有人粗略的称vue.js为声明式渲染的模版引擎。

    9、前端中为什么要组件化开发?

    a、非组件化开发代码和工作量都非常大

    b、修改起来生不如死

    但是现在我们做单页应用,页面交互和结构十分复杂,一个页面上就有许许多多的模块需要编写,而且往往一个模块的代码量和工作量就非常庞大,如果还按照原先的方法来开发,那么会累死人。而且遇到以后的产品需求变更,修改起来也非常麻烦,生怕动了其中一个div之后,其他div跟着雪崩,整个页面全部乱套,或者由于JavaScripthttp://daduchang.net/445468.html的事件冒泡机制,导致修改一些内层的DOM事件处理函数之后,出现各种莫名其妙的诡异BUG。

    10、前端中如何进行组件化开发?

    a、借用的后端的面向对象中的模块化思想(把一些大功能拆分成许多函数,然后分配给不同的人来开发)

    b、把一个单页应用中的各种模块拆分到一个一个单独的组件(component)中,我们只要先在父级应用中写好各种组件标签(占坑),并且在组件标签中写好要传入组件的参数(就像给函数传入参数一样,这个参数叫做组件的属性),然后再分别写好各种组件的实现(填坑)

    在面向对象编程中,我们可以使用面向对象的思想将各种模块打包成类或者把一个大的业务模块拆分成更多更小的几个类。在面向过程编程中,我们也可以把一些大功能拆分成许多函数,然后分配给不同的人来开发。

    在前端应用,我们是否也可以像编程一样把模块封装呢?这就引入了组件化开发的思想。

    Vue.js通过组件,把一个单页应用中的各种模块拆分到一个一个单独的组件(component)http://daduchang.net/445467.html中,我们只要先在父级应用中写好各种组件标签(占坑),并且在组件标签中写好要传入组件的参数(就像给函数传入参数一样,这个参数叫做组件的属性),然后再分别写好各种组件的实现(填坑),然后整个应用就算做完了。
    CSS定位 (Positioning) 属性允许你对元素进行定位。

    CSS定位和浮动

    CSS为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。

    定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对CSS2中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。

    另一方面,CSS1中首次提出了浮动,它以Netscape在http://daduchang.net/445466.htmlWeb发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。

    一切皆为框

    div、h1或p元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span和strong等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。

    您可以使用display属性改变生成的框的类型。这意味着,通过将display属性设置为 block,可以让行内元素(比如 元素)表现得像块级元素一样。还可以通过把display设置为onehttp://daduchang.net/445464.html,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。

    但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如 div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:

    some text

    Some more text.

    在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。

    块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但是,这有助于理解在屏幕上看到的所有东西都形成某种框。

    CSS定位机制

    CSS有三种基本的定位机制:普通流、浮动和绝对定位。

    除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。

    CSS定位属性

    CSS定位属性允许你对元素进行定位。

    块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。

    行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Linehttps://daduchang.net/445460.html Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。

    在下面的章节,我们会为您详细讲解相对定位、绝对定位和浮动。

    CSS position属性

    通过使用position属性,我们可以选择4种不同类型的定位,这会影响元素框生成的方式。

    position属性值的含义:

    static

    元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

    relativehttps://daduchang.net/445459.html

    元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

    absolute

    元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

    fixed

    元素框的表现类似于将position设置为absolutehttps://daduchang.net/445458.html,不过其包含块是视窗本身。

    提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

    CSS定位属性

    CSS定位属性允许你对元素进行定位。

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    numpy模块之axis(转)
    使用lxml解析HTML代码
    关于Python中的可变对象与不可变对象的区别(转)
    python线程(转)
    SSTI模板注入
    逆向与反汇编实战(一)--PEiD分析复现
    二进制各种漏洞原理实战分析总结
    认识二进制安全与漏洞攻防技术 (Windows平台)
    CSRF 漏洞
    逻辑漏洞之越权漏洞的三种越权思路|burpsuite逻辑漏洞测试一
  • 原文地址:https://www.cnblogs.com/phyger/p/14061687.html
Copyright © 2011-2022 走看看