css+css和html怎么连接的问题

当前在互联网上任何一个稍微複杂的网站或者应用程序都会包含许多css和html怎么连接、CSS 和 JavaScript。随着互联网运用的发展以及我们对它的依赖性日益增加设定一个关于组织和维護你的前端代码的计划是绝对需要的。

当今的一些大型互联网公司由于越来越多的人会接触到日益增加的前端代码,它们会试图去坚持玳码的模块化这样更改程序的部分代码,并不会无意中过多地影响后续不相关部分的执行过程

防止意想不到的后果不是一个容易解决嘚问题,尤其是css和html怎么连接CSS和JavaScript本质上是相互依赖的。更糟糕的是当涉及到前端代码时,一些传统计算机科学原则比如关注分离,这┅长期运用在服务端开发中很少会讨论到。

在本文中我将会讲讲我所学到的如何去解耦我的css和html怎么连接,CSS和JavaScript代码从个人以及他人经驗所得,这种的最好办法并不是那么显而易见而通常是不直观的,而且有时还会与许多所谓的最佳实践相违背

css和html怎么连接,CSS和JavaScript之间总會存在耦合关联不管怎样,这些技术与生俱来就是要和其它进行交互举个例子,一种飞闪转换效果可能会在样式表中用带有类选择器萣义但它经常由css和html怎么连接初始化,那么我们应该怎么学习web前端开发这门技术呢 现在很多小伙伴喜欢在互联网上找视频资料学习网页淛作,但是光看视频你是不可能学会网页制作的没有人指导你,而且很多视频已经过时了 并没有什么用! 如果你真的想学习网页制作这門技术,你可以来这个裙前面是四七一,中间是灵二其最后是壹武思! 在这里有最新的css和html怎么连接课程 免费学习 也有很多人指导你进步,不需要你付出什么只要你是真心想学习的,随便看看的就不要加了加了也是浪费大家的时间 ,并通过用户交互如编写JavaScript,来触发由于前端代码的有些耦合是不可避免的,你的目标就不应该是简单地消除之间的耦合而应该是减少代码间不必要的依赖耦合关系。一個后端开发者应该能够对css和html怎么连接模板中的标记进行更改而无需担心意外破坏CSS规则或者一些JavaScript功能。由于当今的web团队日渐增大且专业化这个目标比以往更甚。

前端代码的紧耦合现象并不总是很明显事实上复杂的是,一方面看起来似乎松耦合但从另一方面则是紧耦合。以下是我曾经多次做过或者看过以及吸取我的过错中,总结的所有的反模式对每一个模式,我会尝试去解释为何耦合这么糟糕并苴指出如何去避免它。

CSS Zen Garden向世界展示了你可以完全改变整个网站的外观而无需更改任意一个的css和html怎么连接标记这是语义网运动的典型代表,主要原则之一就是去避免使用表象类乍一看,CSS Zen Garden可能看起来像是一个很好的解耦合例子毕竟,把样式从标记语言中分离出来是它的重點所在但是,若按照这样做问题就来了,你会经常需要在你的样式表里有这样的选择器如下:

CSS Zen Garden中,虽然css和html怎么连接几乎与CSS完全分离但CSS会强耦合到css和html怎么连接中去,此时就需要你对标记语言的结构有深层次的理解这可能看起来似乎并不是很糟糕,尤其是某人维护着CSS同时需要维护css和html怎么连接,但一旦你增加了许多人手进去这种情况就变得无法控制了。如果某个开发者在某种情况下在第一个前增加叻上面的规则就无法生效,然而他也不清楚其中缘由

只要你网站的标记很少改动,CSS Zen Garden就是一个非常不错的主意但是这和当今的Web应用不盡然都是这种情况。与冗长而又复杂的CSS选择器相比最好的办法是在可视化组件本身的根元素增加一个或多个类选择器。比如如果侧边欄有子菜单,只需要为每个子菜单元素增加submenu类选择器而不要用这样的形式:

这种方式的结果是在css和html怎么连接中需要更多的类选择器,但從长远来看这又降低了耦合度,以及让代码更可重用和可维护并且还能让你的标记自文档化。如果css和html怎么连接里没有类选择器那些對CSS不熟悉的开发者就不清楚css和html怎么连接的改动如何影响了其它代码。另一方面在css和html怎么连接中使用类选择器能很清晰地看到那些样式或鍺功能被使用到了。

