什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
解析:
FOUC - Flash Of Unstyled Content 文档样式闪烁
<style type="text/css" media="all">@import "../fouc.css";</style>
而引用 CSS 文件的@import 就是造成这个问题的罪魁祸首。IE会先加载整个 HTML 文档
的 DOM,然后再去导入外部的 CSS 文件,因此,在页面 DOM 加载完成到 CSS 导入完成中间
会有一段时间页面上的内容是没有样式的,这段时间的长短跟网速,电脑速度都有关系。
解决方法:只要在<head>之间加入一个<link>或者<script>元素就可以了。
解析:
a,a:hover,a:active,a:visited,a:link,a:focus{
-webkit-tap-highlight-color:rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;
outline:none;background: none;
text-decoration: none;border:none;
-webkit-appearance: none; }
display:none 和 visibility:hidden 两者的区别
解析:
使用 css 让元素不可见的方法有很多种,裁剪、定位到屏幕外边、透明度变换等都是可
以的。但是最常用两种方式就是设置元素样式为 display: none 或者 visibility: hidden。
display:none 和 visible:hidden 都能把网页上某个元素隐藏起来,但两者有区别:
display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,隐藏
后的元素不占据任何空间,通俗来说就是看不见也摸不到。
visible:hidden--- 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,依
旧保留 ,通俗来说就是看不见但摸得到。
拓展:
实际上没那么简单,visibility 是一个非常有故事性的属性
visibility 具有继承性,给父元素设置 visibility:hidden;子元素也会继承这个属性。但是如
果重新给子元素设置 visibility: visible,则子元素又会显示出来。这个和 display: none 有着质的
区别
visibility: hidden 不会影响计数器的计数,如图所示,visibility: hidden 虽然让一个元素不
见了,但是其计数器仍在运行。这和 display: none 完全不一样
CSS3 的 transition 支持 visibility 属性,但是并不支持 display,由于 transition 可以延迟执
行,因此可以配合 visibility 使用纯 css 实现 hover 延时显示效果。提高用户体验。
解析:
margin: 0 auto;水平
text-align: center;水平
行高,垂直
表格,center,middle;水平垂直
display:table-cell;模拟表格,all
绝对定位,50%减自身宽高
绝对定位,上下左右全 0,margin:auto
绝对定位加相对定位。不需要知道宽高
IE6,IE7:给父元素设一个 font-size:高度/1.14,vertical-align:middle
解析:
块格式化上下文, 特性:
使 BFC 内部浮动元素不会到处乱跑;
和浮动元素产生边界。