css常见样式2

1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?

1.float元素会脱离正常的文档流,按照其外边距指定的位置相对于它的上一个块级元素(或父元素)显示;
2.浮动元素后面的块级元素的内容会向此浮动元素的外边距靠齐
边框和背景忽略浮动元素而向上一个任意非浮动元素靠齐
浮动元素后面的内联元素会向此浮动元素的外边距靠齐

1、对其父元素的影响
元素浮动之后,它脱离当前正常的文档流,无法撑开其父元素,造成父元素的塌陷
2、对其兄弟元素(浮动)的影响
同一个方向的浮动元素:当一个浮动元素在浮动过程中碰到同一个方向的浮动元素时,它会紧跟在它们后面
反方向的浮动元素:互不影响,位于同一条水平线上,当空间不够时会被挤下
3、对其兄弟元素(非浮动)的影响
如果兄弟元素为块级元素,该元素会忽视浮动元素的而占据它的位置,(同一层叠上下文中,float元素比block元素更靠近用户),但block元素里面的inline-block,inline,例如文字等元素会环绕浮动元素排列;
如果兄弟元素为内联元素,则元素会环绕浮动元素排列。
4、对子元素的影响
当一个元素浮动时,在没有清除浮动的情况下,它无法撑开其父元素,但它可以让自己的浮动子元素撑开它自身,并且在没有定义具体宽度情况下,使自身的宽度从100%变为自适应(浮动元素display:block)。其高度和宽度均为浮动元素高度和非浮动元素高度之间的最大值。

2.清除浮动指什么? 如何清除浮动? 两种以上方法

清楚浮动大意指的是:解决浮动父容器高度塌陷问题;

① 利用clear属性; 
  在父容器最后添加一个空div<div style="clear:both;"></div>
  或者:
  .clearfix{
      *zoom:1; /*触发 hasLayout, 针对ie6,7*/
  }
  .clearfix:after{
      content:"";
      display:block;
      clear:left;
  }
② 利用BFC特性,只要父容器形成BFC就可以,例如:
  float为 left|right
  overflow为 hidden|auto|scroll
  display为 table-cell|table-caption|inline-block
  position为 absolute|fixed

3.有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?

CSS定位方式有四种:默认定位(static)、相对定位(relative)、绝对定位(absolute)和固定定位(fixed)

① absolute:绝对定位,脱离文档流,相对于 static 定位以外的第一个父元素(一直都没有的话以html根节点为准)进行定位。元素的位置通过 "left", "top", "right" "bottom" 属性进行规定。
② fixed:相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" , "bottom" 进行规定。参考场景:随着鼠标拖动始终不动的顽固小广告;
③ relative:相对定位,相对于原来的位置移动,没有脱离文档流,偏移前的位置依然保留,改变位置之后对其他兄弟元素等不造成影响;

4.z-index 有什么作用? 如何使用?

z-index属性用于设置节点的堆叠顺序,拥有更高堆叠顺序的节点将显示在堆叠顺序较低的节点前面。即同一层叠上下文,属性值越大,被层叠在最上面。
1.z-index仅对定位元素有效(position为relative,absolute,fixed)
2.z-index只可比较同级元素(不同层叠上下文中的无法通过z-index比较)

5.position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

2者都没有脱离文档流,但是position:relative偏移后,偏移前的位置依然保留,改变位置之后对其他元素不造成影响;
负边距会使元素在文档流中的位置发生偏移,它会放弃偏移之前占据的空间,紧挨其后的元素会填充这部分空间;

6.BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明

块级格式化上下文BFC:
浮动(float),绝对定位的元素(absolute;fixed;)块容器(inline-block,table-cell,table-caption)块元素(display:block:overflow不为visible,为overflow :auto,hidden,scoll)的会去建立一个新的块级格式化上下文

作用

1:清除垂直外边距合并

html: 
<div class="ct">ct</div>
  <div class="a">
    <div class="b">b</div>
  </div>
css:
*{
  padding:0;
  margin:0;
}
.ct{
  width:100px;
  height:100px;
  background:blue;
}
.a{
  width:100px;
  height:100px;
  background:pink;
  overflow:auto;/*父元素设为BFC*/
}
.b{
  width:50px;
  height:50px;
  background:yellow;
  margin:20px;
}
原,合并.png

父元素设为BFC.png

2:不会重叠浮动元素

html:
 <div class="ct">
    <div class="a"></div>
    <div class="b">float,绝对定位的元素(absolute;fixed;)块容器(inline-block,table-cell,table-caption)块元素(display:block:overflow不为visible,为overflow :auto,hidden,scoll)的会去建立一个新的块级格式化上下文</div>
  </div>
css:
*{
  padding:0;
  margin:0;
}
.ct{
  border:1px solid;
}
.a{
  width:70px;
  height:70px;
  float:left;
  background:pink;
}
.b{
  border:5px solid ;
  overflow:hidden;/*BFC*/
}
原-inline环绕float.png

不重叠浮动元素.png

3:包含浮动元素

html:
<div class="ct">
   <div class="a"></div>
   <div class="b"></div>
  </div>
css:*{
  margin:0px;
  padding:0px;
}
.ct{
  border:2px solid;
  float:left;/*BFC*/
}
.a,.b{
  float:left;
  width:100px;
  height:50px;
}
.a{
  background:pink;
}
.b{
  background:yellow;
}
原-父容器塌陷.png

父容器被撑起.png

7.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例

在CSS中,两个或多个毗邻(父子元素或兄弟元素)的普通流中的块元素垂直方向上的 margin 会发生叠加。这种方式形成的外边距即可称为外边距合并;
对于父子元素来说,当容器没有padding和border时,内部的margin会引发外边距合并;

注:毗邻:指没有被非空内容、padding、border 或 clear 分隔开。普通流:除float、absolute外

合并规则: 两个外边距都是正数,取两者之中的较大者;两个外边距都是负数,取两者之间绝对值较大者;当两个外边距一正一负时,取两者的和。
解决外边距合并问题:
1.浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠(这里指的是上下相邻的元素)
2.创建了BFC的元素和它的子元素不会发生折叠)
范例:http://js.jirengu.com/cikib/2/edit

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,705评论 1 92
  • 一,浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型是一种可视化格式模型,浮动...
    DeeJay_Y阅读 849评论 0 4
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,793评论 0 6
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 927评论 0 2
  • 任何孤独,寂寞都需要出口,我们自我保护太强,不愿熟人看到自己悲情的一面,,我希望闫兮可以是这个出口,,更好的与这个...
    九千孩子的梦阅读 548评论 0 1