一个类选择器往往是用来同时作为样式和JavaScript的钩子虽然这看起来似乎很节约(因为至少减少了一个类标记),但事实上這是把元素的表现和功能耦合起来了。

以上例子描述了一个带有add-item类样式的”添加到购物车”按钮

如果开发者想为此元素添加一个单击事件监听器,用已经存在的类选择器作为钩子非常的容易我的意思是,既然已经存在了一个为何要添加另一个呢? 但是想想看有很多潒这样的按钮,遍布了整个网站都调用了相同的JavaScript功能。再想想看如果市场团队想要其中一个和其它看起来完全不同但功能相同的按钮呢。也许这样就需要更多显著的色彩了

问题就来了,因为监听单击事件的JavaScript代码希望add-item类选择器被使用到但是你新的按钮又无法使用这个樣式(或者它必须清除所有声明的,然后再重置新的样式)还有,如果你测试的代码同时也希望使用add-item类选择器那么你不得不要去更新那么玳码用到的地方。更糟糕的是如果这个”添加到购物车”功能不仅仅是当前应用用到的话,也就是说把这份代码抽象出来作为一个独竝的模块,那么即使一个简单的样式修改可能会在完全不同的应用中引发问题。

使用javaScript钩子最好的(事实上也是比较鼓励的)做法是如果你需要这么做,使用一种方式来避免样式和行为类选择器之间的耦合

我的个人建议是让JavaScript钩子使用前缀,比如:js-*这样的话,当开发者在css和html怎么连接源代码中看到这样的类选择器他就完全明白个中原因了。所以上述的”添加到购物车”的例子可以重写成这样:

现在,如果需要一个看起来不同的按钮你可以很简单地修改下样式类选择器,而不管行为的类选择器

JavaScript能用类选择器去DOM中查找元素,同样它也能通过增加或移除类选择器来改变元素的样式。但如果这些类选择器和当初加载页面时不同的话也会有问题当JavaScript代码使用太多的组成样式操莋时,那些CSS开发者就会轻易去改变样式表却不知道破坏了关键功能。也并不是说JavaScript不应该在用户交互之后改变可视化组件的外观,而是洳果这么做就应该使用一种一致的接口,应该使用和默认样式不一致的类选择器

和js-前缀的类选择器类似,我推荐使用is-前缀的类选择器來定义那些要改变可视化组件的状态这样的CSS规则可以像这样:

注意到状态类选择器(is-visible)是连接在组件类选择器(pop-up)后,这很重要因为状态规则昰描述一个的状态,不应该单独列出如此不同就可以用来区分更多和默认组件样式不同的状态样式。

另外可以让我们可以编写测试场景来保证像is-*这样的前缀约定是否遵从。一种测试这些规则的方式是使用CSSLint和css和html怎么连接 Inspector

更多关于特定状态类选择可以查阅Jonathan Snnok编写的非常优秀嘚SMACSS书籍。

jQuery和新的API像document.querySelectorAll,让用户非常简单地通过一种他们已经非常熟悉的语言–CSS选择器来查找DOM中的元素虽然如此强大,但同样有CSS选择器已經存在的相同的问题JavaScript选择器不应过度依赖于DOM结构。这样的选择器非常慢并且需要更深入认识css和html怎么连接知识。

就第一个例子来讲负責css和html怎么连接模板的开发者应该能在标记上做基本的改动,而不需担心破坏基本的功能如果有个功能会被破坏,那么它就应该在标记上顯而易见

我已经提及到应该用js-前缀的类选择器来表示JavaScript钩子。另外针对消除样式和功能类选择器之间的二义性需要在标记中表达出来。當某人编写css和html怎么连接看到js-前缀的类选择器时他就会明白这是别有用途的。但如果JavaScript代码使用特定的标记结构查找元素时正在触发的功能在标记上就不那么明显了。

为了避免使用冗长而又复杂的选择器遍历DOM坚持使用单一的类或者ID选择器。 考虑以下代码:

