ie

正则表达式-贪婪与懒惰

耗尽温柔 提交于 2020-03-26 09:09:21
事故: 今天写vpnbook.py的时候(参见 vpnbook.py ),遇到一个问题,匹配到太多的数据,而且是我不需要的。 我要对某个html进行解析,又为了跨平台和快速使用,就没有使用第三方库(比如BeautifulSoup) 获得的html如下 1 <!DOCTYPE html> 2 3 <!--[if lt IE 7 ]><html class="ie ie6 no-js" lang="en"> <![endif]--> 4 5 <!--[if IE 7 ]><html class="ie ie7 no-js" lang="en"> <![endif]--> 6 7 <!--[if IE 8 ]><html class="ie ie8 no-js" lang="en"> <![endif]--> 8 9 <!--[if IE 9 ]><html class="ie ie9 no-js" lang="en"> <![endif]--> 10 11 <!--[if (gte IE 9)|!(IE)]><!--><html class="no-js" lang="en"> <!--<![endif]--> 12 13 <head> 14 15 <meta charset="utf-8"> 16 17 <meta http-equiv="X-UA-Compatible"

IE的特有属性hasLayout和BFC

你。 提交于 2020-03-25 17:37:55
IE多数的bug源于hasLayout属性,这个属性在IE8及以后的浏览器中被抛弃 IE7及以下版本不支持BFC 块级格式化上下文BFC# BFC是W3C CSS 2.1 规范中的一个概念,它决定了元素如何 对其内容进行定位 ,以及与 其他元素的关系和相互作用 。当涉及到可视化布局的时候, Block Formatting Context提供了一个环境,HTML元素在这个环境中按照一定规则进行布局 。一个环境中的元素不会影响到其它环境中的布局。 也可以说BFC就是一个作用范围。可以把它理解成是一个独立的容器,并且这个容器的里box的布局,与这个容器外的毫不相干。 BFC的规则# 1、在创建了 Block Formatting Context 的元素中,其子元素按文档流一个接一个地放置。 垂直方向上他们的起点是一个包含块的顶部 ,两个相邻的元素之间的 垂直距离 取决于 ‘margin’ 特性。 根据 CSS 2.1 8.3.1 Collapsing margins 第一条,两个*相邻的普通流中的块框*在垂直位置的空白边会发生折叠现象。也就是*处于同一个BFC中的两个垂直窗口的margin会重叠。* 根据 CSS 2.1 8.3.1 Collapsing margins 第三条,*生成 block formatting context 的元素不会和在流中的子元素发生空白边折叠。

margin折叠及hasLayout && Block Formatting Contexts

流过昼夜 提交于 2020-03-25 17:17:48
margin折叠的产生有几个条件: 这些margin都处于普通流中,并在同一个BFC中; 这些margin没有被非空内容、padding、border 或 clear 分隔开; 这些margin在垂直方向上是毗邻的,包括以下几种情况: 1、一个box的top margin与第一个子box的top margin 2、一个box的bottom margin与最后一个子box的bottom margin,但须在该box的height 为auto的情况下 3、一个box的bottom margin与紧接着的下一个box的top margin 4、一个box的top margin与其自身的bottom margin,但须满足没创建BFC、零min-height、零或者“auto”的height、没有普通流的子box 垂直方向上毗邻的box不会发生折叠的情况: 根元素的外边距不会参与折叠 一个有clearance的box的上下margin毗邻,它会与紧接着的下一个box发生margin折叠,但折叠后的margin不会再与它们父box的bottom margin折叠 折叠边距的计算 当两个margin都是正值的时候,取两者的最大值;当 margin 都是负值的时候,取的是其中绝对值较大的,然后,从 0 位置,负向位移;当有正有负的时候,先取出负 margin 中绝对值中最大的,然后,和正

VUE 2.0在IE中打开页面空白的原因及解决方法

旧时模样 提交于 2020-03-25 05:44:14
前言 因为工作的需要,学习Vue2.0也有一段时间,最近在用Vue2.0的官方脚手架工具构建的项目,chrome中跑一直没有问题,但ie打开出现了bug: 问题 ie打开vue2.0项目空白,控制台报错 vuex requires a Promise polyfill in this browser; 原因 Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API ,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转码。为了解决这个问题,我们使用一种叫做 Polyfill(代码填充,也可译作兼容性补丁) 的技术。 简单地说,polyfill即是在当前运行环境中用来复制(意指模拟性的复制,而不是拷贝)尚不存在的原生 api 的代码。 解决 安装 babel-polyfill 步骤 npm安装 npm install --save-dev babel-polyfill 或 c npm install --save-dev babel-polyfill 在main.js导入即可 import 'babel-polyfill' 如果也是用了官方脚手架vue-cli,还需要在webpack.config

收藏的一些javascript片段

