文本溢出、垂直外边距合并、BFC、hasLayout
今天学习文本溢出,又遇到了一些小问题,先上图:
关于文本溢出推荐:http://www.cnblogs.com/yzg1/p/5089534.html
从里面学习到单行文本和多行文本溢出, overflow:hidden;text-overflow: ellipsis是基本。然后在控制多行文本溢出的时候需要用到弹性伸缩盒子-webkit-box ,包括设置盒子的伸缩方向和显示的行数。
用div内嵌div做一个小测试:发现对子元素,margin-left有效但是margin-top是无效的,问题的根本原因呢,还是对margin的特性没有了解清楚。w3school(http://www.w3school.com.cn/css/css_margin_collapsing.asp)外边距合并这一章讲的很清晰,实际上就是父元素和子元素在垂直方向上的外边距进行了合并,所以只显示出20px,而水平方向上不会,故显示40px。注释当中还有一句重要的话:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。此注释就为解决这个问题提供了思路。(http://www.nowamagic.net/librarys/veda/detail/1608)也有助于清晰的了解margin的一些特性,作者还分析了IE浏览器下关于margin可能出现的bug。
效果如下:
问题的解决:(http://blog.sina.com.cn/s/blog_6bec36f9010110w9.html)给出了几种方法,其中最简单的就是在父元素中设置:overflow:hidden,果然问题就解决了,但是我并不明白问什么,作者给出原因:盒子没有获得 haslayout 造成 margin-top无效。再继续学习的过程中接触到了一个新的名词BFC(Block Formatting Content),BFC决定了元素如何对内容进行定位,集中触发方式:
1.float不为none;2.overflow不为visible;
3.display:(table-cell\table-caption\inline-block);4、position:(任何值除了static\relative)
BFC和hasLayout的作用:浮动元素和常规元素的重叠问题;解决相邻元素margin边距重叠问题(http://www.cnblogs.com/ILYljhl/p/3169419.html)
所以margin的外边距合并清除的问题就这样解决啦,至于BFC和hasLayout还要继续学习~
文本溢出、垂直外边距合并、BFC、hasLayout的更多相关文章
- CSS 垂直外边距合并:规范、延伸、原理、解决办法
<CSS 权威指南>第七章基本视觉格式化.p192,提到了 垂直外边距合并 的情况,解释总体算清晰,但是感觉不全且没有归纳成一条一条的,参考 CSS框模型中外边距(margin)折叠图文详 ...
- CSS min-height不能解决垂直外边距合并问题
垂直外边距合并有一种情况是嵌套元素的垂直外边距合并,当父级元素没有设定外边距时,在顶部或者底部边缘的子元素的垂直外边距就会和父级的合并,导致父级也有了“隐形”的垂直外边距. 当父级元素的min-hei ...
- css盒子模型、垂直外边距合并
css盒子模型由四部分组成:内容(content).填充(padding).边框(border).边距(margin),其中css样式中定义的width属性是定义内容区域的宽度,正常情况下,设置了内容 ...
- Margin的垂直外边距问题
做练习的时候遇到一个margin的问题,代码结构如下,给父元素body中的子元素div设置了margin:50px auto;本来我是想让子元素div距离父元素上边拉开50个像素,结果却是子元素div ...
- 关于CSS inline-block、BFC以及外边距合并的几个小问题
CSS inline-block和BCF对于初学者来说,总是弄不太明白,下面记录下我在学习这块知识的过程中遇到的几个问题,供大家参考,有不足的地方,欢迎大家批评指正. 一.在什么场景下会出现外边距合并 ...
- 由外边距合并到BFC
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<JavaScript实现Ajax小结> 作者主页:myvin 博主QQ:851399101(点击QQ和 ...
- BFC 以及 外边距合并问题
BFC定义: BFC(Block formatting context)直译为"块级格式化上下文". 它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部 ...
- 【css基础】垂直外边距的合并
近期在重温<CSS权威指南>,还是想把基础再打坚固点,如今对垂直外边距的合并问题进行简单总结. 1. 两个块级元素的外边距都大于0时,取那个最大值作为两个块级元素的垂直边距 请看以下一个小 ...
- css外边距合并和z-index的问题
参考这篇文章, 将外边距的 折叠 参考这篇文章, 将bfc的生成, bfc的应用 参考这篇文章 position: absolute的元素, 仍然具有内填充padding和border边框属性样式, ...
随机推荐
- 富文本web编辑器(UEditor)
展示效果:
- php解析json数据
<?php $data; $data.="["; for ($i=0;$i<20;$i++) { $data.="{"; $data.=" ...
- MFC枚举USB设备碰到的一个疑难,还没解决
代码如下: 打开USB Hub设备之后,返回句柄hHubDevice,然后使用EnumerateHubPorts来枚举Hub的端 口.疑问在代码的中文注释中. bool CUsbEnumHub::En ...
- 关于extern "C" 的用法
而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern "C"声明,在.c文件中包含了extern "C"时会出现编译语法错误 ...
- 转:MFC之COleVariant
COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型.如同boost中的variant. 例子 COleVariant var(3.6f); float v = var.fltVa ...
- 常用的JQuery UI框架
http://www.ligerui.com/ http://www.jeasyui.com/index.php http://www.jqwidgets.com/
- 关于LEA指令(单周期就可以做简单的算术计算)
堆栈种分配的局部变量所谓的“标号”,你以为是什么?(都是那些该死的宏惹的祸,大家要都是老老实实写代码,就不会有这些疑问了). 比如你用local在栈上定义了一个局部变量LocalVar,你知 ...
- Visual Studio如何删除多余的空行
原文:Visual Studio如何删除多余的空行 如何在Visual Studio中删除多余的空格: 适用于:Visual Studio2008 &2010 1. Ctrl + ...
- 【HDOJ】4278 Faulty Odomete
水题. /* 4278 */ #include <cstdio> #include <cstring> #include <cstdlib> #define MAX ...
- BZOJ 1034 [ZJOI2008]泡泡堂BNB
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1757 Solved: 928[Submit][Sta ...