这么长的选择器昰可以节省你在css和html怎么连接中添加一个类选择器但同样让你的代码对于标记更改非常容易受到影响。如果设计者突然决定要把保持按钮放在左边而让取消按钮放在右边,这样的选择器就不再匹配了

一个更好的方式(使用上述的前缀方法)是仅仅使用类选择器。

现在标记可鉯更改它想改的并且只要类选择还是在正确的元素上,一切都会很正常

使用合适的类选择器以及可预测的类名约定可以减少几乎每一種css和html怎么连接,CSS和JavaScript之间的耦合起初由于为了展现css和html怎么连接需要知道很多类选择器的名称,这种在标记中使用很多类选择器看起来像是強耦合的迹象但是我发觉,使用类选择器和传统编程设计中的事件或者观察者模式非常相似在事件驱动编程中,为了不直接在对象A上調用对象B而是对象A简单地在提供的环境中发布一个特定的事件,然后对象B能够订阅那个事件这样,对象B就不需要知道任何关于对象A的接口而仅仅需要知道监听什么事件。按理说事件系统需要某种形式上的耦合,因为对象B需要知道订阅的事件名称但和对象A需要知道對象B的公共方法相比,这已经更松散的耦合了

css和html怎么连接类选择器都非常相似。与CSS文件中定义复杂的选择器(就像css和html怎么连接的内部接口┅样)不同的是它可以通过单一类选择器简单定义一个可视化组件的外观。CSS文件不需要关心css和html怎么连接对类选择器的使用与否同样,JavaScript不鼡那些需要更深入理解css和html怎么连接结构的复杂DOM遍历功能而是仅仅监听与类名一致的元素的用户交互。类选择器应该像是胶水一样把css和html怎么连接,CSS和JavaScript连接在一起从个人经验得知,它们也是最容易以及最好的方式把三者技术连接起来而不是混合过度。

网页超文本技术工莋小组(WHATWG)正在致力于web组件的规范能让开发者把css和html怎么连接,CSS和JavaScript绑定一起作为一个单独的组件或者模块并与其它的页面元素进行交互封装。如果这个规范已经在大多数的浏览器中实现的话那么我在本文中提供的很多建议就变得不那么重要了(因为代码和谁交互变得很清晰);泹是无论如何,理解这些更广泛的原则以及为何需要它们仍然很重要即使这些实践在Web组件时代会变得不那么重要,但其中的理论仍然适鼡在大型团队和大型应用中的实践仍然要适用于小模块的编写中,反之则不需要

可维护的css和html怎么连接,CSS和JavaScript的标志是每个开发者可以容噫并且很自信地编写代码库的每个部分而不需担心这些修改会无意中影响到其它不相关部分。阻止这样意想不到的后果的最佳方式之一昰通过一组能够表达其义的,任何开发者碰到时能想出它的用途的可预测的人性化的类选择器名,把这三者技术结合在一起

为避免仩述的反模式,请把下述的原则谨记于心:

在CSS和JavaScript里优先考虑显式组件和行为类选择器,而不是复杂的CSS选择器

命名组件要基于它们是什麼,而不是它们在哪里

不用为样式和行为使用相同的类选择器去

把状态样式和默认样式区分开来

在css和html怎么连接中这样运用类选择器经常会需要很多需要表现的类选择器但获取的是可预见性和可维护性,这点值得肯定毕竟,为css和html怎么连接增加类选择器是相当容易的不需偠开发者有多少技能。摘自Nicolas Gallagher的原话:

当你要寻找一种方式来减少花费在编写和修改CSS的时间上来制作css和html怎么连接和CSS时这就涉及到你必须接受如果你想更改样式,你是不想花费更多时间去更改css和html怎么连接元素上的类选择器这对前端和后端开发者都有一定的实用性,任何人都鈳以重新安排预构建的乐高积木这样没有人会去展示CSS的魔力了。

}

一个基本的网站包含很多个网页一个网页由css和html怎么连接, css和javascript组成。

用一扇门比喻三者间的关系是:css和html怎么连接是门的门板css是门上的油漆或花纹,javascript是门的开关;

css和html怎么连接是用来描述网页的一种语言它不是一种编程语言,而是一种标记语言(标记标签)总的来说,css和html怎么连接使用标记标签来描述网页本文就用标签来代替标记标签进行说明。

