display属性
每个元素都有默认的display
属性,一般是block
或者inline
block
表示块级元素,而inline
表示行内元素block
元素(如div、table、p、form
等)会新开始一行并尽可能撑满容器。而inline
元素(如span、a
等)即行内元素不会打破包裹它的容器的布局
另一个常用的display
值为none
,display:none
通常是被JavaScript
用来在不删除元素的情况下隐藏该元素。
其他的display
值还有list-item
和table
等,你可以随时随地人工改变一个元素的display
值。
常见的是:设置li
元素为display:inline
制作水平菜单。
marigin:auto
如何使一个元素居中,并且不用担心小屏幕会显示出滚动条:(max-width
支持IE7+)
盒模型
盒模型的宽度高度我们知道要通过计算(真正的宽度=width+2padding+2border
)我们使用box-sizing
来改进它,当设置一个元素为box-sizing:border-box
时,此元素的内边距和边框不会增加该元素的宽度。支持IE8+,如果要在所有浏览器中使用该属性,则可以利用下面的代码:
position
position
的值可以为static、absolute、relative、fixed
static
是默认值,表示没有被定位relative
相对定位,相对于它在正常文档流中,通过top、right、bottom、left
作用值产生偏移。而其他元素不会调整位置来弥补它偏离后剩下的间隙fixed
固定定位,相对于浏览器窗口,意味着即使页面滚动,它还是会停留在相同的位置absolute
绝对定位,相对于最近的被定位的祖先元素产生的偏移,如果没有,它是相对文档的body元素进行偏移
float
最开始产生float
的作用就是使文字环绕图片,其本质就是包裹和破坏,它脱离了正常的文档流,可能会导致溢出,所以要clearfix hack
(清除浮动)
媒体查询
针对响应式设计,,让网站针对不同浏览器和设备相应
inline-block
使用行内联,IE6和IE7支持看这里
使用inline-box
要注意以下:
vertical-align
属性会影响到inline-block
元素,你可能会把它的值设置为top
- 需要设置每一列的宽度
- 如果
html
源代码中元素之间有空格,那么列与列之间会产生空隙
column
|
|
CSS3 columns
是很新的标准,所以你需要使用前缀,并且它不被IE9及以下和Opera Mini支持
flexbox
flexbox
布局模式被用来重新定义CSS
中的布局方式
其他框架
例如bootstrap
的栅格布局等等