web标准之道——笔记

字体设置

sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案。通用字体应该放在最后面

sans衬线字体

容易阅读,一般使用在正文内容或字体比较小的情况下

sans-serif无衬线字体

容易疲劳,一般在文章标题中使用

如果在正文中使用无衬线字体,那么必须保证字体设置的足够大

monospace等宽字体

指每个字符宽度都一致,使用它可以特别容易对齐,另外它可以是衬线的或非衬线字体。

缺字符

当有指定的字体但因为里面没有找到对应的字符时,会显示成缺字符,一般表现为 “口”

字体名加引号和不加引号的区别就是,中文会忽略字体名称左右的空白字符,英文会将多个空格合并成一个空格。

html与xhtml

html与xhtml非常像,不过xhtml比html更加严格,因为xhtml想往xml方向发展,但html太过于松散,导致如果将html放到xml中,将会无法运行。

DOCTYPE

一些浏览器为了兼容早期的网站,避免和web标准起冲突,于是一些浏览器厂商想出了一个办法,他们认为如果那些不知道web标准的人,他们写的代码一定也不符合标准,于是他们把没有写DOCTYPE或者DOCTYPE写错的页面,用怪异模型来渲染页面。但是到了这个年代,web标准已然成为了潮流,因此通过DOCTYPE来判断以及不再适合。

设置Content-type

当服务器端忘记设置返回Content-type时,浏览器会尝试使用页面设置的Content-type来设置字符编码

ie6 overflow bug

ie6有overflow:visibile bug,会父元素会自适应子元素,因此高度自适应可以使用_height

div与table

div不是用来布局的, css才是。也不是div比table合理,而是看你要做什么。

扩展的趁势是产生列的时候,使用table

排队,排队

多列布局的网页十分多见,别的不说,就是现在我使用的博客园的这个风格就是个两列的布局。左面的side,右面的是main。依照大家的阅读习惯,html里面当然应该先写左面的side,然后再写右面的main。其实,这样做是不合理的。因为浏览器的解析是从上到下的。先解析出来的先显示,后解析出来的后显示。而左面的导航栏并不是用户急于想看到的,用户急于想看到的是main里面的文章的内容。所以正确的写法是侧边栏写在下面,网页主题写在上面,然后利用float样式,让它们出现在左边或者右边。

不是所有的标签都是能自闭合

比如:

<textarea>
<script>

h1 - h6的不合理性

究竟是h1大还是h6大,就算抛开这一点,如果有更多的子集那么用h几?因此在html5中,添加了一个section标签,每个section就是一个块。

xml

html想往xml上靠,主要是因为他们想让html更加结构化

attachEvent

attachEvent中的this是指window,因为它相当于是引用了一个函数

监听模式

将所有需要绑定事件的,push到一个数组中,循环

函数中的变量

如果将函数当做构造函数或者闭包来使用,那么只有对象销毁的时候,里面的变量才会销毁(代验证,chrome不存在这个问题)

浏览器无法并行下载的原因

浏览器认为在JS脚本中可能会输出HTML内容,导致页面错乱,因为顺序问题,而使用defer属性,则是告诉浏览器,这个脚本中不会输出HTML内容

一些问题

1、在分配ID和类名时,尽可能保持与表现形式无关,例如contleft有可能以后希望出现在右边。
2、不要动态修改 DOM 里面的 id 属性,IE低版本,id修改后并不会自动去重新匹配CSS规则

原文地址:https://www.cnblogs.com/pssp/p/6222200.html