css dfc 分级_CSS令人迷惑的知识点

CSS中link 和@import的区别是?

'' (1) link属于HTML标签,而@import是CSS提供的;

''

'' (2) 页面被加载的时,link会同时被加载,而@import被引用的CSS会等到引用它的CSS文件被加载完再加载;

''

'' (3) import只在IE5以上才能识别,而link是HTML标签,无兼容问题;

''

'' (4) link方式的样式的权重 高于@import的权重.

position:absolute和float属性的异同

共同点:对内联元素设置float和absolute属性,可以让元素脱离文档流,并且可以设置其宽高。

不同点:float仍会占据位置,absolute会覆盖文档流中的其他元素。

介绍一下box-sizing属性?

box-sizing属性主要用来控制元素的盒模型的解析模式。默认值是content-box。

content-box:让元素维持W3C的标准盒模型。元素的宽度/高度由border + padding + content的宽度/高度决定,设置width/height属性指的是content部分的宽/高

border-box:让元素维持IE传统盒模型(IE6以下版本和IE6~7的怪异模式)。设置width/height属性指的是border + padding + content

标准浏览器下,按照W3C规范对盒模型解析,一旦修改了元素的边框或内距,就会影响元素的盒子尺寸,就不得不重新计算元素的盒子尺寸,从而影响整个页面的布局。

CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?

'' 1.id选择器( # myid)

''

'' 2.类选择器(.myclassname)

''

'' 3.标签选择器(div, h1, p)

''

'' 4.相邻选择器(h1 + p)

''

'' 5.子选择器(ul > li)

''

'' 6.后代选择器(li a)

''

'' 7.通配符选择器( * )

''

'' 8.属性选择器(a[rel = "external"])

''

'' 9.伪类选择器(a: hover, li:nth-child)

优先级为:

!important > id > class > tag

important 比 内联优先级高,但内联比 id 要高

CSS3新增伪类举例:

'' p:first-of-type 选择属于其父元素的首个

元素的每个

元素。

''

'' p:last-of-type 选择属于其父元素的最后

元素的每个

元素。

''

'' p:only-of-type 选择属于其父元素唯一的

元素的每个

元素。

''

'' p:only-child 选择属于其父元素的唯一子元素的每个

元素。

''

'' p:nth-child(2) 选择属于其父元素的第二个子元素的每个

元素。

''

'' :enabled :disabled 控制表单控件的禁用状态。

''

'' :checked 单选框或复选框被选中。

CSS3有哪些新特性?

'' CSS3实现圆角(border-radius),阴影(box-shadow),

''

'' 对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)

''

'' transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜

''

'' 增加了更多的CSS选择器 多背景 rgba

''

'' 在CSS3中唯一引入的伪元素是::selection.

''

'' 媒体查询,多栏布局

''

'' border-image

CSS3中新增了一种盒模型计算方式:box-sizing。盒模型默认的值是content-box, 新增的值是padding-box和border-box,几种盒模型计算元素宽高的区别如下:

content-box(默认)

布局所占宽度Width:

Width = width + padding-left + padding-right + border-left + border-right

布局所占高度Height:

Height = height + padding-top + padding-bottom + border-top + border-bottom

padding-box

布局所占宽度Width:

Width = width(包含padding-left + padding-right) + border-top + border-bottom

布局所占高度Height:

Height = height(包含padding-top + padding-bottom) + border-top + border-bottom

border-box

布局所占宽度Width:

Width = width(包含padding-left + padding-right + border-left + border-right)

布局所占高度Height:

Height = height(包含padding-top + padding-bottom + border-top + border-bottom)

对BFC规范的理解?

'' BFC,块级格式化上下文,一个创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。在同一个BFC中的两个毗邻的块级盒在垂直方向(和布局方向有关系)的margin会发生折叠。

''

