CSS世界
5.1 1ex 对齐的问题
- ex 是小写 x 字符的高度单位,因为内联元素默认基线对齐,然后设置图标高 1ex,同时图片居中,文字和图片就天然居中了
demo:
字体大小:
中文字符
English
5.2 line-height
- 对于非替换元素的纯内联元素,其可视高度完全由 line-height 决定
6.3 BFC
block formatting context “块级格式化上下文”
触发 BFC 的条件:
- <html>根元素;
- float 的值不为 none;
- overflow 的值为 auto、scroll 或 hidden;
- display 的值为 table-cell、table-caption 和 inline-block 中的任何一个;
- position 的值不为 relative 和 static。
最后,我们可以提炼出两套 IE7 及以上版本浏览器适配的自适应解决方案。
- 借助 overflow 属性,如下:
.lbf-content { overflow: hidden; }
- 融合 display:table-cell 和 display:inline-block,如下:
.lbf-content { display: table-cell; width: 9999px; /* 如果不需要兼容 IE7,下面样式可以省略 */ *display: inline-block; *width: auto; }
demo:
float
这个 DEMO 还附带了一个 word-break 的样式类来解决英文过长不能自动换行的的问题
sadfasdfasdfasdgadsfgkjadfkgjdofngofdngodfingaodfingodfingodfngodfi
6.4 overflow
overflow 剪裁界线 border box,即如果容器有padding,会被当做容器内的对象一样剪裁掉
overflow: auto,有个兼容问题:chrome下,滚动容器的padding-bottom会算在滚动尺寸内
除非 overflow-x 和 overflow-y 的属性值都是 visible,否则 visible 会当成 auto 来 解析。
单行文字溢出点点点效果
.ell { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
返回顶部:
<a href="#">返回顶部></a>
元素设置了 overflow: hidden 声明,里面内容高度溢出的时候,滚 动依然存在,仅仅滚动条不存在!
6.4.5 ?
11.1 outline
模拟原生的按钮,代理高亮
:focus + label.btn { outline: 1px dotted Highlight; /* Chrome浏览器下使用浏 览器自带的 focus 外发光 outline 效果 */ outline: 5px auto -webkit-focus-ring-color; }
demo:
outline: 一个真正意义上的不占据任何空间的属性
- 遮罩效果
.crop-area { outline: 256px solid #000; outline: 256px solid rgba(0,0,0,.5); /*包括 IE10 在内的 IE 浏览器下的镂空 元素会有点击穿透的问题 ↓2*/ background: url(about:blank); background: linear-gradient(to top, transparent, transparent); /* IE8 浏览器不支持 rgba 颜色 */ filter: alpha(opacity=50); cursor: move; } :root .crop-area { filter: none; }
- 剪裁配合
{ position: absolute; clip: rect(0 9999px 9999px 0); }