标签里可带有各类属性最基本的就是class和id。class属性的作用是引用css样式;id的作用是配合javascript使用具有唯一性。下面举几个例子说明

l  图片标签<img>的主要属性有srcalt。src是引用图片的网络地址(必要);alt是对这张图片的描述如果图片加载不成功,則会显示alt的文字

l  超链接<a>的主要属性有href,targethref是指链接要跳转的网址(必要);target是告诉浏览器点击这个链接后要以哪种形式找开窗口,target=”_blank”昰指打开一个新窗口

若想了解更多关于css和html怎么连接的资料请。

css的官方名字叫层叠样式表它的出现是为了解决内容和表现分离的问题,┅般存放在.css文件里

可在css和html怎么连接的头元素<head>里书写,或者书写在CSS文件并在css和html怎么连接里引用该文件

多个css样式可集中在单个css和html怎么连接標签里,出现这种情况时一般按优先权划分

  1. 浏览器默认设置 (最低)
  2. 内联样式(写在css和html怎么连接的标签里,即style属性)(最高)

css由两个主偠部分组成选择器,一条或多条声明

选择器是指css样式的名字“.seletor”,名字前面要带上一点“.”声明是由属性和值组成,给个例子“margin: 0 auto”冒号前面是属性,后面是值该例子是定义元素居中显示。

javascript是脚本语言它是连接前台(css和html怎么连接)和后台服务器的桥梁,它是操纵css囷html怎么连接的能手本文用js代替javascript进行说明。

平时听到原生jsjs库,js框架js插件等等,下面简单说明一下

l  原生js,是指最基础的js没有封装过,但因为各浏览器对js的支持不同就导致用基础的js编程需要为不同的浏览器写兼容代码。

l  Js库js框架,是指集成一系列dom操作API封装,界面UI封裝的的库类常见的有jQuery,extjs等等这方面的定义比较难区分,暂不误导大家

l  Js插件就是集成了帮助程序员轻松完成功能的程序。Js插件用得比較多网页制作上随处可见。如图片轮换功能导航制作,上传图片等等

至于js语法介绍,则太过于琐碎详情请

一个人的骨骼、器官,洏CSS就是人的皮肤有了这两样也就构成了一个植物人了,加上javascript这个植物人就可以对外界刺激做出反应可以思考、运动、可以给自己整容囮妆(改变CSS)等等,成为一个活生生的人;如果说css和html怎么连接是肉身、CSS就是皮相、Javascript就是灵魂没有Javascript,css和html怎么连接+CSS是植物人,没有Javascript和CSS是个毁容嘚植物人;如果说css和html怎么连接是建筑师CSS就是干装修的,Javascript是魔术师

怎么把这三者联系在一起呢,这是我们前端的工作假设我们的css和html怎麼连接文档这样写的:

这是一个最简单的css和html怎么连接文档,文档告诉浏览器说:浏览器啊我遵循W3C标准Xcss和html怎么连接1.0过渡版本规范(文件类型声明),请用这个标准解析我,我采用的编码是utf-8,我的标题是:网页标题描述我的模样的样式表是我同级的mycss.css文件,与我有关的javascript代码在我同级嘚myks.js文件中我的内容有一个段落,段落的内容是“这是一个段落”

    到这里,我们不得不说说 浏览器了前端不了解浏览器就好像农民不叻解自己的地一样,前端程序猿土地就是浏览器了 在浏览器能控制的领域,如果你只能完成页面布局的工作而把事件绑定,前端验证数据交互交给后端,无异于割地求饶 由于这是篇入门文章,这里只讲浏览器为我们能做些什么浏览器工作原理以后再说。

通俗的说瀏览器用于通过网址(URL)来获取并显示Web网页的一种软件工具,最早的web浏览器是创建于1991年的WorldWideWeb后来改名为Nexus,之后出现了各类浏览器直到1994年,網景公司(Netscape)发布了Navigator浏览器0.9版这是历史上第一个比较成熟的网络浏览器,随后的1995年微软推出了IE浏览器从此掀起了浏览器大战,微软采取操作系统捆绑IE浏览器最终获得压倒性胜利,战争失利的Netscape在之后被收购、合并、解散之后一段时间IE独领风骚,之后被OperaSafari,FirefoxChrome陆续瓜分掉一些市场份额,改变了一家独大的局面

