CSS学习培训总结

2021-01-20 06:50 jianzhan

 1.消除波动
老调重弹的话题,招聘面试常常问的难题
处理方式有许多种,这里讲几种
1.1 子元素加clear

拷贝编码
编码以下:

<div class="news">
<p>Some Text</p>
<br class="clear">
</div> .news{
background: gray;
border: solid 1px black;
}
.news p{
float: right;
}
.clear{
clear: both;
}

这类方式能够拓展出许多种不一样的方式,如JS动态性加上,设定1个公共性的类随后加上,或立即便是1段内联style的html编码,可是基本原理全是用到了clear这个特性
1.2 父元素BFC化
HTML文本文档流是盒子实体模型的,BFC便是机构盒子实体模型的方式,当元素的种类如标识(p和span)不1样的情况下,其主要表现出来的模样是不1样的。
因此BFC便是让这个元素看起来像盒子的1种代称,BFC全称 Box Formatting Context。CSS2.1也有IFC,即Inline Formatting Context。
BFC合理布局标准:
•內部的Box会在竖直方位,1个接1个地置放
•Box竖直方位的间距由margin决策。属于同1个BFC的两个邻近Box的margin会产生重合
•每一个元素的margin box的左侧, 与包括块border box的左侧相触碰(针对从左往右的文件格式化,不然相反)。即便存在波动也是这般
•BFC的地区不容易与float box重合
•BFC便是网页页面上的1个防护的单独器皿,器皿里边的子元素不容易危害到外面的元素。反之也这般
•测算BFC的高宽比时,波动元素也参加测算
造成BFC的标准:自然一般的块级元素默认设置展现块级的模样,可是根据CSS大家能够可让一些元素展现BFC的形状(块级形状)
1.根元素(html元素)
2.float不为none的元素(包含left,right,inherit3个,由于float仅有4个值)
3.position为absolute或fixed
4.display为inline-block,table-cell,table-caption,flex,inline-flex
5.overflow不为visible(包含hidden,scroll,auto,inherit4个值)
以下面的为在父元素加float特性使其BFC化

拷贝编码
编码以下:

<div class="news">
<p>Some Text</p>
<br class="clear">
</div> .news{
background: gray;
border: solid 1px black;
}
.news p{
float: right;
}
.clear{
clear: both;
}

2.全透明度
2.1 opacity
熟习CSS3的应当很清晰,不便是opacity嘛。可是在那个沒有适用opacity的时代又是如何做的呢。
opacity特性设定元素的不全透明级別。不容易被承继,值为0.0(彻底全透明)到1.0(彻底不全透明)。
不容易承继父元素的特性,可是能够设定inherit来承继父元素的值

拷贝编码
编码以下:

p{
opacity: 0.5;
filter: alpha(opacity=50); /*IE*/
color: #000;
}

2.2 RGBA
RGB拓展全透明度的1种文件格式,a意味着alpha全透明度。

拷贝编码
编码以下:

p{
background-color: rgba(0,0,0,0.8);
color: #fff;
}

2.3 PNG照片的难题
png照片的最大优点是适用alpha全透明度,可是IE6不立即适用PNG全透明度,PNG全透明度自IE7才适用。
好的是如今早已慢慢取代了IE6,
3.有着合理布局的难题
默认设置有着合理布局的元素:
•body/html
•table/tr/td
•img
•hr
•input/select/textarea/button
•iframe/embed/object/applet/marquee
因此实际上div和span是沒有合理布局的。
设定下列CSS特性会让元素得到合理布局。
1.float: left/right
2.display: inline-block
3.width/height
4.zoom: 任何值(仅有IE)
IE7中下列特性也开启合理布局(下面3个特性仅有IE7+才适用)
1.overflow: hidden/scroll/auto
2.min-width: 任何值
3.max-width: 除none以外的任何值
4.标准注解
•lt <
•lte <=
•gt >
•gte >=
标准注解写法以下,这里的是XHTML写法,因此后边会以/>末尾,HTML5写法最好是是沒有反斜杠

拷贝编码
编码以下:

<!-- [if IE 6]>
<link rel="stylesheet" type="text/css" href="/css/ie6.css" />
<![endif]-->
<!-- [if !IE 6]>
<link rel="stylesheet" type="text/css" href="/css/ie6.css" />
<![endif]-->
<!-- [if gte IE 6]>
<link rel="stylesheet" type="text/css" href="/css/ie6.css" />
<![endif]-->

5.IE普遍的BUG及其处理方式
下面这些BUG全是很有意味着性的,在我做的新项目中下面的bug基础都遇到了。-_-!!这运势真并不是1般好。
自然如今说起IE6适配许多人将会会不屑一顾,可是我感觉在天朝大国这个连院校都在用着XP的地区,身为1名达标的前端开发,IE6适配务必要过关。
5.1 双外边距波动BUG
在元素有外边距且波动的情况下

拷贝编码
编码以下:

div.someone{
float: left;
margin-left: 20px;
}

处理方式
对float的元素设定display:inline

拷贝编码
编码以下:

div.someone{
float: left;
margin-left: 20px;
display: inline;
}

5.2 3像素文字偏位bug
当文字与1个波动元素邻近时这个bug有将会出現

拷贝编码
编码以下:

div.myFloat{
float: left;
width:200px;
}
p{
margin-left:200px;
}

处理方式(IE6以上)

拷贝编码
编码以下:

p{
height: 1%; /*有着合理布局*/
margin-left: 0;
}
.myFloat{
margin-left: ⑶px; /*关键的1句,等于左侧的波动元素的宽度变小了3px*/
}

5.3 IE6的反复标识符bug
当1系列波动元素排序在1排,假如最终的元素反复出現则是这个bug。
ps:一般是编码有加上注解的状况
处理方式
1.应用负外边距
2.消除注解
5.4 IE6的“躲猫猫”bug
当1个波动元素后边跟随1些非波动元素,随后是1个清除元素,全部这些元素包括在1个设定了情况色调或图象的父元素中。假如清除元素碰到了波动元素,那末正中间的非波动元素看起来像消退了,仅有在更新网页页面的情况下才出現。
处理方式
1.去掉父元素上的情况色调或图象
2.防止清除元素与波动元素触碰
3.器皿特定行高
4.将波动元素和器皿元素的position特性设定为relative