CSS相关 - 77797963/review-notes GitHub Wiki

4.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。 2、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

行内元素:a、b、span、img、input、strong、select、label、em、button、textarea 块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote 空元素:即系没有内容的HTML元素,例如:br、meta、hr、link、input、img 3、CSS实现垂直水平居中

一道经典的问题,实现方法有很多种,以下是其中一种实现: HTML结构:

<div class="wrapper">
    <div class="content"></div>
</div>    

CSS:

.wrapper {
  position: relative;
  width: 500px;
  height: 500px;
  background-color: #ddd;
 }
.content{
    background-color:#6699FF;
    width:200px;
    height:200px;
    position: absolute;        //父元素需要相对定位
    top: 50%;
    left: 50%;
    margin-top:-100px ;   //二分之一的height,width
    margin-left: -100px;
} 

2.position的值, relative和absolute分别是相对于谁进行定位的?

absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位。

fixed (老IE不支持)生成绝对定位的元素,通常相对于浏览器窗口或 frame 进行定位。

relative 生成相对定位的元素,相对于其在普通流中的位置进行定位。

static 默认值。没有定位,元素出现在正常的流中

sticky 生成粘性定位的元素,容器的位置根据正常文档流计算得出

4、简述一下src与href的区别

href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。

src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。 5、什么是CSS Hack?

一般来说是针对不同的浏览器写不同的CSS,就是 CSS Hack。 IE浏览器Hack一般又分为三种,条件Hack、属性级Hack、选择符Hack(详细参考CSS文档:css文档)。例如:

// 1、条件Hack

// 2、属性Hack .test{ color:#090\9; /* For IE8+ */ color:#f00; / For IE7 and earlier / _color:#ff0; / For IE6 and earlier / } // 3、选择符Hack * html .test{color:#090;} / For IE6 and earlier / * + html .test{color:#ff0;} / For IE7 */ 7、px和em的区别

px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。 浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

1.简要说一下CSS的元素分类

    块级元素:div,p,h1,form,ul,li;
    行内元素 : span>,a,label,input,img,strong,em;

2.CSS隐藏元素的几种方法(至少说出三种)

    Opacity:元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互;
    Visibility:与 opacity 唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件中也会被隐藏;
    Display:display 设为 none 任何对该元素直接打用户交互操作都不可能生效。此外,读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在;
    Position:不会影响布局,能让元素保持可以操作;
    Clip-path:clip-path 属性还没有在 IE 或者 Edge 下被完全支持。如果要在你的 clip-path 中使用外部的 SVG 文件,浏览器支持度还要低;

3.CSS清除浮动的几种方法(至少两种)

    使用带clear属性的空元素
    使用CSS的overflow属性;
    使用CSS的:after伪元素;
    使用邻接元素处理;

4.CSS居中(包括水平居中和垂直居中)

内联元素居中方案

水平居中设置:
1.行内元素

    设置 text-align:center;

2.Flex布局

    设置display:flex;justify-content:center;(灵活运用,支持Chroime,Firefox,IE9+)

垂直居中设置:
1.父元素高度确定的单行文本(内联元素)

    设置 height = line-height;

2.父元素高度确定的多行文本(内联元素)

    a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle;
    b:先设置 display:table-cell 再设置 vertical-align:middle;
    块级元素居中方案

    水平居中设置:
    1.定宽块状元素
    设置 左右 margin 值为 auto;

2.不定宽块状元素

    a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto;
    b:给该元素设置 displa:inine 方法;
    c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%;

垂直居中设置:

    使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;
    利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;
    利用display:table-cell属性使内容垂直居中;
    使用css3的新属性transform:translate(x,y)属性;
    使用:before元素;

5.写出几种IE6 BUG的解决方法

    双边距BUG float引起的 使用display
    3像素问题 使用float引起的 使用dislpay:inline -3px
    超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
    Ie z-index问题 给父级添加position:relative
    Png 透明 使用js代码 改
    Min-height 最小高度 !Important 解决’
    select 在ie6下遮盖 使用iframe嵌套
    为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)

6.对于SASS或是Less的了解程度?喜欢那个?

    语法介绍

7.Bootstrap了解程度

    特点,排版,插件的使用;

8.页面导入样式时,使用link和@import有什么区别?

    link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
    页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
    import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

9.介绍一下CSS的盒子模型?

    有两种, IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和 pading;
    盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border).

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

    id选择器( # myid)
    类选择器(.myclassname)
    标签选择器(div, h1, p)
    相邻选择器(h1 + p)
    子选择器(ul > li)
    后代选择器(li a)
    通配符选择器( * )
    属性选择器(a[rel = “external”])
    伪类选择器(a: hover, li: nth – child)
    可继承的样式: font-size font-family color, UL LI DL DD DT;
    不可继承的样式:border padding margin width height ;
    优先级就近原则,同权重情况下样式定义最近者为准;
    优先级为:
    JavaScript
    !important >  id > class > tag
    important 比 内联优先级高
    1
    2
    	
    !important >  id > class > tag
    important 比 内联优先级高

11.CSS3有哪些新特性?

    CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px),
    对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)
    transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜
    增加了更多的CSS选择器 多背景 rgba

2.display有哪些值?说明他们的作用。

block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。 none 缺省值。象行内元素类型一样显示。 inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。 inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。 list-item 象块类型元素一样显示,并添加样式列表标记。 table 此元素会作为块级表格来显示。 inherit 规定应该从父元素继承 display 属性的值。 8.在书写高效 CSS 时会有哪些问题需要考虑? reset。参照上题“描述下 “reset” CSS 文件的作用和使用它的好处”的答案。 规范命名。尤其对于没有语义化的html标签,例如div,所赋予的class值要特别注意。 抽取可重用的部件,注意层叠样式表的“优先级”。

⚠️ **GitHub.com Fallback** ⚠️