'' (W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行布局,以及与其他元素的关系和相互作用。

说说你对语义化的理解?

'' 1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构

''

'' 2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;

''

'' 3,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;

''

'' 4,便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。

Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?

1)、 声明位于文档中的最前面,处于 标签之前。告知浏览器以何种模式来渲染文档。

2)、严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。

3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。

4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

你知道多少种Doctype文档类型?

'' 该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。

''

'' HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

''

'' XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

''

'' Standards (标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而 Quirks

''

'' (包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。

HTML与XHTML——二者有什么区别

'' 区别:

''

'' 1.所有的标记都必须要有一个相应的结束标记

''

'' 2.所有标签的元素和属性的名字都必须使用小写

''

'' 3.所有的XML标记都必须合理嵌套

''

'' 4.所有的属性必须用引号""括起来

''

'' 5.把所有

''

'' 6.给所有属性赋一个值

''

'' 7.不要在注释内容中使“--”

''

'' 8.图片必须有说明文字

常见兼容性问题?

'' png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.也可以引用一段脚本处理.

''

'' 浏览器默认的margin和padding不同。解决方案是加一个全局的{margin:0;padding:0;}来统一。

''

'' IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。

''

'' 浮动ie产生的双倍距离(IE6双边距问题:在IE6下,如果对元素设置了浮动,同时又设置了margin-left或margin-right,margin值会加倍。)

''

'' #box{ float:left; width:10px; margin:0 0 0 100px;}

''

'' 这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入

'' display:inline;将其转化为行内属性。(这个符号只有ie6会识别)

''

'' 渐进识别的方式,从总体中逐渐排除局部。

''

''

'' 首先,巧妙的使用“\9”这一标记,将IE游览器从所有情况中分离出来。

''

'' 接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

''

'' css

''

'' .bb{

''

'' background-color:#f1ee18;/所有识别/

''

'' .background-color:#00deff\9; /IE6、7、8识别/

''

'' +background-color:#a200ff;/IE6、7识别/

''

'' _background-color:#1e0bd1;/IE6识别*/

''

'' }

''

''

'' 怪异模式问题:漏写DTD声明,Firefox仍然会按照标准模式来解析网页,但在IE中会触发

'' 怪异模式。为避免怪异模式给我们带来不必要的麻烦,最好养成书写DTD声明的好习惯。现在

'' 可以使用html5推荐的写法:

上下margin重合问题

'' ie和ff都存在,相邻的两个div的margin-left和margin-right不会重合,但是margin-top和margin-bottom却会发生重合。

''

'' 解决方法,养成良好的代码编写习惯,同时采用margin-top或者同时采用margin-bottom。

解释下浮动和它的工作原理?清除浮动的技巧

'' 浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。

''

''

'' 1.使用空标签清除浮动。

''

'' 这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。

''

'' 2.使用overflow。

''

'' 给包含浮动元素的父标签添加css属性 overflow:auto; zoom:1; zoom:1用于兼容IE6。

''

'' 3.使用after伪对象清除浮动。

''

'' 该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置 height:0,否则该元素会比实际高出若干像素;

浮动元素引起的问题和解决办法?

'' 浮动元素引起的问题:

''

'' (1)父元素的高度无法被撑开,影响与父元素同级的元素

''

'' (2)与浮动元素同级的非浮动元素(内联元素)会跟随其后

''

'' (3)若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构

解决方法:

使用CSS中的clear:both;属性来清除元素的浮动可解决2、3问题,对于问题1,添加如下样式,给父元素添加clearfix样式:

'' .clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;}

''

'' .clearfix{display: inline-block;} /* for IE/Mac */

清除浮动的几种方法:

'' 1,额外标签法,

''

'' 2,使用after伪类

''

'' #parent:after{

''

'' content:".";

''

'' height:0;

''

'' visibility:hidden;

''

'' display:block;

''

'' clear:both;

''

'' }

''

''

'' 3,浮动外部元素

''

'' 4,设置overflow为hidden或者auto

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值