a 夏天 提交于 2020-03-24 09:38:21
学习js也很有一段时间,收集了一些js的片段。特地整理排版了一下,以一个js初学者的视界来分析注释了这些代码段,暂且不去讨论它 的性能和优化问题,相信会对一些初学者有用。第一次发文,定许多纰漏和不足的地方,希望可以交流和学习。 1 javascript动态加载--2 获取字符串的字节长度--3 DOM加载完即执行(有别于onload-页面的一切都加载完后执行)--4获取CSS属性--5 数组检测--6 继承--7 简单事件绑定--8 浏览器判断--9 阻止事件的默认行为--10 数组合并去重--11 将arguments转化为数组--12 数组去重--13 根据生日算年龄--14 获取某个节点下类名为classname的所有元素--15 object.crate的用法--16 获取事件的目标对象--17 获取事件发生时按键状态--18 dom操作--19 阻止事件冒泡--20 元素位置计算--21 元素显示效果--22 闭包的用例--23 实现字符串长度截取--24 获取域名的主机--26 清楚空格--27 替换全部--28 html文档中转义和解码字符--29 判断是否为数字类型--30 设置cookie--31 获取指定cookie--32 加入收藏夹--33 判断IE6--34 跨域解决方法--35 加载样式文件--36 今天是星期几--38 返回按id检索的元素对象--39

margin:0 auto在IE中失效的解决方案

拜拜、爱过 提交于 2020-03-24 08:00:27
最近在开发项目的时候,发现在火狐浏览器中设置外容器margin:0 auto是可行的。 但是到了IE6,IE7,IE8则出现了不能居中的现象。 开始也没怎么在意,刚刚在浏览网页的时候看到这篇文章,帮我解决了这个疑问。 解决方案如下: 很多人都忽略了“文档类型”。下面就是正确设置的文档类型了。 <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd” > <html xmlns=” http://www.w3.org/1999/xhtml” > 另外,如果你使用的IDE是Dreamweaver,还可以通过调整页面属性来解决。该选项在菜单中的修改–>页面属性。 详细设置如下图: Unicode 标准化表单下面的“包括Unicode签名”选项不要打钩。其他调整成如上的设置即可解决。 知识补充: 关于网页声明,参考: HTML <!DOCTYPE> 标签 定义和用法 <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。 该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。

浏览器名称和版本判断

大憨熊 提交于 2020-03-24 02:18:01
通过Js获取浏览器信息 Navigator 对象包含有关浏览器的信息。 Navigator 对象属性和方法: IE的测试结果: FireFox的测试结果: 获取具体IE版本号: Java代码 function checkIEVersion() { var ua = navigator.userAgent; var s = "MSIE"; var i = ua.indexOf(s) if (i >= 0) { //获取IE版本号 var ver = parseFloat(ua.substr(i + s.length)); alert( "你的浏览器是IE"+ver); } else { //其他情况,不是IE alert( "你的浏览器不是IE"); } } 获取浏览器名称和版本 Java代码 function appInfo(){ var browser = {appname: 'unknown', version: 0}, userAgent = window.navigator.userAgent.toLowerCase(); //IE,firefox,opera,chrome,netscape if ( /(msie|firefox|opera|chrome|netscape)\D+(\d[\d.]*)/.test( userAgent ) ){ browser

浏览器面试题总结

寵の児 提交于 2020-03-22 18:19:24
1. 你对浏览器的理解? 浏览器的主要功能是将用户选择的 web 资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常 是 HTML,也包括 PDF、image 及其他格式。用户用 URI(Uniform Resource Identifier 统一资源标识符)来指定所请 求资源的位置。 HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范进行维护,W3C 是负责制定 web 标准的 组织。 但是浏览器厂商纷纷开发自己的扩展,对规范的遵循并不完善,这为 web 开发者带来了严重的兼容性问题。 简单来说浏览器可以分为两部分,shell 和 内核。 其中 shell 的种类相对比较多,内核则比较少。shell 是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作, 参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些 浏览器并不区分外壳和内核。从 Mozilla 将 Gecko 独立出来后,才有了外壳和内核的明确划分。 2. 你对浏览器内核的理解? 主要分成两部分:渲染引擎和 JS 引擎。 渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示 html、xml 文档及图片,它也 可以借助插件(一种浏览器扩展

在光标选择处插入指定文字

狂风中的少年 提交于 2020-03-22 12:32:53
在IE和FF下,对于文本域或文本框有效。 在IE下,对容器和文本域或文本框均有效。 1 var obj = document.getElementById('content'); 2 (function Insert(obj,str) 3 { 4 //IE下支持document.selection 5 if (document.selection) 6 { 7 obj.focus(); 8 sel = document.selection.createRange(); 9 sel.text = str;10 sel.select();11 }12 //MOZILLA/NETSCAPE 支持对象的selectionStart和selectionEnd;13 else if (obj.selectionStart || obj.selectionStart == '0')14 {15 var startPos = obj.selectionStart;16 var endPos = obj.selectionEnd;17 // save scrollTop before insert18 var restoreTop = obj.scrollTop;19 obj.value = obj.value.substring(0, startPos) + str + obj.value

Vue初识

▼魔方 西西 提交于 2020-03-22 11:11:54
1、Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 2、引入Vue.js 初学,所以直通过CDN服务器引入vue库 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>vue1</title> <!-- 通过CDN服务器引入vue库 --> <script src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script> </head> 3、vue在js中语法 <script> var vm = new Vue({ el : "#app", data : { msg : "hello world!!!",