当一个用户输入一个正确的网址,按下回车键尽忠职守的浏览器经过一系列的工作(DNS解析->建竝TCP连接->发起HTTP请求->接受服务器响应,得到css和html怎么连接代码)千辛万苦地在互联网的某一台服务器上请求到了一个css和html怎么连接文档,并下载該文档关联的资源(如css文件图片,js文件)之后浏览器调动自己手下的一个部门:渲染引擎,把页面绘制出来 让另一个部门:js引擎来解释javascript代码。

    浏览器所渲染和解释的代码css和html怎么连接、css和javascript是由前端编写的,换言之前端程序猿编写的代码最终是要交给浏览器执行;由于瀏览器的种类很多前端要保证大部分主流浏览器对你的代码都能按你的想法正确的解析和执行,这是个很繁琐的工作幸好出现了一个W3C組织(万维网联盟,创建于1994年), 大部分现代浏览器都遵从W3C规定的标准解析网页。

大部分浏览器执行这些标准的时候比较宽容宽容的程度又有所鈈同,所以前端在编写网页的过程中要一定要遵从W3C标准

1、css和html怎么连接的版本历史

目前我们只需要学习Xcss和html怎么连接和css和html怎么连接5,因为现茬能看到的大部分网页是使用Xcss和html怎么连接或者css和html怎么连接5这两个版本的 Xcss和html怎么连接 与 css和html怎么连接 4.01 几乎是相同的,css和html怎么连接从最初发展箌Xcss和html怎么连接的过程中变得更加的严谨更加的灵活,与CSS结合的更好 标准还在制定中,但不能阻碍其势不可挡的脚步特别是移动端开發的大量普及,相信css和html怎么连接5很快就会取代xcss和html怎么连接,不管是移动端还是pc端成为css和html怎么连接应用的主流版本但是对于前端切图狗来说,css和html怎么连接5可能仅仅意味着更多的语义化标签更加精简的代码,更加严谨的结构与表现分离css和html怎么连接5的精髓在哪呢?这个得单独說一下请见《》

    如果说css和html怎么连接的发展是一个不断修改的过程,那么CSS的发展就是一个不断补充的过程所以在使用CSS的时候,不需要像css囷html怎么连接那行申明使用的标准高版本的浏览器认识高版本的CSS定义,低版本的浏览器略过不认识的CSS定义不管什么版本,CSS的语法很简单选择器:{属性:属性值},所以火爆的CSS3无外乎是扩展了选择器和属性

由于网景高层是java的粉丝,或者说为了抱上当时热炒的java的大腿LiveScript更名為javascript。
    Javascript1995年5月定稿12月推向市场,立刻被广泛接受全世界的用户大量使用。不得不说这是个奇迹,奇迹的产生的根源是Brendan Eich吗并不是,Brendan Eich对自巳的作品并不满意根源来自于迫切的需求,世界太需要用户能够与浏览器互动了但是,有过项目开发经验的人都知道 对后期的维护來说将是灾难性的,雪上加霜的是1996年8月,微软宣布推出自己的脚本语言Jscript;11月为了压制强势的微软,网景公司决定申请Javascript的国际标准;1997年6朤第一个国际标准ECMA-262正式颁布。
    浏览器与用户相互的迫切需要下javascript发展的太快了,两年的时间从开发到固化,Javascript的规范还没来及调整相仳之下,C语言问世将近20年之后国际标准才颁布。 由于这些历史的原因Javascript有很多缺陷但是JavaScript在前端的地位已经无可替代。

API)构成这些API中最基础和著名的就是DOM(文档对象模型)和BOM(浏览器对象模型),直到现在还有人说JavaScript=ECMAScript+DOM+BOM,其实现代浏览器为JS提供了很多API除了DOM和BOM,还有用于从服务器获取数据的API如XHR,Fetch,用于客户端存储的API如:cookie,localStorage,用户数据管理的API,如IndexedDB绘制和操作图形的API,如Canvas,地理定位API,音频和视频API等等

}

我要回帖

更多关于 css和html怎么连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信