block,inline和inlinke-block细节对比

  1. block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素)。block元素通常被现实为独立的一块,会单独换一行;inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。
  2. 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素):
    • 常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。
    • 常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等。
  3. block元素可以包含block元素和inline元素;但inline元素只能包含inline元素。要注意的是这个是个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条规律是不适用的。比如 P 元素,只能包含inline元素,而不能包含block元素。
  4. 一般来说,可以通过display:inline和display:block的设置,改变元素的布局级别。

继续阅读

CSS系列:CSS中盒子的浮动与定位

1. 盒子的浮动

在标准流中,一个块级元素在水平方向会自动伸展,知道包含它的元素的边接;而在竖直方向与相邻元素依次排列,不能并排。
CSS中float属性,默认为none。将float属性的值设置为left或right,元素就会向其父元素的左侧或右侧靠紧。同时默认情况下,盒子的宽度不再伸展,而是根据盒子里面的内容的宽度来决定。

float: left;

可以使用clear来清除浮动:

clear: left | right | both;

2. 盒子的定位 继续阅读

纯CSS实现侧边栏/分栏高度自动相等

二、纯CSS实现侧边栏/分栏高度自动相等

这里直接介绍我认为的最佳的侧边栏/分栏高度自动相等方法。核心的CSS代码如下(数值不固定):

margin-bottom:-3000px; padding-bottom:3000px;

再配合父标签的overflow:hidden属性即可实现高度自动相等的效果。
举个简单的实例吧,如下CSS及HTML代码:

#content{overflow:hidden;}
.left{width:200px; margin-bottom:-3000px; padding-bottom:3000px; background:#cad5eb; float:left;}
.right{width:400px; margin-bottom:-3000px; padding-bottom:3000px; background:#f0f3f9; float:right;}
.center{margin:0 410px 0 210px; background:#ffe6b8; height:600px;}

继续阅读

关于Angular 2.0 的探索

2015年,由于React Native发布异常火爆,引出了她背后的框架ReactJS,ReactJS,在前端届也因此变得非常火爆。
目前很多人拿React和Angular2作比较。我资历尚浅,不作过多评论。今天在这里写一下这几天对Angular的研究一些总结。
Angular 2.0 分为 TypeScript,JavaScript,和Dart版本,目前都是beta版。 继续阅读

IOS WebView 文档研究

前段时间在公司做了一个《装房通》的项目,里面内嵌了一个WebView,地址是这样的  zft.360zfw.com
由于这次内嵌的WebView,与ios通信比较多,而且需要做离线版本,躺的坑略多。
可能由于我的无知,照成与IOS工程师上的沟通问题。
于是认真读了一下ios 的webview文档
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/
有以下几个结论: 继续阅读

eslint 小记

在用vim编码时,习惯保存的时候检查一下语法问题。由于之前使用的JSHlint,没有集成ES6的语法,于是寻找新的替代方案。
eslint的优势是支持ES6,和react的JSX。官方包含了许多rules 需要自己配置 http://eslint.org/docs/rules/ 配置有点繁琐
 

Installation

继续阅读

Babel 小记

前段时间读完阮一峰的《ECMAScript 6》,开始打算把项目陆续引进。
但是在浏览器环境下目前还是对ES6支持不好,书里推荐的是Google推出的Traceur的转换器 用于ES6  to ES5。
目前网上比较流行的是Balel,由于github上的start, Balel比Traceur多,Babel的生态也比较好,所以着重对Balel进行研究。
官网:http://babeljs.io/ 继续阅读